|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / vendor / magento / framework / Api / |
Filename | /home/dev2.destoffenstraat.com/vendor/magento/framework/Api/ArrayObjectSearch.php |
Size | 2.02 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 03:56 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Api;
/**
* Class to provide possibility to search for any object's property value by the name and value of another property
*/
class ArrayObjectSearch
{
/**
* Search for the value's value by specified key's name-value pair in the object
* <pre>
* Example of usage:
* $data = array(
* ValidationRuleBuilderObject('name' => 'min_text_length', 'value' => 0)
* ValidationRuleBuilderObject('name' => 'max_text_length', 'value' => 255)
* ValidationRuleBuilderObject('anyOtherName' => 'customName', 'anyOtherValue' => 'customValue')
* );
*
* Call:
* $maxDateValue = ArrayObjectSearch::getArrayElementByName(
* $data,
* 'max_text_length'
* );
* By default function looks for `value`'s value by the `name`'s value
* Result: 255
*
* Call:
* $customValue = ArrayObjectSearch::getArrayElementByName(
* $data,
* 'customName', //what key value to look for
* 'anyOtherName', //where to look for
* 'anyOtherValue' //where to return from
* );
* Result: 'customValue'
* </pre>
* @param object $data Object to search in
* @param string $keyValue Value of the key property to search for
* @param string $keyName Name of the key property to search for
* @param string $valueName Name of the value property name
* @return null|mixed
*/
public static function getArrayElementByName($data, $keyValue, $keyName = 'name', $valueName = 'value')
{
$getter = 'get' . ucfirst($keyName);
if (is_array($data)) {
foreach ($data as $dataObject) {
if (is_object($dataObject) && $dataObject->$getter() == $keyValue) {
$valueGetter = 'get' . ucfirst($valueName);
return $dataObject->$valueGetter();
}
}
}
return null;
}
}
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Api;
/**
* Class to provide possibility to search for any object's property value by the name and value of another property
*/
class ArrayObjectSearch
{
/**
* Search for the value's value by specified key's name-value pair in the object
* <pre>
* Example of usage:
* $data = array(
* ValidationRuleBuilderObject('name' => 'min_text_length', 'value' => 0)
* ValidationRuleBuilderObject('name' => 'max_text_length', 'value' => 255)
* ValidationRuleBuilderObject('anyOtherName' => 'customName', 'anyOtherValue' => 'customValue')
* );
*
* Call:
* $maxDateValue = ArrayObjectSearch::getArrayElementByName(
* $data,
* 'max_text_length'
* );
* By default function looks for `value`'s value by the `name`'s value
* Result: 255
*
* Call:
* $customValue = ArrayObjectSearch::getArrayElementByName(
* $data,
* 'customName', //what key value to look for
* 'anyOtherName', //where to look for
* 'anyOtherValue' //where to return from
* );
* Result: 'customValue'
* </pre>
* @param object $data Object to search in
* @param string $keyValue Value of the key property to search for
* @param string $keyName Name of the key property to search for
* @param string $valueName Name of the value property name
* @return null|mixed
*/
public static function getArrayElementByName($data, $keyValue, $keyName = 'name', $valueName = 'value')
{
$getter = 'get' . ucfirst($keyName);
if (is_array($data)) {
foreach ($data as $dataObject) {
if (is_object($dataObject) && $dataObject->$getter() == $keyValue) {
$valueGetter = 'get' . ucfirst($valueName);
return $dataObject->$valueGetter();
}
}
}
return null;
}
}