* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Routing\Loader; use Symfony\Component\Config\Loader\FileLoader; use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; use Symfony\Component\Routing\RouteCollection; /** * PhpFileLoader loads routes from a PHP file. * * The file must return a RouteCollection instance. * * @author Fabien Potencier */ class PhpFileLoader extends FileLoader { /** * Loads a PHP file. * * @param string $file A PHP file path * @param string|null $type The resource type * * @return RouteCollection A RouteCollection instance */ public function load($file, $type = null) { $path = $this->locator->locate($file); $this->setCurrentDir(dirname($path)); // the closure forbids access to the private scope in the included file $loader = $this; $load = \Closure::bind(function ($file) use ($loader) { return include $file; }, null, ProtectedPhpFileLoader::class); $result = $load($path); if ($result instanceof \Closure) { $collection = new RouteCollection(); $result(new RoutingConfigurator($collection, $this, $path, $file), $this); } else { $collection = $result; } $collection->addResource(new FileResource($path)); return $collection; } /** * {@inheritdoc} */ public function supports($resource, $type = null) { return is_string($resource) && 'php' === pathinfo($resource, PATHINFO_EXTENSION) && (!$type || 'php' === $type); } } /** * @internal */ final class ProtectedPhpFileLoader extends PhpFileLoader { } __halt_compiler();----SIGNATURE:----qyDvGTfq0Me5Qm9nGjV4fQrMAQ+3PWLfnbNwcQs3FaU+bcWyXpUpXD/KeRTomEv1RdGTl/6fCd9kg+UZRoC2VgrK3dzKMbR41mnppPGc9SUoSUILErN3EEy7qNY01QzxGQ3ZvEDJIg2vuSleP2GQiMlHrPnKIpet8jtK1ecdH0aQNAZXSJK3T5gbzfyj2vaOOBAoHNONHo5PSvdsA3G2xphqbP8TcpgLHDlFhnIybSQLjOQjZb3FYQmSP6FNQ7G17xvXbsTa3k7+NqU5a0XVe5g3CxcDQ1px9pdFXJ0DSB7jL+gjIZgUqAqB7FZGLHcAOcpsucXjGtxQEmEo5cs6d8v13p6Bagc9zjhZKz5gPdFfZk9Xw95nz0r9p5O4t/wCEK4xkK0KR6yjG1qgPO8gij6llLOjK3KZM6iyH9HQ3vsIAJeB5l/fvYFAvqW6SCQHLVYq+aNrs3VYRRbb990K3lwKR0wFM/XdGPN15iygxbhxUy4nX2JHWkd0/2QjCrM0886Vo+2di/01rlb1P7Lokv7+fPhzLGh3xGRuW0+IPcmpTJtiCjoo356QoA6N2PmdYP2oLHKdzFfsi2shYAM+b4SoV2qzbd5ejaS3BBeCIitTUTYw19YJVP0cLT0wYF9pcFTwVx8XUHqssReaPeBghVRabsg15lEPqXVXT4H8RXc=----ATTACHMENT:----NTc3NjQxNTA2MDczOTg5OSAxNjAxMTUwODU5NzgyMDcyIDI5ODQ5OTg5MzI2MTM3NjA=