/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Collection
NameSizeModeActions
Iterator/-0755rm
Collection.php26090644editdlrm
CollectionInterface.php423730644editdlrm
CollectionTrait.php278990644editdlrm
composer.json9560644editdlrm
ExtractTrait.php44540644editdlrm
functions.php10790644editdlrm
LICENSE.txt12040644editdlrm
README.md11770644editdlrm
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Collection/ExtractTrait.php (4454B)
_extract($element, $path); }; } return function ($element) use ($path) { return $this->_simpleExtract($element, $path); }; } /** * Returns a column from $data that can be extracted * by iterating over the column names contained in $path. * It will return arrays for elements in represented with `{*}` * * @param array|\ArrayAccess $data Data. * @param string[] $path Path to extract from. * @return mixed */ protected function _extract($data, array $path) { $value = null; $collectionTransform = false; foreach ($path as $i => $column) { if ($column === '{*}') { $collectionTransform = true; continue; } if ( $collectionTransform && !( $data instanceof Traversable || is_array($data) ) ) { return null; } if ($collectionTransform) { $rest = implode('.', array_slice($path, $i)); return (new Collection($data))->extract($rest); } if (!isset($data[$column])) { return null; } $value = $data[$column]; $data = $value; } return $value; } /** * Returns a column from $data that can be extracted * by iterating over the column names contained in $path * * @param array|\ArrayAccess $data Data. * @param string[] $path Path to extract from. * @return mixed */ protected function _simpleExtract($data, array $path) { $value = null; foreach ($path as $column) { if (!isset($data[$column])) { return null; } $value = $data[$column]; $data = $value; } return $value; } /** * Returns a callable that receives a value and will return whether or not * it matches certain condition. * * @param array $conditions A key-value list of conditions to match where the * key is the property path to get from the current item and the value is the * value to be compared the item with. * @return \Closure */ protected function _createMatcherFilter(array $conditions): Closure { $matchers = []; foreach ($conditions as $property => $value) { $extractor = $this->_propertyExtractor($property); $matchers[] = function ($v) use ($extractor, $value) { return $extractor($v) == $value; }; } return function ($value) use ($matchers) { foreach ($matchers as $match) { if (!$match($value)) { return false; } } return true; }; } }