Logomotion: slides Symfony3 seconde journée
This commit is contained in:
88
developpement/symfony3/ressources/s3-micro/web/index.php
Normal file
88
developpement/symfony3/ressources/s3-micro/web/index.php
Normal file
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
|
||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
use Symfony\Component\Routing\RouteCollectionBuilder;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
// require Composer's autoloader
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
|
||||
class AppKernel extends Kernel
|
||||
{
|
||||
// Utilisation du trait "MicroKernel"
|
||||
use MicroKernelTrait;
|
||||
|
||||
// Ajout des bundles
|
||||
public function registerBundles()
|
||||
{
|
||||
return array(
|
||||
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
||||
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
||||
);
|
||||
}
|
||||
|
||||
// Configuration des bundles - équivalent d'une config.yml
|
||||
protected function configureContainer(ContainerBuilder $c, LoaderInterface $loader)
|
||||
{
|
||||
// PHP equivalent of config.yml
|
||||
$c->loadFromExtension('framework', array(
|
||||
'secret' => 'S0ME_SECRET',
|
||||
'templating' => [
|
||||
'engine' => [
|
||||
'twig'
|
||||
],
|
||||
],
|
||||
));
|
||||
$c->loadFromExtension('twig', [
|
||||
'default_path' => __DIR__.'/../templates',
|
||||
]);
|
||||
}
|
||||
|
||||
// Configuration des routes
|
||||
protected function configureRoutes(RouteCollectionBuilder $routes)
|
||||
{
|
||||
$routes->add('/random/{limit}', 'kernel:randomAction');
|
||||
$routes->add('/twig', 'kernel:twigAction');
|
||||
}
|
||||
|
||||
public function twigAction()
|
||||
{
|
||||
$container = $this->getContainer();
|
||||
$twig = $container->get('twig');
|
||||
return new Response($twig->render('index.html.twig'));
|
||||
}
|
||||
|
||||
// Définition d'une route
|
||||
public function randomAction($limit)
|
||||
{
|
||||
return new JsonResponse(array(
|
||||
'number' => rand(0, $limit)
|
||||
));
|
||||
}
|
||||
|
||||
// Configuration des répertoires de cache et logs
|
||||
// Ces répertoires ne devrait pas être contenus dans la racine "web"
|
||||
|
||||
public function getCacheDir()
|
||||
{
|
||||
return __DIR__.'/../var/cache/'.$this->getEnvironment();
|
||||
}
|
||||
|
||||
public function getLogDir()
|
||||
{
|
||||
return __DIR__.'/../var/logs';
|
||||
}
|
||||
}
|
||||
|
||||
// Définition de l'environnement
|
||||
|
||||
$kernel = new AppKernel('dev', true);
|
||||
$request = Request::createFromGlobals();
|
||||
$response = $kernel->handle($request);
|
||||
$response->send();
|
||||
$kernel->terminate($request, $response);
|
Reference in New Issue
Block a user