/** * Create an array of FilterInterface objects for a group. * * @param $name * @return array */ protected function createFilterArray($name) { $config = $this->getConfig($name, 'filters', array()); $filters = array(); foreach ($config as $filter) { $filters[] = $this->filters->get($filter); } return $filters; }
/** * Get filter by name * * @param string $name * @return \Assetic\Filter\FilterInterface mixed */ public function get($name) { if (array_key_exists($name, $this->mappings)) { if (is_callable($this->mappings[$name])) { // Allow use factory as mapping value return $this->mappings[$name]($this->container); } return $this->container[$this->mappings[$name]]; } return parent::get($name); }
protected function restoreFormulaFilters(array $formula) { if (!$this->filterManager instanceof FilterManager) { return $formula; } if (!$formula[0] instanceof \Assetic\Asset\FileAsset) { return $formula; } if (!isset($formula[1]) || !is_array($formula[1]) || !count($formula[1])) { return $formula; } $filters = array(); foreach ($formula[1] as $filterName) { $filters[$filterName] = $this->filterManager->get($filterName); } $assetClass = get_class($formula[0]); $new = new $assetClass($formula[0]->getSourceRoot() . DIRECTORY_SEPARATOR . $formula[0]->getSourcePath(), $filters, $formula[0]->getSourceRoot(), $formula[0]->getSourcePath(), $formula[0]->getVars()); $new->setTargetPath($formula[0]->getTargetPath()); $formula[0] = $new; return $formula; }
public function testFilterDumpWithFilterManager() { $filterManager = new FilterManager(); $filterManager->set('css_optimize', $this->filter); $expected = 'body{baz:foo;foo:new;too:me}div.other,div.test{border:1px solid black}'; $inputCss = 'body { foo:bar; too: me;} body { baz:foo; } body { foo: new } div.test { border: 1px solid black; } div.other { border: 1px solid black} '; $asset = new StringAsset($inputCss); $asset->ensureFilter($filterManager->get('css_optimize')); $result = $asset->dump(); $this->assertEquals($expected, $result); }
/** * Get filters to apply against resource. * * @param ResourceInterface $resource Resource with filters. * @return array Collection of filters to apply on resource. */ private function getFilters(ResourceInterface $resource) { if (isset($resource->getOptions()['filters']) && count($resource->getOptions()['filters'])) { $result = []; foreach ($filters = $resource->getOptions()['filters'] as $filter) { if (strpos($filter, '?') !== 0 || strpos($filter, '?') === 0 && !$this->options['development']) { $result[$filter] = $this->filterManager->get(ltrim($filter, '?')); } } return $result; } else { return []; } }
/** * @param $alias * * @throws \InvalidArgumentException When cant retrieve filter from service manager. * * @return mixed */ public function get($alias) { if (parent::has($alias)) { return parent::get($alias); } $service = $this->serviceLocator; if (!$service->has($alias)) { throw new \InvalidArgumentException(sprintf('There is no "%s" filter in ZF2 service manager.', $alias)); } $filter = $service->get($alias); if (!$filter instanceof FilterInterface) { $givenType = is_object($filter) ? get_class($filter) : gettype($filter); $message = 'Retrieved filter "%s" is not instanceof "Assetic\\Filter\\FilterInterface", but type was given %s'; $message = sprintf($message, $alias, $givenType); throw new \InvalidArgumentException($message); } $this->set($alias, $filter); return $filter; }
public function get($name) { return isset($this->mappings[$name]) ? $this->container->get($this->mappings[$name]) : parent::get($name); }