/
var
/
www
/
html
/
restaurants
/
vendor
/
symfony
/
framework-bundle
/
Kernel
/
Upload File
HOME
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\FrameworkBundle\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Routing\RouteCollectionBuilder; /** * A Kernel that provides configuration hooks. * * @author Ryan Weaver <ryan@knpuniversity.com> * @author Fabien Potencier <fabien@symfony.com> */ trait MicroKernelTrait { /** * Add or import routes into your application. * * $routes->import('config/routing.yml'); * $routes->add('/admin', 'App\Controller\AdminController::dashboard', 'admin_dashboard'); */ abstract protected function configureRoutes(RouteCollectionBuilder $routes); /** * Configures the container. * * You can register extensions: * * $container->loadFromExtension('framework', [ * 'secret' => '%secret%' * ]); * * Or services: * * $container->register('halloween', 'FooBundle\HalloweenProvider'); * * Or parameters: * * $container->setParameter('halloween', 'lot of fun'); */ abstract protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader); /** * {@inheritdoc} */ public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load(function (ContainerBuilder $container) use ($loader) { $container->loadFromExtension('framework', [ 'router' => [ 'resource' => 'kernel::loadRoutes', 'type' => 'service', ], ]); if (!$container->hasDefinition('kernel')) { $container->register('kernel', static::class) ->setSynthetic(true) ->setPublic(true) ; } $kernelDefinition = $container->getDefinition('kernel'); $kernelDefinition->addTag('routing.route_loader'); if ($this instanceof EventSubscriberInterface) { $kernelDefinition->addTag('kernel.event_subscriber'); } $this->configureContainer($container, $loader); $container->addObjectResource($this); }); } /** * @internal */ public function loadRoutes(LoaderInterface $loader) { $routes = new RouteCollectionBuilder($loader); $this->configureRoutes($routes); return $routes->build(); } }