public function testSupports() { $this->assertTrue($this->loader->supports('Resources/test.yml')); $this->assertTrue($this->loader->supports('Resources/test.yml', 'yaml')); $this->assertFalse($this->loader->supports('Resources/test.xml')); $this->assertFalse($this->loader->supports('Resources/test.xml', 'yaml')); $this->assertFalse($this->loader->supports('Resources/test')); $this->assertFalse($this->loader->supports('Resources/test', 'yaml')); $this->assertFalse($this->loader->supports('Resources/test.yaml', 'yaml')); $this->assertFalse($this->loader->supports('Resources/test.yaml')); }
/** * Loads the configuration data from a resource. * * @param mixed $resource A resource. * @param string $type The resource type. * @param boolean $require Require processing? * * @return array The data. * * @throws LoaderException If the loader could not be used. * @throws LogicException If no loader has been configured. */ public function load($resource, $type = null, $require = false) { if (null === $this->loader) { throw new LogicException('No loader has been configured.'); } if (false === $this->loader->supports($resource, $type)) { throw LoaderException::format('The resource "%s"%s is not supported by the loader.', is_scalar($resource) ? $resource : gettype($resource), $type ? " ({$type})" : ''); } if ($this->cacheDir && $this->collector && is_string($resource) && false === strpos("\n", $resource) && false === strpos("\r", $resource)) { $cache = new ConfigCache($this->cacheDir . DIRECTORY_SEPARATOR . basename($resource) . '.cache', $this->debug); if ($cache->isFresh()) { if (method_exists($cache, 'getPath')) { /** @noinspection PhpIncludeInspection */ return require $cache->getPath(); } /** @noinspection PhpIncludeInspection */ return require $cache; } } if ($this->collector) { $this->collector->clearResources(); } $data = $this->process($this->loader->load($resource, $type), $resource, $type, $require); if (isset($cache)) { $cache->write('<?php return ' . var_export($data, true) . ';', $this->collector->getResources()); } return $data; }
/** * Returns whether this class supports the given resource. * * @param mixed $resource A resource * @param string|null $type The resource type or null if unknown * * @return bool True if this class supports the given resource, false otherwise */ public function supports($resource, $type = null) { return $this->routerLoader->supports($resource, $type); }