Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
6 / 6 |
| HelperSubTrait | |
100.00% |
1 / 1 |
|
100.00% |
2 / 2 |
2 | |
100.00% |
6 / 6 |
| subCollection | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| subMap | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
| <?php | |
| /** | |
| * This file is part of the Hephaistos project management API. | |
| * | |
| * As each files provides by the CSCFA, this file is licensed | |
| * under the MIT license. | |
| * | |
| * PHP version 5.6 | |
| * | |
| * @category Trait | |
| * @package Hephaistos | |
| * @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
| * @license MIT <https://opensource.org/licenses/MIT> | |
| * @link http://cscfa.fr | |
| */ | |
| namespace CSDT\CollectionsBundle\CollectionHelper\HelperTrait; | |
| use CSDT\CollectionsBundle\CollectionInterfaces\CollectionInterface; | |
| /** | |
| * Helper sub trait | |
| * | |
| * This trait define the logic of the Helper | |
| * partitioning support. | |
| * | |
| * @category Trait | |
| * @package Hephaistos | |
| * @author matthieu vallance <matthieu.vallance@cscfa.fr> | |
| * @license MIT <https://opensource.org/licenses/MIT> | |
| * @link http://cscfa.fr | |
| */ | |
| trait HelperSubTrait | |
| { | |
| /** | |
| * Sub collection | |
| * | |
| * Return a Collection that contain a part | |
| * of the $collection starting at an integer | |
| * index and for the given length. Th content | |
| * will be truncated if the length is superior | |
| * of the real collection length. Note you are | |
| * able to use it with a map collection. | |
| * | |
| * @param CollectionInterface $collection The collection where find the content | |
| * @param number $start The start index | |
| * @param integer $length The length of the result collection | |
| * content | |
| * | |
| * @throws \ParseError if the caster manager is not able to parse the | |
| * array to the first collection | |
| * @return CollectionInterface | |
| */ | |
| public function subCollection( | |
| CollectionInterface $collection, | |
| $start = 0, | |
| $length = null | |
| ) { | |
| $content = $collection->toArray(); | |
| $resultContent = array_slice($content, $start, $length, true); | |
| return $this->arrayToCollection($resultContent, get_class($collection)); | |
| } | |
| /** | |
| * Sub map | |
| * | |
| * Return a Collection that contain a part | |
| * of the $collection corresponding to the | |
| * to the given $keys. Note you are able to | |
| * use it with any collection. | |
| * | |
| * @param CollectionInterface $collection The collection where | |
| * find the content | |
| * @param array $keys The keys to return | |
| * | |
| * @throws \ParseError if the caster manager is not able to parse the | |
| * array to the first collection | |
| * @return CollectionInterface | |
| */ | |
| public function subMap( | |
| CollectionInterface $collection, | |
| array $keys | |
| ) { | |
| $content = $collection->toArray(); | |
| $resultContent = array_intersect_key($content, array_flip($keys)); | |
| return $this->arrayToCollection($resultContent, get_class($collection)); | |
| } | |
| } |