コード例 #1
0
 /**
  * @dataProvider getFilterData
  */
 public function testFilter(array $expected, array $data, $filterFunction)
 {
     $filter = $this->getMockBuilder('MarkWilson\\ArrayFiltering\\FilterInterface')->disableOriginalConstructor()->getMock();
     $filter->expects($this->exactly(count($data)))->method('isSatisfiedBy')->will($this->returnCallback($filterFunction));
     $filtering = new ArrayFiltering($data);
     $this->assertEquals($expected, $filtering->filterBy($filter)->getArrayCopy());
 }
コード例 #2
0
 /**
  * Excludes specified variables
  * @param array $environment Optional environment variables
  * @return array $environment Environment variables
  */
 public function exclude(array $environment = array())
 {
     $environment = empty($environment) ? $this->getValues() : $environment;
     $excludes = $this->getVal($this->excludeKey);
     $excludes = explode(',', $excludes);
     $excludes = !$excludes ? array() : $excludes;
     array_push($excludes, $this->excludeKey);
     foreach ($excludes as $exclude) {
         $filtering = new ArrayFiltering($environment);
         $exclude = new ArrayKeyFilter\KeyPatternFilter("/^((?!{$exclude}).)*\$/");
         $environment = $filtering->filterBy($exclude);
     }
     return $environment;
 }