-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathKernel.php
49 lines (39 loc) · 1.94 KB
/
Kernel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
namespace App;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
use Symfony\Component\Config\Loader\LoaderInterface;
use Symfony\Component\Config\Resource\FileResource;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Kernel as BaseKernel;
use Symfony\Component\Routing\RouteCollectionBuilder;
class Kernel extends BaseKernel {
use MicroKernelTrait;
private const CONFIG_EXTS = '.{php,xml,yaml,yml}';
public function registerBundles(): iterable {
$contents = require $this->getProjectDir() . '/config/bundles.php';
foreach ( $contents as $class => $envs ) {
if ( $envs[ $this->environment ] ?? $envs['all'] ?? false ) {
yield new $class();
}
}
}
public function getProjectDir(): string {
return \dirname( __DIR__ );
}
protected function configureContainer( ContainerBuilder $container, LoaderInterface $loader ): void {
$container->addResource( new FileResource( $this->getProjectDir() . '/config/bundles.php' ) );
$container->setParameter( 'container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug );
$container->setParameter( 'container.dumper.inline_factories', true );
$confDir = $this->getProjectDir() . '/config';
$loader->load( $confDir . '/{packages}/*' . self::CONFIG_EXTS, 'glob' );
$loader->load( $confDir . '/{packages}/' . $this->environment . '/*' . self::CONFIG_EXTS, 'glob' );
$loader->load( $confDir . '/{services}' . self::CONFIG_EXTS, 'glob' );
$loader->load( $confDir . '/{services}_' . $this->environment . self::CONFIG_EXTS, 'glob' );
}
protected function configureRoutes( RouteCollectionBuilder $routes ): void {
$confDir = $this->getProjectDir() . '/config';
$routes->import( $confDir . '/{routes}/' . $this->environment . '/*' . self::CONFIG_EXTS, '/', 'glob' );
$routes->import( $confDir . '/{routes}/*' . self::CONFIG_EXTS, '/', 'glob' );
$routes->import( $confDir . '/{routes}' . self::CONFIG_EXTS, '/', 'glob' );
}
}