app.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. use demo\AppRoute;
  3. use demo\Logger;
  4. use demo\Services\Timer;
  5. use Demo\UserConverter;
  6. use Silex\Application;
  7. use Silex\Provider\AssetServiceProvider;
  8. use Silex\Provider\TwigServiceProvider;
  9. use Silex\Provider\ServiceControllerServiceProvider;
  10. use Silex\Provider\HttpFragmentServiceProvider;
  11. use Symfony\Component\HttpFoundation\Request;
  12. $app = new Application();
  13. // Non-closure classes are used as parameters, not Pimple services, but may
  14. // nonetheless be used as such.
  15. $app['timer'] = Timer::create();
  16. // Closures are the basic form of Pimple services.
  17. $app['logger'] = function () { return new Logger(); };
  18. $app->register(new ServiceControllerServiceProvider());
  19. $app->register(new AssetServiceProvider());
  20. $app->register(new TwigServiceProvider());
  21. $app->register(new HttpFragmentServiceProvider());
  22. $app['twig'] = $app->extend('twig', function ($twig, $app) {
  23. // add custom globals, filters, tags, ...
  24. return $twig;
  25. });
  26. $app['converter.user'] = function () {
  27. return new UserConverter();
  28. };
  29. $app['route_class'] = AppRoute::class;
  30. // Support PATCH/PUT/DELETE.. emulation on POST for browsers. Beware XSS.
  31. Request::enableHttpMethodParameterOverride();
  32. return $app;