tsep-dev team mailing list archive
-
tsep-dev team
-
Mailing list archive
-
Message #00051
[Merge] lp:~tsep-dev/tsep/2.0-dev into lp:tsep/2.0
Geoff has proposed merging lp:~tsep-dev/tsep/2.0-dev into lp:tsep/2.0.
Requested reviews:
Geoff (geoffreyfishing)
For more details, see:
https://code.launchpad.net/~tsep-dev/tsep/2.0-dev/+merge/58888
Once the target branch is imported successfully, I will merge this branch into the target branch and switch to bazaar.
--
The attached diff has been truncated due to its size.
https://code.launchpad.net/~tsep-dev/tsep/2.0-dev/+merge/58888
Your team TSEP Development is subscribed to branch lp:~tsep-dev/tsep/2.0-dev.
=== added file '.bzrignore'
--- .bzrignore 1970-01-01 00:00:00 +0000
+++ .bzrignore 2011-04-24 02:44:25 +0000
@@ -0,0 +1,3 @@
+.settings
+.buildpath
+.project
\ No newline at end of file
=== added file 'LICENSE'
--- LICENSE 1970-01-01 00:00:00 +0000
+++ LICENSE 2011-04-24 02:44:25 +0000
@@ -0,0 +1,19 @@
+Copyright (c) 2004-2010 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
=== renamed file 'LICENSE' => 'LICENSE.moved'
=== added file 'README.md'
--- README.md 1970-01-01 00:00:00 +0000
+++ README.md 2011-04-24 02:44:25 +0000
@@ -0,0 +1,13 @@
+The Search Engine Project
+=========================
+
+What is The Search Engine Project?
+----------------------------------
+
+The Search Engine Project was created out of the frustration with the current search engine scripts on the web. The current avaliable solutions - Sphider, at the time of this writing, being the most popular, are considerably outdated.
+
+But what about a brand-new search script using the latest technology and taking advantage of all the great new features of PHP Hypertext Processor 5.3? What about making the experience easy and powerful for the user?
+
+This is not just a script, but a full-scale web application, meant to address this specific problem. Thanks to symfony2, we are able to create a robust solution that meets anyone's needs.
+
+NOTE: This product is currently in alpha. Please download the stable version [here](https://launchpad.net/tsep)
\ No newline at end of file
=== renamed file 'README.md' => 'README.md.moved'
=== added file 'VERSION'
--- VERSION 1970-01-01 00:00:00 +0000
+++ VERSION 2011-04-24 02:44:25 +0000
@@ -0,0 +1,1 @@
+2.0.0PR11
=== renamed file 'VERSION' => 'VERSION.moved'
=== added directory 'app'
=== renamed directory 'app' => 'app.moved'
=== added file 'app/.gitignore'
--- app/.gitignore 1970-01-01 00:00:00 +0000
+++ app/.gitignore 2011-04-24 02:44:25 +0000
@@ -0,0 +1,2 @@
+/cache
+/logs
=== added file 'app/.htaccess'
--- app/.htaccess 1970-01-01 00:00:00 +0000
+++ app/.htaccess 2011-04-24 02:44:25 +0000
@@ -0,0 +1,1 @@
+deny from all
\ No newline at end of file
=== added file 'app/AppCache.php'
--- app/AppCache.php 1970-01-01 00:00:00 +0000
+++ app/AppCache.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,9 @@
+<?php
+
+require_once __DIR__.'/AppKernel.php';
+
+use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
+
+class AppCache extends HttpCache
+{
+}
=== added file 'app/AppKernel.php'
--- app/AppKernel.php 1970-01-01 00:00:00 +0000
+++ app/AppKernel.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,38 @@
+<?php
+
+use TsepDev\AdminBundle\TsepDevAdminBundle;
+use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\Config\Loader\LoaderInterface;
+
+class AppKernel extends Kernel
+{
+ public function registerBundles()
+ {
+ $bundles = array(
+ new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
+ new Symfony\Bundle\SecurityBundle\SecurityBundle(),
+ new Symfony\Bundle\TwigBundle\TwigBundle(),
+ new Symfony\Bundle\MonologBundle\MonologBundle(),
+ new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
+ new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
+ new Symfony\Bundle\AsseticBundle\AsseticBundle(),
+ new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
+ new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
+ new Acme\DemoBundle\AcmeDemoBundle(),
+ new TSEP\Bundle\SearchBundle\TsepDevSearchBundle(),
+ new TSEP\Bundle\AdminBundle\TsepDevAdminBundle(),
+ );
+
+ if (in_array($this->getEnvironment(), array('dev', 'test'))) {
+ $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
+ $bundles[] = new Symfony\Bundle\WebConfiguratorBundle\SymfonyWebConfiguratorBundle();
+ }
+
+ return $bundles;
+ }
+
+ public function registerContainerConfiguration(LoaderInterface $loader)
+ {
+ $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
+ }
+}
=== added directory 'app/Resources'
=== added directory 'app/Resources/views'
=== added file 'app/Resources/views/base.html.twig'
--- app/Resources/views/base.html.twig 1970-01-01 00:00:00 +0000
+++ app/Resources/views/base.html.twig 2011-04-24 02:44:25 +0000
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>{% block title %}Welcome!{% endblock %}</title>
+ {% block stylesheets %}{% endblock %}
+ <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
+ </head>
+ <body>
+ {% block body %}{% endblock %}
+ {% block javascripts %}{% endblock %}
+ </body>
+</html>
=== added file 'app/autoload.php'
--- app/autoload.php 1970-01-01 00:00:00 +0000
+++ app/autoload.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,26 @@
+<?php
+
+use Symfony\Component\ClassLoader\UniversalClassLoader;
+
+$loader = new UniversalClassLoader();
+$loader->registerNamespaces(array(
+ 'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
+ 'Sensio' => __DIR__.'/../vendor/bundles',
+ 'JMS' => __DIR__.'/../vendor/bundles',
+ 'Doctrine\\Common' => __DIR__.'/../vendor/doctrine-common/lib',
+ 'Doctrine\\DBAL' => __DIR__.'/../vendor/doctrine-dbal/lib',
+ 'Doctrine' => __DIR__.'/../vendor/doctrine/lib',
+ 'Monolog' => __DIR__.'/../vendor/monolog/src',
+ 'Assetic' => __DIR__.'/../vendor/assetic/src',
+ 'Acme' => __DIR__.'/../src',
+ 'TSEP' => __DIR__.'/../src',
+));
+$loader->registerPrefixes(array(
+ 'Twig_Extensions_' => __DIR__.'/../vendor/twig-extensions/lib',
+ 'Twig_' => __DIR__.'/../vendor/twig/lib',
+ 'Swift_' => __DIR__.'/../vendor/swiftmailer/lib/classes',
+));
+$loader->register();
+$loader->registerPrefixFallback(array(
+ __DIR__.'/../vendor/symfony/src/Symfony/Component/Locale/Resources/stubs',
+));
=== added file 'app/bootstrap.php.cache'
--- app/bootstrap.php.cache 1970-01-01 00:00:00 +0000
+++ app/bootstrap.php.cache 2011-04-24 02:44:25 +0000
@@ -0,0 +1,2090 @@
+<?php
+
+namespace { require_once __DIR__.'/autoload.php'; }
+
+
+namespace Symfony\Component\DependencyInjection
+{
+interface ContainerInterface
+{
+ const EXCEPTION_ON_INVALID_REFERENCE = 1;
+ const NULL_ON_INVALID_REFERENCE = 2;
+ const IGNORE_ON_INVALID_REFERENCE = 3;
+ const SCOPE_CONTAINER = 'container';
+ const SCOPE_PROTOTYPE = 'prototype';
+ function set($id, $service, $scope = self::SCOPE_CONTAINER);
+ function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE);
+ function has($id);
+ function getParameter($name);
+ function hasParameter($name);
+ function setParameter($name, $value);
+ function enterScope($name);
+ function leaveScope($name);
+ function addScope(ScopeInterface $scope);
+ function hasScope($name);
+ function isScopeActive($name);
+}
+}
+namespace Symfony\Component\DependencyInjection
+{
+use Symfony\Component\DependencyInjection\Exception\CircularReferenceException;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
+use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
+class Container implements ContainerInterface
+{
+ protected $parameterBag;
+ protected $services;
+ protected $scopes;
+ protected $scopeChildren;
+ protected $scopedServices;
+ protected $scopeStacks;
+ protected $loading = array();
+ public function __construct(ParameterBagInterface $parameterBag = null)
+ {
+ $this->parameterBag = null === $parameterBag ? new ParameterBag() : $parameterBag;
+ $this->services = array();
+ $this->scopes = array();
+ $this->scopeChildren = array();
+ $this->scopedServices = array();
+ $this->scopeStacks = array();
+ $this->set('service_container', $this);
+ }
+ public function compile()
+ {
+ $this->parameterBag->resolve();
+ $this->parameterBag = new FrozenParameterBag($this->parameterBag->all());
+ }
+ public function isFrozen()
+ {
+ return $this->parameterBag instanceof FrozenParameterBag;
+ }
+ public function getParameterBag()
+ {
+ return $this->parameterBag;
+ }
+ public function getParameter($name)
+ {
+ return $this->parameterBag->get($name);
+ }
+ public function hasParameter($name)
+ {
+ return $this->parameterBag->has($name);
+ }
+ public function setParameter($name, $value)
+ {
+ $this->parameterBag->set($name, $value);
+ }
+ public function set($id, $service, $scope = self::SCOPE_CONTAINER)
+ {
+ if (self::SCOPE_PROTOTYPE === $scope) {
+ throw new \InvalidArgumentException('You cannot set services of scope "prototype".');
+ }
+ $id = strtolower($id);
+ if (self::SCOPE_CONTAINER !== $scope) {
+ if (!isset($this->scopedServices[$scope])) {
+ throw new \RuntimeException('You cannot set services of inactive scopes.');
+ }
+ $this->scopedServices[$scope][$id] = $service;
+ }
+ $this->services[$id] = $service;
+ }
+ public function has($id)
+ {
+ $id = strtolower($id);
+ return isset($this->services[$id]) || method_exists($this, 'get'.strtr($id, array('_' => '', '.' => '_')).'Service');
+ }
+ public function get($id, $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE)
+ {
+ $id = strtolower($id);
+ if (isset($this->services[$id])) {
+ return $this->services[$id];
+ }
+ if (isset($this->loading[$id])) {
+ throw new CircularReferenceException($id, array_keys($this->loading));
+ }
+ if (method_exists($this, $method = 'get'.strtr($id, array('_' => '', '.' => '_')).'Service')) {
+ $this->loading[$id] = true;
+ try {
+ $service = $this->$method();
+ } catch (\Exception $e) {
+ unset($this->loading[$id]);
+ throw $e;
+ }
+ unset($this->loading[$id]);
+ return $service;
+ }
+ if (self::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) {
+ throw new \InvalidArgumentException(sprintf('The service "%s" does not exist.', $id));
+ }
+ }
+ public function getServiceIds()
+ {
+ $ids = array();
+ $r = new \ReflectionClass($this);
+ foreach ($r->getMethods() as $method) {
+ if (preg_match('/^get(.+)Service$/', $method->getName(), $match)) {
+ $ids[] = self::underscore($match[1]);
+ }
+ }
+ return array_merge($ids, array_keys($this->services));
+ }
+ public function enterScope($name)
+ {
+ if (!isset($this->scopes[$name])) {
+ throw new \InvalidArgumentException(sprintf('The scope "%s" does not exist.', $name));
+ }
+ if (self::SCOPE_CONTAINER !== $this->scopes[$name] && !isset($this->scopedServices[$this->scopes[$name]])) {
+ throw new \RuntimeException(sprintf('The parent scope "%s" must be active when entering this scope.', $this->scopes[$name]));
+ }
+ if (isset($this->scopedServices[$name])) {
+ $services = array($this->services, $name => $this->scopedServices[$name]);
+ unset($this->scopedServices[$name]);
+ foreach ($this->scopeChildren[$name] as $child) {
+ $services[$child] = $this->scopedServices[$child];
+ unset($this->scopedServices[$child]);
+ }
+ $this->services = call_user_func_array('array_diff_key', $services);
+ array_shift($services);
+ if (!isset($this->scopeStacks[$name])) {
+ $this->scopeStacks[$name] = new \SplStack();
+ }
+ $this->scopeStacks[$name]->push($services);
+ }
+ $this->scopedServices[$name] = array();
+ }
+ public function getCurrentScopedStack($name)
+ {
+ if (!isset($this->scopeStacks[$name]) || 0 === $this->scopeStacks[$name]->count()) {
+ return null;
+ }
+ return $this->scopeStacks[$name]->top();
+ }
+ public function leaveScope($name)
+ {
+ if (!isset($this->scopedServices[$name])) {
+ throw new \InvalidArgumentException(sprintf('The scope "%s" is not active.', $name));
+ }
+ $services = array($this->services, $this->scopedServices[$name]);
+ unset($this->scopedServices[$name]);
+ foreach ($this->scopeChildren[$name] as $child) {
+ if (!isset($this->scopedServices[$child])) {
+ continue;
+ }
+ $services[] = $this->scopedServices[$child];
+ unset($this->scopedServices[$child]);
+ }
+ $this->services = call_user_func_array('array_diff_key', $services);
+ if (isset($this->scopeStacks[$name]) && count($this->scopeStacks[$name]) > 0) {
+ $services = $this->scopeStacks[$name]->pop();
+ $this->scopedServices += $services;
+ array_unshift($services, $this->services);
+ $this->services = call_user_func_array('array_merge', $services);
+ }
+ }
+ public function addScope(ScopeInterface $scope)
+ {
+ $name = $scope->getName();
+ $parentScope = $scope->getParentName();
+ if (self::SCOPE_CONTAINER === $name || self::SCOPE_PROTOTYPE === $name) {
+ throw new \InvalidArgumentException(sprintf('The scope "%s" is reserved.', $name));
+ }
+ if (isset($this->scopes[$name])) {
+ throw new \InvalidArgumentException(sprintf('A scope with name "%s" already exists.', $name));
+ }
+ if (self::SCOPE_CONTAINER !== $parentScope && !isset($this->scopes[$parentScope])) {
+ throw new \InvalidArgumentException(sprintf('The parent scope "%s" does not exist, or is invalid.', $parentScope));
+ }
+ $this->scopes[$name] = $parentScope;
+ $this->scopeChildren[$name] = array();
+ while ($parentScope !== self::SCOPE_CONTAINER) {
+ $this->scopeChildren[$parentScope][] = $name;
+ $parentScope = $this->scopes[$parentScope];
+ }
+ }
+ public function hasScope($name)
+ {
+ return isset($this->scopes[$name]);
+ }
+ public function isScopeActive($name)
+ {
+ return isset($this->scopedServices[$name]);
+ }
+ static public function camelize($id)
+ {
+ return preg_replace(array('/(?:^|_)+(.)/e', '/\.(.)/e'), array("strtoupper('\\1')", "'_'.strtoupper('\\1')"), $id);
+ }
+ static public function underscore($id)
+ {
+ return strtolower(preg_replace(array('/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'), array('\\1_\\2', '\\1_\\2'), strtr($id, '_', '.')));
+ }
+}
+}
+namespace Symfony\Component\DependencyInjection
+{
+interface ContainerAwareInterface
+{
+ function setContainer(ContainerInterface $container = null);
+}
+}
+namespace Symfony\Component\DependencyInjection
+{
+class ContainerAware implements ContainerAwareInterface
+{
+ protected $container;
+ public function setContainer(ContainerInterface $container = null)
+ {
+ $this->container = $container;
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\Bundle
+{
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+interface BundleInterface
+{
+ function boot();
+ function shutdown();
+ function build(ContainerBuilder $container);
+ function getParent();
+ function getName();
+ function getNamespace();
+ function getPath();
+}
+}
+namespace Symfony\Component\HttpKernel\Bundle
+{
+use Symfony\Component\DependencyInjection\ContainerAware;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\Console\Application;
+use Symfony\Component\Finder\Finder;
+abstract class Bundle extends ContainerAware implements BundleInterface
+{
+ protected $name;
+ protected $reflected;
+ public function boot()
+ {
+ }
+ public function shutdown()
+ {
+ }
+ public function build(ContainerBuilder $container)
+ {
+ $class = $this->getNamespace().'\\DependencyInjection\\'.str_replace('Bundle', 'Extension', $this->getName());
+ if (class_exists($class)) {
+ $extension = new $class();
+ $alias = Container::underscore(str_replace('Bundle', '', $this->getName()));
+ if ($alias !== $extension->getAlias()) {
+ throw new \LogicException(sprintf('The extension alias for the default extension of a bundle must be the underscored version of the bundle name ("%s" vs "%s")', $alias, $extension->getAlias()));
+ }
+ $container->registerExtension($extension);
+ }
+ }
+ public function getNamespace()
+ {
+ if (null === $this->reflected) {
+ $this->reflected = new \ReflectionObject($this);
+ }
+ return $this->reflected->getNamespaceName();
+ }
+ public function getPath()
+ {
+ if (null === $this->reflected) {
+ $this->reflected = new \ReflectionObject($this);
+ }
+ return dirname($this->reflected->getFileName());
+ }
+ public function getParent()
+ {
+ return null;
+ }
+ final public function getName()
+ {
+ if (null !== $this->name) {
+ return $this->name;
+ }
+ $name = get_class($this);
+ $pos = strrpos($name, '\\');
+ return $this->name = false === $pos ? $name : substr($name, $pos + 1);
+ }
+ public function registerCommands(Application $application)
+ {
+ if (!$dir = realpath($this->getPath().'/Command')) {
+ return;
+ }
+ $finder = new Finder();
+ $finder->files()->name('*Command.php')->in($dir);
+ $prefix = $this->getNamespace().'\\Command';
+ foreach ($finder as $file) {
+ $ns = $prefix;
+ if ($relativePath = $file->getRelativePath()) {
+ $ns .= '\\'.strtr($relativePath, '/', '\\');
+ }
+ $r = new \ReflectionClass($ns.'\\'.$file->getBasename('.php'));
+ if ($r->isSubclassOf('Symfony\\Component\\Console\\Command\\Command') && !$r->isAbstract()) {
+ $application->add($r->newInstance());
+ }
+ }
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\Debug
+{
+class ErrorHandler
+{
+ private $levels = array(
+ E_WARNING => 'Warning',
+ E_NOTICE => 'Notice',
+ E_USER_ERROR => 'User Error',
+ E_USER_WARNING => 'User Warning',
+ E_USER_NOTICE => 'User Notice',
+ E_STRICT => 'Runtime Notice',
+ E_RECOVERABLE_ERROR => 'Catchable Fatal Error',
+ );
+ private $level;
+ public function __construct($level = null)
+ {
+ $this->level = null === $level ? error_reporting() : $level;
+ }
+ public function register()
+ {
+ set_error_handler(array($this, 'handle'));
+ }
+ public function handle($level, $message, $file, $line, $context)
+ {
+ if (0 === $this->level) {
+ return false;
+ }
+ if (error_reporting() & $level && $this->level & $level) {
+ throw new \ErrorException(sprintf('%s: %s in %s line %d', isset($this->levels[$level]) ? $this->levels[$level] : $level, $message, $file, $line));
+ }
+ return false;
+ }
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\HttpFoundation\Request;
+interface HttpKernelInterface
+{
+ const MASTER_REQUEST = 1;
+ const SUB_REQUEST = 2;
+ function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true);
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
+use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpKernel\Event\GetResponseEvent;
+use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
+use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+class HttpKernel implements HttpKernelInterface
+{
+ private $dispatcher;
+ private $resolver;
+ public function __construct(EventDispatcherInterface $dispatcher, ControllerResolverInterface $resolver)
+ {
+ $this->dispatcher = $dispatcher;
+ $this->resolver = $resolver;
+ }
+ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
+ {
+ try {
+ return $this->handleRaw($request, $type);
+ } catch (\Exception $e) {
+ if (false === $catch) {
+ throw $e;
+ }
+ return $this->handleException($e, $request, $type);
+ }
+ }
+ private function handleRaw(Request $request, $type = self::MASTER_REQUEST)
+ {
+ $event = new GetResponseEvent($this, $request, $type);
+ $this->dispatcher->dispatch(Events::onCoreRequest, $event);
+ if ($event->hasResponse()) {
+ return $this->filterResponse($event->getResponse(), $request, $type);
+ }
+ if (false === $controller = $this->resolver->getController($request)) {
+ throw new NotFoundHttpException(sprintf('Unable to find the controller for path "%s". Maybe you forgot to add the matching route in your routing configuration?', $request->getPathInfo()));
+ }
+ $event = new FilterControllerEvent($this, $controller, $request, $type);
+ $this->dispatcher->dispatch(Events::onCoreController, $event);
+ $controller = $event->getController();
+ $arguments = $this->resolver->getArguments($request, $controller);
+ $response = call_user_func_array($controller, $arguments);
+ if (!$response instanceof Response) {
+ $event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
+ $this->dispatcher->dispatch(Events::onCoreView, $event);
+ if ($event->hasResponse()) {
+ $response = $event->getResponse();
+ }
+ if (!$response instanceof Response) {
+ $msg = sprintf('The controller must return a response (%s given).', $this->varToString($response));
+ if (null === $response) {
+ $msg .= ' Did you forget to add a return statement somewhere in your controller?';
+ }
+ throw new \LogicException($msg);
+ }
+ }
+ return $this->filterResponse($response, $request, $type);
+ }
+ private function filterResponse(Response $response, Request $request, $type)
+ {
+ $event = new FilterResponseEvent($this, $request, $type, $response);
+ $this->dispatcher->dispatch(Events::onCoreResponse, $event);
+ return $event->getResponse();
+ }
+ private function handleException(\Exception $e, $request, $type)
+ {
+ $event = new GetResponseForExceptionEvent($this, $request, $type, $e);
+ $this->dispatcher->dispatch(Events::onCoreException, $event);
+ if (!$event->hasResponse()) {
+ throw $e;
+ }
+ try {
+ return $this->filterResponse($event->getResponse(), $request, $type);
+ } catch (\Exception $e) {
+ return $event->getResponse();
+ }
+ }
+ private function varToString($var)
+ {
+ if (is_object($var)) {
+ return sprintf('[object](%s)', get_class($var));
+ }
+ if (is_array($var)) {
+ $a = array();
+ foreach ($var as $k => $v) {
+ $a[] = sprintf('%s => %s', $k, $this->varToString($v));
+ }
+ return sprintf("[array](%s)", implode(', ', $a));
+ }
+ if (is_resource($var)) {
+ return '[resource]';
+ }
+ if (null === $var) {
+ return 'null';
+ }
+ return str_replace("\n", '', var_export((string) $var, true));
+ }
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Bundle\BundleInterface;
+use Symfony\Component\Config\Loader\LoaderInterface;
+interface KernelInterface extends HttpKernelInterface, \Serializable
+{
+ function registerBundles();
+ function registerContainerConfiguration(LoaderInterface $loader);
+ function boot();
+ function shutdown();
+ function getBundles();
+ function isClassInActiveBundle($class);
+ function getBundle($name, $first = true);
+ function locateResource($name, $dir = null, $first = true);
+ function getName();
+ function getEnvironment();
+ function isDebug();
+ function getRootDir();
+ function getContainer();
+ function getStartTime();
+ function getCacheDir();
+ function getLogDir();
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
+use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
+use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
+use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Bundle\BundleInterface;
+use Symfony\Component\HttpKernel\Config\FileLocator;
+use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
+use Symfony\Component\Config\Loader\LoaderResolver;
+use Symfony\Component\Config\Loader\DelegatingLoader;
+use Symfony\Component\Config\ConfigCache;
+abstract class Kernel implements KernelInterface
+{
+ protected $bundles;
+ protected $bundleMap;
+ protected $container;
+ protected $rootDir;
+ protected $environment;
+ protected $debug;
+ protected $booted;
+ protected $name;
+ protected $startTime;
+ const VERSION = '2.0.0-DEV';
+ public function __construct($environment, $debug)
+ {
+ $this->environment = $environment;
+ $this->debug = (Boolean) $debug;
+ $this->booted = false;
+ $this->rootDir = $this->getRootDir();
+ $this->name = preg_replace('/[^a-zA-Z0-9_]+/', '', basename($this->rootDir));
+ if ($this->debug) {
+ ini_set('display_errors', 1);
+ error_reporting(-1);
+ $this->startTime = microtime(true);
+ } else {
+ ini_set('display_errors', 0);
+ }
+ }
+ public function __clone()
+ {
+ if ($this->debug) {
+ $this->startTime = microtime(true);
+ }
+ $this->booted = false;
+ $this->container = null;
+ }
+ public function boot()
+ {
+ if (true === $this->booted) {
+ return;
+ }
+ $this->initializeBundles();
+ $this->initializeContainer();
+ foreach ($this->getBundles() as $bundle) {
+ $bundle->setContainer($this->container);
+ $bundle->boot();
+ }
+ $this->booted = true;
+ }
+ public function shutdown()
+ {
+ $this->booted = false;
+ foreach ($this->getBundles() as $bundle) {
+ $bundle->shutdown();
+ $bundle->setContainer(null);
+ }
+ $this->container = null;
+ }
+ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
+ {
+ if (false === $this->booted) {
+ $this->boot();
+ }
+ return $this->getHttpKernel()->handle($request, $type, $catch);
+ }
+ protected function getHttpKernel()
+ {
+ return $this->container->get('http_kernel');
+ }
+ public function getBundles()
+ {
+ return $this->bundles;
+ }
+ public function isClassInActiveBundle($class)
+ {
+ foreach ($this->getBundles() as $bundle) {
+ if (0 === strpos($class, $bundle->getNamespace())) {
+ return true;
+ }
+ }
+ return false;
+ }
+ public function getBundle($name, $first = true)
+ {
+ if (!isset($this->bundleMap[$name])) {
+ throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() function of your %s.php file?', $name, get_class($this)));
+ }
+ if (true === $first) {
+ return $this->bundleMap[$name][0];
+ } elseif (false === $first) {
+ return $this->bundleMap[$name];
+ }
+ }
+ public function locateResource($name, $dir = null, $first = true)
+ {
+ if ('@' !== $name[0]) {
+ throw new \InvalidArgumentException(sprintf('A resource name must start with @ ("%s" given).', $name));
+ }
+ if (false !== strpos($name, '..')) {
+ throw new \RuntimeException(sprintf('File name "%s" contains invalid characters (..).', $name));
+ }
+ $name = substr($name, 1);
+ list($bundleName, $path) = explode('/', $name, 2);
+ $isResource = 0 === strpos($path, 'Resources') && null !== $dir;
+ $overridePath = substr($path, 9);
+ $resourceBundle = null;
+ $bundles = $this->getBundle($bundleName, false);
+ $files = array();
+ foreach ($bundles as $bundle) {
+ if ($isResource && file_exists($file = $dir.'/'.$bundle->getName().$overridePath)) {
+ if (null !== $resourceBundle) {
+ throw new \RuntimeException(sprintf('"%s" resource is hidden by a resource from the "%s" derived bundle. Create a "%s" file to override the bundle resource.',
+ $file,
+ $resourceBundle,
+ $dir.'/'.$bundles[0]->getName().$overridePath
+ ));
+ }
+ if ($first) {
+ return $file;
+ }
+ $files[] = $file;
+ }
+ if (file_exists($file = $bundle->getPath().'/'.$path)) {
+ if ($first && !$isResource) {
+ return $file;
+ }
+ $files[] = $file;
+ $resourceBundle = $bundle->getName();
+ }
+ }
+ if (count($files) > 0) {
+ return $first && $isResource ? $files[0] : $files;
+ }
+ throw new \InvalidArgumentException(sprintf('Unable to find file "@%s".', $name));
+ }
+ public function getName()
+ {
+ return $this->name;
+ }
+ public function getEnvironment()
+ {
+ return $this->environment;
+ }
+ public function isDebug()
+ {
+ return $this->debug;
+ }
+ public function getRootDir()
+ {
+ if (null === $this->rootDir) {
+ $r = new \ReflectionObject($this);
+ $this->rootDir = dirname($r->getFileName());
+ }
+ return $this->rootDir;
+ }
+ public function getContainer()
+ {
+ return $this->container;
+ }
+ public function getStartTime()
+ {
+ return $this->debug ? $this->startTime : -INF;
+ }
+ public function getCacheDir()
+ {
+ return $this->rootDir.'/cache/'.$this->environment;
+ }
+ public function getLogDir()
+ {
+ return $this->rootDir.'/logs';
+ }
+ protected function initializeBundles()
+ {
+ $this->bundles = array();
+ $topMostBundles = array();
+ $directChildren = array();
+ foreach ($this->registerBundles() as $bundle) {
+ $name = $bundle->getName();
+ if (isset($this->bundles[$name])) {
+ throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s"', $name));
+ }
+ $this->bundles[$name] = $bundle;
+ if ($parentName = $bundle->getParent()) {
+ if (isset($directChildren[$parentName])) {
+ throw new \LogicException(sprintf('Bundle "%s" is directly extended by two bundles "%s" and "%s".', $parentName, $name, $directChildren[$parentName]));
+ }
+ if ($parentName == $name) {
+ throw new \LogicException(sprintf('Bundle "%s" can not extend itself.', $name));
+ }
+ $directChildren[$parentName] = $name;
+ } else {
+ $topMostBundles[$name] = $bundle;
+ }
+ }
+ if (count($diff = array_values(array_diff(array_keys($directChildren), array_keys($this->bundles))))) {
+ throw new \LogicException(sprintf('Bundle "%s" extends bundle "%s", which is not registered.', $directChildren[$diff[0]], $diff[0]));
+ }
+ $this->bundleMap = array();
+ foreach ($topMostBundles as $name => $bundle) {
+ $bundleMap = array($bundle);
+ $hierarchy = array($name);
+ while (isset($directChildren[$name])) {
+ $name = $directChildren[$name];
+ array_unshift($bundleMap, $this->bundles[$name]);
+ $hierarchy[] = $name;
+ }
+ foreach ($hierarchy as $bundle) {
+ $this->bundleMap[$bundle] = $bundleMap;
+ array_pop($bundleMap);
+ }
+ }
+ }
+ protected function getContainerClass()
+ {
+ return $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer';
+ }
+ protected function initializeContainer()
+ {
+ $class = $this->getContainerClass();
+ $cache = new ConfigCache($this->getCacheDir().'/'.$class.'.php', $this->debug);
+ $fresh = true;
+ if (!$cache->isFresh()) {
+ $container = $this->buildContainer();
+ $this->dumpContainer($cache, $container, $class);
+ $fresh = false;
+ }
+ require_once $cache;
+ $this->container = new $class();
+ $this->container->set('kernel', $this);
+ if (!$fresh && 'cli' !== php_sapi_name()) {
+ $this->container->get('cache_warmer')->warmUp($this->container->getParameter('kernel.cache_dir'));
+ }
+ }
+ protected function getKernelParameters()
+ {
+ $bundles = array();
+ foreach ($this->bundles as $name => $bundle) {
+ $bundles[$name] = get_class($bundle);
+ }
+ return array_merge(
+ array(
+ 'kernel.root_dir' => $this->rootDir,
+ 'kernel.environment' => $this->environment,
+ 'kernel.debug' => $this->debug,
+ 'kernel.name' => $this->name,
+ 'kernel.cache_dir' => $this->getCacheDir(),
+ 'kernel.logs_dir' => $this->getLogDir(),
+ 'kernel.bundles' => $bundles,
+ 'kernel.charset' => 'UTF-8',
+ 'kernel.container_class' => $this->getContainerClass(),
+ ),
+ $this->getEnvParameters()
+ );
+ }
+ protected function getEnvParameters()
+ {
+ $parameters = array();
+ foreach ($_SERVER as $key => $value) {
+ if ('SYMFONY__' === substr($key, 0, 9)) {
+ $parameters[strtolower(str_replace('__', '.', substr($key, 9)))] = $value;
+ }
+ }
+ return $parameters;
+ }
+ protected function buildContainer()
+ {
+ $parameterBag = new ParameterBag($this->getKernelParameters());
+ $container = new ContainerBuilder($parameterBag);
+ $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass());
+ foreach ($this->bundles as $bundle) {
+ $bundle->build($container);
+ if ($this->debug) {
+ $container->addObjectResource($bundle);
+ }
+ }
+ $container->addObjectResource($this);
+ if (null !== $cont = $this->registerContainerConfiguration($this->getContainerLoader($container))) {
+ $container->merge($cont);
+ }
+ foreach (array('cache', 'logs') as $name) {
+ $dir = $container->getParameter(sprintf('kernel.%s_dir', $name));
+ if (!is_dir($dir)) {
+ if (false === @mkdir($dir, 0777, true)) {
+ exit(sprintf("Unable to create the %s directory (%s)\n", $name, dirname($dir)));
+ }
+ } elseif (!is_writable($dir)) {
+ exit(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
+ }
+ }
+ $container->compile();
+ return $container;
+ }
+ protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, $class)
+ {
+ $dumper = new PhpDumper($container);
+ $content = $dumper->dump(array('class' => $class));
+ if (!$this->debug) {
+ $content = self::stripComments($content);
+ }
+ $cache->write($content, $container->getResources());
+ }
+ protected function getContainerLoader(ContainerInterface $container)
+ {
+ $locator = new FileLocator($this);
+ $resolver = new LoaderResolver(array(
+ new XmlFileLoader($container, $locator),
+ new YamlFileLoader($container, $locator),
+ new IniFileLoader($container, $locator),
+ new PhpFileLoader($container, $locator),
+ new ClosureLoader($container, $locator),
+ ));
+ return new DelegatingLoader($resolver);
+ }
+ static public function stripComments($source)
+ {
+ if (!function_exists('token_get_all')) {
+ return $source;
+ }
+ $output = '';
+ foreach (token_get_all($source) as $token) {
+ if (is_string($token)) {
+ $output .= $token;
+ } elseif (!in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
+ $output .= $token[1];
+ }
+ }
+ $output = preg_replace(array('/\s+$/Sm', '/\n+/S'), "\n", $output);
+ return $output;
+ }
+ public function serialize()
+ {
+ return serialize(array($this->environment, $this->debug));
+ }
+ public function unserialize($data)
+ {
+ list($environment, $debug) = unserialize($data);
+ $this->__construct($environment, $debug);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ParameterBag
+{
+ protected $parameters;
+ public function __construct(array $parameters = array())
+ {
+ $this->parameters = $parameters;
+ }
+ public function all()
+ {
+ return $this->parameters;
+ }
+ public function keys()
+ {
+ return array_keys($this->parameters);
+ }
+ public function replace(array $parameters = array())
+ {
+ $this->parameters = $parameters;
+ }
+ public function add(array $parameters = array())
+ {
+ $this->parameters = array_replace($this->parameters, $parameters);
+ }
+ public function get($key, $default = null)
+ {
+ return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default;
+ }
+ public function set($key, $value)
+ {
+ $this->parameters[$key] = $value;
+ }
+ public function has($key)
+ {
+ return array_key_exists($key, $this->parameters);
+ }
+ public function remove($key)
+ {
+ unset($this->parameters[$key]);
+ }
+ public function getAlpha($key, $default = '')
+ {
+ return preg_replace('/[^[:alpha:]]/', '', $this->get($key, $default));
+ }
+ public function getAlnum($key, $default = '')
+ {
+ return preg_replace('/[^[:alnum:]]/', '', $this->get($key, $default));
+ }
+ public function getDigits($key, $default = '')
+ {
+ return preg_replace('/[^[:digit:]]/', '', $this->get($key, $default));
+ }
+ public function getInt($key, $default = 0)
+ {
+ return (int) $this->get($key, $default);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+class FileBag extends ParameterBag
+{
+ static private $fileKeys = array('error', 'name', 'size', 'tmp_name', 'type');
+ public function __construct(array $parameters = array())
+ {
+ $this->replace($parameters);
+ }
+ public function replace(array $files = array())
+ {
+ $this->parameters = array();
+ $this->add($files);
+ }
+ public function set($key, $value)
+ {
+ if (is_array($value) || $value instanceof UploadedFile) {
+ parent::set($key, $this->convertFileInformation($value));
+ }
+ }
+ public function add(array $files = array())
+ {
+ foreach ($files as $key => $file) {
+ $this->set($key, $file);
+ }
+ }
+ protected function convertFileInformation($file)
+ {
+ if ($file instanceof UploadedFile) {
+ return $file;
+ }
+ $file = $this->fixPhpFilesArray($file);
+ if (is_array($file)) {
+ $keys = array_keys($file);
+ sort($keys);
+ if ($keys == self::$fileKeys) {
+ if (UPLOAD_ERR_NO_FILE == $file['error']) {
+ $file = null;
+ } else {
+ $file = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['size'], $file['error']);
+ }
+ } else {
+ $file = array_map(array($this, 'convertFileInformation'), $file);
+ }
+ }
+ return $file;
+ }
+ protected function fixPhpFilesArray($data)
+ {
+ if (!is_array($data)) {
+ return $data;
+ }
+ $keys = array_keys($data);
+ sort($keys);
+ if (self::$fileKeys != $keys || !isset($data['name']) || !is_array($data['name'])) {
+ return $data;
+ }
+ $files = $data;
+ foreach (self::$fileKeys as $k) {
+ unset($files[$k]);
+ }
+ foreach (array_keys($data['name']) as $key) {
+ $files[$key] = $this->fixPhpFilesArray(array(
+ 'error' => $data['error'][$key],
+ 'name' => $data['name'][$key], 'type' => $data['type'][$key],
+ 'tmp_name' => $data['tmp_name'][$key],
+ 'size' => $data['size'][$key]
+ ));
+ }
+ return $files;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ServerBag extends ParameterBag
+{
+ public function getHeaders()
+ {
+ $headers = array();
+ foreach ($this->parameters as $key => $value) {
+ if ('HTTP_' === substr($key, 0, 5)) {
+ $headers[substr($key, 5)] = $value;
+ }
+ }
+ return $headers;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class HeaderBag
+{
+ protected $headers;
+ protected $cookies;
+ protected $cacheControl;
+ public function __construct(array $headers = array())
+ {
+ $this->cacheControl = array();
+ $this->cookies = array();
+ $this->headers = array();
+ foreach ($headers as $key => $values) {
+ $this->set($key, $values);
+ }
+ }
+ public function all()
+ {
+ return $this->headers;
+ }
+ public function keys()
+ {
+ return array_keys($this->headers);
+ }
+ public function replace(array $headers = array())
+ {
+ $this->headers = array();
+ $this->add($headers);
+ }
+ public function add(array $headers)
+ {
+ foreach ($headers as $key => $values) {
+ $this->set($key, $values);
+ }
+ }
+ public function get($key, $default = null, $first = true)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ if (!array_key_exists($key, $this->headers)) {
+ if (null === $default) {
+ return $first ? null : array();
+ }
+ return $first ? $default : array($default);
+ }
+ if ($first) {
+ return count($this->headers[$key]) ? $this->headers[$key][0] : $default;
+ }
+ return $this->headers[$key];
+ }
+ public function set($key, $values, $replace = true)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ if (!is_array($values)) {
+ $values = array($values);
+ }
+ if (true === $replace || !isset($this->headers[$key])) {
+ $this->headers[$key] = $values;
+ } else {
+ $this->headers[$key] = array_merge($this->headers[$key], $values);
+ }
+ if ('cache-control' === $key) {
+ $this->cacheControl = $this->parseCacheControl($values[0]);
+ }
+ }
+ public function has($key)
+ {
+ return array_key_exists(strtr(strtolower($key), '_', '-'), $this->headers);
+ }
+ public function contains($key, $value)
+ {
+ return in_array($value, $this->get($key, null, false));
+ }
+ public function remove($key)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ unset($this->headers[$key]);
+ if ('cache-control' === $key) {
+ $this->cacheControl = array();
+ }
+ }
+ public function setCookie(Cookie $cookie)
+ {
+ $this->cookies[$cookie->getName()] = $cookie;
+ }
+ public function removeCookie($name)
+ {
+ unset($this->cookies[$name]);
+ }
+ public function hasCookie($name)
+ {
+ return isset($this->cookies[$name]);
+ }
+ public function getCookie($name)
+ {
+ if (!$this->hasCookie($name)) {
+ throw new \InvalidArgumentException(sprintf('There is no cookie with name "%s".', $name));
+ }
+ return $this->cookies[$name];
+ }
+ public function getCookies()
+ {
+ return $this->cookies;
+ }
+ public function getDate($key, \DateTime $default = null)
+ {
+ if (null === $value = $this->get($key)) {
+ return $default;
+ }
+ if (false === $date = \DateTime::createFromFormat(DATE_RFC2822, $value)) {
+ throw new \RuntimeException(sprintf('The %s HTTP header is not parseable (%s).', $key, $value));
+ }
+ return $date;
+ }
+ public function addCacheControlDirective($key, $value = true)
+ {
+ $this->cacheControl[$key] = $value;
+ $this->set('Cache-Control', $this->getCacheControlHeader());
+ }
+ public function hasCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->cacheControl);
+ }
+ public function getCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->cacheControl) ? $this->cacheControl[$key] : null;
+ }
+ public function removeCacheControlDirective($key)
+ {
+ unset($this->cacheControl[$key]);
+ $this->set('Cache-Control', $this->getCacheControlHeader());
+ }
+ protected function getCacheControlHeader()
+ {
+ $parts = array();
+ ksort($this->cacheControl);
+ foreach ($this->cacheControl as $key => $value) {
+ if (true === $value) {
+ $parts[] = $key;
+ } else {
+ if (preg_match('#[^a-zA-Z0-9._-]#', $value)) {
+ $value = '"'.$value.'"';
+ }
+ $parts[] = "$key=$value";
+ }
+ }
+ return implode(', ', $parts);
+ }
+ protected function parseCacheControl($header)
+ {
+ $cacheControl = array();
+ preg_match_all('#([a-zA-Z][a-zA-Z_-]*)\s*(?:=(?:"([^"]*)"|([^ \t",;]*)))?#', $header, $matches, PREG_SET_ORDER);
+ foreach ($matches as $match) {
+ $cacheControl[strtolower($match[1])] = isset($match[2]) && $match[2] ? $match[2] : (isset($match[3]) ? $match[3] : true);
+ }
+ return $cacheControl;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+use Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+class Request
+{
+ public $attributes;
+ public $request;
+ public $query;
+ public $server;
+ public $files;
+ public $cookies;
+ public $headers;
+ protected $content;
+ protected $languages;
+ protected $charsets;
+ protected $acceptableContentTypes;
+ protected $pathInfo;
+ protected $requestUri;
+ protected $baseUrl;
+ protected $basePath;
+ protected $method;
+ protected $format;
+ protected $session;
+ static protected $formats;
+ public function __construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
+ {
+ $this->initialize($query, $request, $attributes, $cookies, $files, $server, $content);
+ }
+ public function initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
+ {
+ $this->request = new ParameterBag($request);
+ $this->query = new ParameterBag($query);
+ $this->attributes = new ParameterBag($attributes);
+ $this->cookies = new ParameterBag($cookies);
+ $this->files = new FileBag($files);
+ $this->server = new ServerBag($server);
+ $this->headers = new HeaderBag($this->server->getHeaders());
+ $this->content = $content;
+ $this->languages = null;
+ $this->charsets = null;
+ $this->acceptableContentTypes = null;
+ $this->pathInfo = null;
+ $this->requestUri = null;
+ $this->baseUrl = null;
+ $this->basePath = null;
+ $this->method = null;
+ $this->format = null;
+ }
+ static public function createfromGlobals()
+ {
+ return new static($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER);
+ }
+ static public function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
+ {
+ $defaults = array(
+ 'SERVER_NAME' => 'localhost',
+ 'SERVER_PORT' => 80,
+ 'HTTP_HOST' => 'localhost',
+ 'HTTP_USER_AGENT' => 'Symfony/2.X',
+ 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
+ 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
+ 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
+ 'REMOTE_ADDR' => '127.0.0.1',
+ 'SCRIPT_NAME' => '',
+ 'SCRIPT_FILENAME' => '',
+ );
+ $components = parse_url($uri);
+ if (isset($components['host'])) {
+ $defaults['SERVER_NAME'] = $components['host'];
+ $defaults['HTTP_HOST'] = $components['host'];
+ }
+ if (isset($components['scheme'])) {
+ if ('https' === $components['scheme']) {
+ $defaults['HTTPS'] = 'on';
+ $defaults['SERVER_PORT'] = 443;
+ }
+ }
+ if (isset($components['port'])) {
+ $defaults['SERVER_PORT'] = $components['port'];
+ $defaults['HTTP_HOST'] = $defaults['HTTP_HOST'].':'.$components['port'];
+ }
+ if (in_array(strtoupper($method), array('POST', 'PUT', 'DELETE'))) {
+ $request = $parameters;
+ $query = array();
+ $defaults['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
+ } else {
+ $request = array();
+ $query = $parameters;
+ if (false !== $pos = strpos($uri, '?')) {
+ $qs = substr($uri, $pos + 1);
+ parse_str($qs, $params);
+ $query = array_merge($params, $query);
+ }
+ }
+ $queryString = isset($components['query']) ? html_entity_decode($components['query']) : '';
+ parse_str($queryString, $qs);
+ if (is_array($qs)) {
+ $query = array_replace($qs, $query);
+ }
+ $uri = $components['path'] . ($queryString ? '?'.$queryString : '');
+ $server = array_replace($defaults, $server, array(
+ 'REQUEST_METHOD' => strtoupper($method),
+ 'PATH_INFO' => '',
+ 'REQUEST_URI' => $uri,
+ 'QUERY_STRING' => $queryString,
+ ));
+ return new static($query, $request, array(), $cookies, $files, $server, $content);
+ }
+ public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)
+ {
+ $dup = clone $this;
+ if ($query !== null) {
+ $dup->query = new ParameterBag($query);
+ }
+ if ($request !== null) {
+ $dup->request = new ParameterBag($request);
+ }
+ if ($attributes !== null) {
+ $dup->attributes = new ParameterBag($attributes);
+ }
+ if ($cookies !== null) {
+ $dup->cookies = new ParameterBag($cookies);
+ }
+ if ($files !== null) {
+ $dup->files = new FileBag($files);
+ }
+ if ($server !== null) {
+ $dup->server = new ServerBag($server);
+ $dup->headers = new HeaderBag($dup->server->getHeaders());
+ }
+ $this->languages = null;
+ $this->charsets = null;
+ $this->acceptableContentTypes = null;
+ $this->pathInfo = null;
+ $this->requestUri = null;
+ $this->baseUrl = null;
+ $this->basePath = null;
+ $this->method = null;
+ $this->format = null;
+ return $dup;
+ }
+ public function __clone()
+ {
+ $this->query = clone $this->query;
+ $this->request = clone $this->request;
+ $this->attributes = clone $this->attributes;
+ $this->cookies = clone $this->cookies;
+ $this->files = clone $this->files;
+ $this->server = clone $this->server;
+ $this->headers = clone $this->headers;
+ }
+ public function overrideGlobals()
+ {
+ $_GET = $this->query->all();
+ $_POST = $this->request->all();
+ $_SERVER = $this->server->all();
+ $_COOKIE = $this->cookies->all();
+ foreach ($this->headers->all() as $key => $value) {
+ $_SERVER['HTTP_'.strtoupper(str_replace('-', '_', $key))] = implode(', ', $value);
+ }
+ $_REQUEST = array_merge($_GET, $_POST);
+ }
+ public function get($key, $default = null)
+ {
+ return $this->query->get($key, $this->attributes->get($key, $this->request->get($key, $default)));
+ }
+ public function getSession()
+ {
+ return $this->session;
+ }
+ public function hasSession()
+ {
+ return $this->cookies->has(session_name());
+ }
+ public function setSession(Session $session)
+ {
+ $this->session = $session;
+ }
+ public function getClientIp($proxy = false)
+ {
+ if ($proxy) {
+ if ($this->server->has('HTTP_CLIENT_IP')) {
+ return $this->server->get('HTTP_CLIENT_IP');
+ } elseif ($this->server->has('HTTP_X_FORWARDED_FOR')) {
+ return $this->server->get('HTTP_X_FORWARDED_FOR');
+ }
+ }
+ return $this->server->get('REMOTE_ADDR');
+ }
+ public function getScriptName()
+ {
+ return $this->server->get('SCRIPT_NAME', $this->server->get('ORIG_SCRIPT_NAME', ''));
+ }
+ public function getPathInfo()
+ {
+ if (null === $this->pathInfo) {
+ $this->pathInfo = $this->preparePathInfo();
+ }
+ return $this->pathInfo;
+ }
+ public function getBasePath()
+ {
+ if (null === $this->basePath) {
+ $this->basePath = $this->prepareBasePath();
+ }
+ return $this->basePath;
+ }
+ public function getBaseUrl()
+ {
+ if (null === $this->baseUrl) {
+ $this->baseUrl = $this->prepareBaseUrl();
+ }
+ return $this->baseUrl;
+ }
+ public function getScheme()
+ {
+ return ($this->server->get('HTTPS') == 'on') ? 'https' : 'http';
+ }
+ public function getPort()
+ {
+ return $this->server->get('SERVER_PORT');
+ }
+ public function getHttpHost()
+ {
+ $host = $this->headers->get('HOST');
+ if (!empty($host)) {
+ return $host;
+ }
+ $scheme = $this->getScheme();
+ $name = $this->server->get('SERVER_NAME');
+ $port = $this->getPort();
+ if (('http' == $scheme && $port == 80) || ('https' == $scheme && $port == 443)) {
+ return $name;
+ }
+ return $name.':'.$port;
+ }
+ public function getRequestUri()
+ {
+ if (null === $this->requestUri) {
+ $this->requestUri = $this->prepareRequestUri();
+ }
+ return $this->requestUri;
+ }
+ public function getUri()
+ {
+ $qs = $this->getQueryString();
+ if (null !== $qs) {
+ $qs = '?'.$qs;
+ }
+ return $this->getScheme().'://'.$this->getHttpHost().$this->getBaseUrl().$this->getPathInfo().$qs;
+ }
+ public function getUriForPath($path)
+ {
+ return $this->getScheme().'://'.$this->getHttpHost().$this->getBaseUrl().$path;
+ }
+ public function getQueryString()
+ {
+ if (!$qs = $this->server->get('QUERY_STRING')) {
+ return null;
+ }
+ $parts = array();
+ $order = array();
+ foreach (explode('&', $qs) as $segment) {
+ if (false === strpos($segment, '=')) {
+ $parts[] = $segment;
+ $order[] = $segment;
+ } else {
+ $tmp = explode('=', urldecode($segment), 2);
+ $parts[] = urlencode($tmp[0]).'='.urlencode($tmp[1]);
+ $order[] = $tmp[0];
+ }
+ }
+ array_multisort($order, SORT_ASC, $parts);
+ return implode('&', $parts);
+ }
+ public function isSecure()
+ {
+ return (
+ (strtolower($this->server->get('HTTPS')) == 'on' || $this->server->get('HTTPS') == 1)
+ ||
+ (strtolower($this->headers->get('SSL_HTTPS')) == 'on' || $this->headers->get('SSL_HTTPS') == 1)
+ ||
+ (strtolower($this->headers->get('X_FORWARDED_PROTO')) == 'https')
+ );
+ }
+ public function getHost()
+ {
+ if ($host = $this->headers->get('X_FORWARDED_HOST')) {
+ $elements = explode(',', $host);
+ $host = trim($elements[count($elements) - 1]);
+ } else {
+ if (!$host = $this->headers->get('HOST')) {
+ if (!$host = $this->server->get('SERVER_NAME')) {
+ $host = $this->server->get('SERVER_ADDR', '');
+ }
+ }
+ }
+ $elements = explode(':', $host);
+ return trim($elements[0]);
+ }
+ public function setMethod($method)
+ {
+ $this->method = null;
+ $this->server->set('REQUEST_METHOD', $method);
+ }
+ public function getMethod()
+ {
+ if (null === $this->method) {
+ $this->method = strtoupper($this->server->get('REQUEST_METHOD', 'GET'));
+ if ('POST' === $this->method) {
+ $this->method = strtoupper($this->request->get('_method', 'POST'));
+ }
+ }
+ return $this->method;
+ }
+ public function getMimeType($format)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ return isset(static::$formats[$format]) ? static::$formats[$format][0] : null;
+ }
+ public function getFormat($mimeType)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ foreach (static::$formats as $format => $mimeTypes) {
+ if (in_array($mimeType, (array) $mimeTypes)) {
+ return $format;
+ }
+ }
+ return null;
+ }
+ public function setFormat($format, $mimeTypes)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ static::$formats[$format] = is_array($mimeTypes) ? $mimeTypes : array($mimeTypes);
+ }
+ public function getRequestFormat()
+ {
+ if (null === $this->format) {
+ $this->format = $this->get('_format', 'html');
+ }
+ return $this->format;
+ }
+ public function setRequestFormat($format)
+ {
+ $this->format = $format;
+ }
+ public function isMethodSafe()
+ {
+ return in_array($this->getMethod(), array('GET', 'HEAD'));
+ }
+ public function getContent($asResource = false)
+ {
+ if (false === $this->content || (true === $asResource && null !== $this->content)) {
+ throw new \LogicException('getContent() can only be called once when using the resource return type.');
+ }
+ if (true === $asResource) {
+ $this->content = false;
+ return fopen('php://input', 'rb');
+ }
+ if (null === $this->content) {
+ $this->content = file_get_contents('php://input');
+ }
+ return $this->content;
+ }
+ public function getETags()
+ {
+ return preg_split('/\s*,\s*/', $this->headers->get('if_none_match'), null, PREG_SPLIT_NO_EMPTY);
+ }
+ public function isNoCache()
+ {
+ return $this->headers->hasCacheControlDirective('no-cache') || 'no-cache' == $this->headers->get('Pragma');
+ }
+ public function getPreferredLanguage(array $locales = null)
+ {
+ $preferredLanguages = $this->getLanguages();
+ if (null === $locales) {
+ return isset($preferredLanguages[0]) ? $preferredLanguages[0] : null;
+ }
+ if (!$preferredLanguages) {
+ return $locales[0];
+ }
+ $preferredLanguages = array_values(array_intersect($preferredLanguages, $locales));
+ return isset($preferredLanguages[0]) ? $preferredLanguages[0] : $locales[0];
+ }
+ public function getLanguages()
+ {
+ if (null !== $this->languages) {
+ return $this->languages;
+ }
+ $languages = $this->splitHttpAcceptHeader($this->headers->get('Accept-Language'));
+ $this->languages = array();
+ foreach ($languages as $lang) {
+ if (strstr($lang, '-')) {
+ $codes = explode('-', $lang);
+ if ($codes[0] == 'i') {
+ if (count($codes) > 1) {
+ $lang = $codes[1];
+ }
+ } else {
+ for ($i = 0, $max = count($codes); $i < $max; $i++) {
+ if ($i == 0) {
+ $lang = strtolower($codes[0]);
+ } else {
+ $lang .= '_'.strtoupper($codes[$i]);
+ }
+ }
+ }
+ }
+ $this->languages[] = $lang;
+ }
+ return $this->languages;
+ }
+ public function getCharsets()
+ {
+ if (null !== $this->charsets) {
+ return $this->charsets;
+ }
+ return $this->charsets = $this->splitHttpAcceptHeader($this->headers->get('Accept-Charset'));
+ }
+ public function getAcceptableContentTypes()
+ {
+ if (null !== $this->acceptableContentTypes) {
+ return $this->acceptableContentTypes;
+ }
+ return $this->acceptableContentTypes = $this->splitHttpAcceptHeader($this->headers->get('Accept'));
+ }
+ public function isXmlHttpRequest()
+ {
+ return 'XMLHttpRequest' == $this->headers->get('X-Requested-With');
+ }
+ public function splitHttpAcceptHeader($header)
+ {
+ if (!$header) {
+ return array();
+ }
+ $values = array();
+ foreach (array_filter(explode(',', $header)) as $value) {
+ if ($pos = strpos($value, ';')) {
+ $q = (float) trim(substr($value, strpos($value, '=') + 1));
+ $value = trim(substr($value, 0, $pos));
+ } else {
+ $q = 1;
+ }
+ if (0 < $q) {
+ $values[trim($value)] = $q;
+ }
+ }
+ arsort($values);
+ return array_keys($values);
+ }
+ protected function prepareRequestUri()
+ {
+ $requestUri = '';
+ if ($this->headers->has('X_REWRITE_URL')) {
+ $requestUri = $this->headers->get('X_REWRITE_URL');
+ } elseif ($this->server->get('IIS_WasUrlRewritten') == '1' && $this->server->get('UNENCODED_URL') != '') {
+ $requestUri = $this->server->get('UNENCODED_URL');
+ } elseif ($this->server->has('REQUEST_URI')) {
+ $requestUri = $this->server->get('REQUEST_URI');
+ $schemeAndHttpHost = $this->getScheme().'://'.$this->getHttpHost();
+ if (strpos($requestUri, $schemeAndHttpHost) === 0) {
+ $requestUri = substr($requestUri, strlen($schemeAndHttpHost));
+ }
+ } elseif ($this->server->has('ORIG_PATH_INFO')) {
+ $requestUri = $this->server->get('ORIG_PATH_INFO');
+ if ($this->server->get('QUERY_STRING')) {
+ $requestUri .= '?'.$this->server->get('QUERY_STRING');
+ }
+ }
+ return $requestUri;
+ }
+ protected function prepareBaseUrl()
+ {
+ $filename = basename($this->server->get('SCRIPT_FILENAME'));
+ if (basename($this->server->get('SCRIPT_NAME')) === $filename) {
+ $baseUrl = $this->server->get('SCRIPT_NAME');
+ } elseif (basename($this->server->get('PHP_SELF')) === $filename) {
+ $baseUrl = $this->server->get('PHP_SELF');
+ } elseif (basename($this->server->get('ORIG_SCRIPT_NAME')) === $filename) {
+ $baseUrl = $this->server->get('ORIG_SCRIPT_NAME'); } else {
+ $path = $this->server->get('PHP_SELF', '');
+ $file = $this->server->get('SCRIPT_FILENAME', '');
+ $segs = explode('/', trim($file, '/'));
+ $segs = array_reverse($segs);
+ $index = 0;
+ $last = count($segs);
+ $baseUrl = '';
+ do {
+ $seg = $segs[$index];
+ $baseUrl = '/'.$seg.$baseUrl;
+ ++$index;
+ } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos));
+ }
+ $requestUri = $this->getRequestUri();
+ if ($baseUrl && 0 === strpos($requestUri, $baseUrl)) {
+ return $baseUrl;
+ }
+ if ($baseUrl && 0 === strpos($requestUri, dirname($baseUrl))) {
+ return rtrim(dirname($baseUrl), '/');
+ }
+ $truncatedRequestUri = $requestUri;
+ if (($pos = strpos($requestUri, '?')) !== false) {
+ $truncatedRequestUri = substr($requestUri, 0, $pos);
+ }
+ $basename = basename($baseUrl);
+ if (empty($basename) || !strpos($truncatedRequestUri, $basename)) {
+ return '';
+ }
+ if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) {
+ $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
+ }
+ return rtrim($baseUrl, '/');
+ }
+ protected function prepareBasePath()
+ {
+ $filename = basename($this->server->get('SCRIPT_FILENAME'));
+ $baseUrl = $this->getBaseUrl();
+ if (empty($baseUrl)) {
+ return '';
+ }
+ if (basename($baseUrl) === $filename) {
+ $basePath = dirname($baseUrl);
+ } else {
+ $basePath = $baseUrl;
+ }
+ if ('\\' === DIRECTORY_SEPARATOR) {
+ $basePath = str_replace('\\', '/', $basePath);
+ }
+ return rtrim($basePath, '/');
+ }
+ protected function preparePathInfo()
+ {
+ $baseUrl = $this->getBaseUrl();
+ if (null === ($requestUri = $this->getRequestUri())) {
+ return '';
+ }
+ $pathInfo = '';
+ if ($pos = strpos($requestUri, '?')) {
+ $requestUri = substr($requestUri, 0, $pos);
+ }
+ if ((null !== $baseUrl) && (false === ($pathInfo = substr($requestUri, strlen($baseUrl))))) {
+ return '';
+ } elseif (null === $baseUrl) {
+ return $requestUri;
+ }
+ return (string) $pathInfo;
+ }
+ static protected function initializeFormats()
+ {
+ static::$formats = array(
+ 'txt' => array('text/plain'),
+ 'js' => array('application/javascript', 'application/x-javascript', 'text/javascript'),
+ 'css' => array('text/css'),
+ 'json' => array('application/json', 'application/x-json'),
+ 'xml' => array('text/xml', 'application/xml', 'application/x-xml'),
+ 'rdf' => array('application/rdf+xml'),
+ 'atom' => array('application/atom+xml'),
+ );
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ApacheRequest extends Request
+{
+ protected function prepareRequestUri()
+ {
+ return $this->server->get('REQUEST_URI');
+ }
+ protected function prepareBaseUrl()
+ {
+ $baseUrl = $this->server->get('SCRIPT_NAME');
+ if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
+ return rtrim(dirname($baseUrl), '/\\');
+ }
+ return $baseUrl;
+ }
+ protected function preparePathInfo()
+ {
+ return $this->server->get('PATH_INFO');
+ }
+}
+}
+namespace Symfony\Component\ClassLoader
+{
+class ClassCollectionLoader
+{
+ static private $loaded;
+ static public function load($classes, $cacheDir, $name, $autoReload, $adaptive = false, $extension = '.php')
+ {
+ if (isset(self::$loaded[$name])) {
+ return;
+ }
+ self::$loaded[$name] = true;
+ $classes = array_unique($classes);
+ if ($adaptive) {
+ $classes = array_diff($classes, get_declared_classes(), get_declared_interfaces());
+ $name = $name.'-'.substr(md5(implode('|', $classes)), 0, 5);
+ }
+ $cache = $cacheDir.'/'.$name.$extension;
+ $reload = false;
+ if ($autoReload) {
+ $metadata = $cacheDir.'/'.$name.$extension.'.meta';
+ if (!file_exists($metadata) || !file_exists($cache)) {
+ $reload = true;
+ } else {
+ $time = filemtime($cache);
+ $meta = unserialize(file_get_contents($metadata));
+ if ($meta[1] != $classes) {
+ $reload = true;
+ } else {
+ foreach ($meta[0] as $resource) {
+ if (!file_exists($resource) || filemtime($resource) > $time) {
+ $reload = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ if (!$reload && file_exists($cache)) {
+ require_once $cache;
+ return;
+ }
+ $files = array();
+ $content = '';
+ foreach ($classes as $class) {
+ if (!class_exists($class) && !interface_exists($class)) {
+ throw new \InvalidArgumentException(sprintf('Unable to load class "%s"', $class));
+ }
+ $r = new \ReflectionClass($class);
+ $files[] = $r->getFileName();
+ $c = preg_replace(array('/^\s*<\?php/', '/\?>\s*$/'), '', file_get_contents($r->getFileName()));
+ if (!$r->inNamespace()) {
+ $c = "\nnamespace\n{\n$c\n}\n";
+ } else {
+ $c = self::fixNamespaceDeclarations('<?php '.$c);
+ $c = preg_replace('/^\s*<\?php/', '', $c);
+ }
+ $content .= $c;
+ }
+ if (!is_dir(dirname($cache))) {
+ mkdir(dirname($cache), 0777, true);
+ }
+ self::writeCacheFile($cache, self::stripComments('<?php '.$content));
+ if ($autoReload) {
+ self::writeCacheFile($metadata, serialize(array($files, $classes)));
+ }
+ }
+ static public function fixNamespaceDeclarations($source)
+ {
+ if (!function_exists('token_get_all')) {
+ return $source;
+ }
+ $output = '';
+ $inNamespace = false;
+ $tokens = token_get_all($source);
+ while ($token = array_shift($tokens)) {
+ if (is_string($token)) {
+ $output .= $token;
+ } elseif (T_NAMESPACE === $token[0]) {
+ if ($inNamespace) {
+ $output .= "}\n";
+ }
+ $output .= $token[1];
+ while (($t = array_shift($tokens)) && is_array($t) && in_array($t[0], array(T_WHITESPACE, T_NS_SEPARATOR, T_STRING))) {
+ $output .= $t[1];
+ }
+ if (is_string($t) && '{' === $t) {
+ $inNamespace = false;
+ array_unshift($tokens, $t);
+ } else {
+ $output .= "\n{";
+ $inNamespace = true;
+ }
+ } else {
+ $output .= $token[1];
+ }
+ }
+ if ($inNamespace) {
+ $output .= "}\n";
+ }
+ return $output;
+ }
+ static private function writeCacheFile($file, $content)
+ {
+ $tmpFile = tempnam(dirname($file), basename($file));
+ if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $file)) {
+ chmod($file, 0644);
+ return;
+ }
+ throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $file));
+ }
+ static private function stripComments($source)
+ {
+ if (!function_exists('token_get_all')) {
+ return $source;
+ }
+ $output = '';
+ foreach (token_get_all($source) as $token) {
+ if (is_string($token)) {
+ $output .= $token;
+ } elseif (!in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
+ $output .= $token[1];
+ }
+ }
+ $output = preg_replace(array('/\s+$/Sm', '/\n+/S'), "\n", $output);
+ return $output;
+ }
+}
+}
+namespace Symfony\Component\ClassLoader
+{
+class UniversalClassLoader
+{
+ private $namespaces = array();
+ private $prefixes = array();
+ private $namespaceFallback = array();
+ private $prefixFallback = array();
+ public function getNamespaces()
+ {
+ return $this->namespaces;
+ }
+ public function getPrefixes()
+ {
+ return $this->prefixes;
+ }
+ public function getNamespaceFallback()
+ {
+ return $this->namespaceFallback;
+ }
+ public function getPrefixFallback()
+ {
+ return $this->prefixFallback;
+ }
+ public function registerNamespaceFallback($dirs)
+ {
+ $this->namespaceFallback = (array) $dirs;
+ }
+ public function registerPrefixFallback($dirs)
+ {
+ $this->prefixFallback = (array) $dirs;
+ }
+ public function registerNamespaces(array $namespaces)
+ {
+ foreach ($namespaces as $namespace => $locations) {
+ $this->namespaces[$namespace] = (array) $locations;
+ }
+ }
+ public function registerNamespace($namespace, $paths)
+ {
+ $this->namespaces[$namespace] = (array) $paths;
+ }
+ public function registerPrefixes(array $classes)
+ {
+ foreach ($classes as $prefix => $locations) {
+ $this->prefixes[$prefix] = (array) $locations;
+ }
+ }
+ public function registerPrefix($prefix, $paths)
+ {
+ $this->prefixes[$prefix] = (array) $paths;
+ }
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+ }
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ require $file;
+ }
+ }
+ public function findFile($class)
+ {
+ if ('\\' == $class[0]) {
+ $class = substr($class, 1);
+ }
+ if (false !== $pos = strrpos($class, '\\')) {
+ $namespace = substr($class, 0, $pos);
+ foreach ($this->namespaces as $ns => $dirs) {
+ foreach ($dirs as $dir) {
+ if (0 === strpos($namespace, $ns)) {
+ $className = substr($class, $pos + 1);
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('\\', DIRECTORY_SEPARATOR, $namespace).DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $className).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+ foreach ($this->namespaceFallback as $dir) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ } else {
+ foreach ($this->prefixes as $prefix => $dirs) {
+ foreach ($dirs as $dir) {
+ if (0 === strpos($class, $prefix)) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+ foreach ($this->prefixFallback as $dir) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+}
+}
+namespace Symfony\Component\ClassLoader
+{
+class MapFileClassLoader
+{
+ private $map = array();
+ public function __construct($file)
+ {
+ $this->map = require $file;
+ }
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+ }
+ public function loadClass($class)
+ {
+ if ('\\' === $class[0]) {
+ $class = substr($class, 1);
+ }
+ if (isset($this->map[$class])) {
+ require $this->map[$class];
+ }
+ }
+ public function findFile($class)
+ {
+ if ('\\' === $class[0]) {
+ $class = substr($class, 1);
+ }
+ if (isset($this->map[$class])) {
+ return $this->map[$class];
+ }
+ }
+}
+}
+namespace Symfony\Component\Config
+{
+class ConfigCache
+{
+ private $debug;
+ private $file;
+ public function __construct($file, $debug)
+ {
+ $this->file = $file;
+ $this->debug = (Boolean) $debug;
+ }
+ public function __toString()
+ {
+ return $this->file;
+ }
+ public function isFresh()
+ {
+ if (!file_exists($this->file)) {
+ return false;
+ }
+ if (!$this->debug) {
+ return true;
+ }
+ $metadata = $this->file.'.meta';
+ if (!file_exists($metadata)) {
+ return false;
+ }
+ $time = filemtime($this->file);
+ $meta = unserialize(file_get_contents($metadata));
+ foreach ($meta as $resource) {
+ if (!$resource->isFresh($time)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ public function write($content, array $metadata = null)
+ {
+ $dir = dirname($this->file);
+ if (!is_dir($dir)) {
+ if (false === @mkdir($dir, 0777, true)) {
+ throw new \RuntimeException(sprintf('Unable to create the %s directory', $dir));
+ }
+ } elseif (!is_writable($dir)) {
+ throw new \RuntimeException(sprintf('Unable to write in the %s directory', $dir));
+ }
+ $tmpFile = tempnam(dirname($this->file), basename($this->file));
+ if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $this->file)) {
+ chmod($this->file, 0666);
+ } else {
+ throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $this->file));
+ }
+ if (null !== $metadata && true === $this->debug) {
+ $file = $this->file.'.meta';
+ $tmpFile = tempnam(dirname($file), basename($file));
+ if (false !== @file_put_contents($tmpFile, serialize($metadata)) && @rename($tmpFile, $file)) {
+ chmod($file, 0666);
+ }
+ }
+ }
+}
+}
=== added file 'app/bootstrap_cache.php.cache'
--- app/bootstrap_cache.php.cache 1970-01-01 00:00:00 +0000
+++ app/bootstrap_cache.php.cache 2011-04-24 02:44:25 +0000
@@ -0,0 +1,2518 @@
+<?php
+
+namespace { require_once __DIR__.'/autoload.php'; }
+
+
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Bundle\BundleInterface;
+use Symfony\Component\Config\Loader\LoaderInterface;
+interface KernelInterface extends HttpKernelInterface, \Serializable
+{
+ function registerBundles();
+ function registerContainerConfiguration(LoaderInterface $loader);
+ function boot();
+ function shutdown();
+ function getBundles();
+ function isClassInActiveBundle($class);
+ function getBundle($name, $first = true);
+ function locateResource($name, $dir = null, $first = true);
+ function getName();
+ function getEnvironment();
+ function isDebug();
+ function getRootDir();
+ function getContainer();
+ function getStartTime();
+ function getCacheDir();
+ function getLogDir();
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
+use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
+use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
+use Symfony\Component\DependencyInjection\Loader\IniFileLoader;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+use Symfony\Component\DependencyInjection\Loader\ClosureLoader;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Bundle\BundleInterface;
+use Symfony\Component\HttpKernel\Config\FileLocator;
+use Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass;
+use Symfony\Component\Config\Loader\LoaderResolver;
+use Symfony\Component\Config\Loader\DelegatingLoader;
+use Symfony\Component\Config\ConfigCache;
+abstract class Kernel implements KernelInterface
+{
+ protected $bundles;
+ protected $bundleMap;
+ protected $container;
+ protected $rootDir;
+ protected $environment;
+ protected $debug;
+ protected $booted;
+ protected $name;
+ protected $startTime;
+ const VERSION = '2.0.0-DEV';
+ public function __construct($environment, $debug)
+ {
+ $this->environment = $environment;
+ $this->debug = (Boolean) $debug;
+ $this->booted = false;
+ $this->rootDir = $this->getRootDir();
+ $this->name = preg_replace('/[^a-zA-Z0-9_]+/', '', basename($this->rootDir));
+ if ($this->debug) {
+ ini_set('display_errors', 1);
+ error_reporting(-1);
+ $this->startTime = microtime(true);
+ } else {
+ ini_set('display_errors', 0);
+ }
+ }
+ public function __clone()
+ {
+ if ($this->debug) {
+ $this->startTime = microtime(true);
+ }
+ $this->booted = false;
+ $this->container = null;
+ }
+ public function boot()
+ {
+ if (true === $this->booted) {
+ return;
+ }
+ $this->initializeBundles();
+ $this->initializeContainer();
+ foreach ($this->getBundles() as $bundle) {
+ $bundle->setContainer($this->container);
+ $bundle->boot();
+ }
+ $this->booted = true;
+ }
+ public function shutdown()
+ {
+ $this->booted = false;
+ foreach ($this->getBundles() as $bundle) {
+ $bundle->shutdown();
+ $bundle->setContainer(null);
+ }
+ $this->container = null;
+ }
+ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
+ {
+ if (false === $this->booted) {
+ $this->boot();
+ }
+ return $this->getHttpKernel()->handle($request, $type, $catch);
+ }
+ protected function getHttpKernel()
+ {
+ return $this->container->get('http_kernel');
+ }
+ public function getBundles()
+ {
+ return $this->bundles;
+ }
+ public function isClassInActiveBundle($class)
+ {
+ foreach ($this->getBundles() as $bundle) {
+ if (0 === strpos($class, $bundle->getNamespace())) {
+ return true;
+ }
+ }
+ return false;
+ }
+ public function getBundle($name, $first = true)
+ {
+ if (!isset($this->bundleMap[$name])) {
+ throw new \InvalidArgumentException(sprintf('Bundle "%s" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() function of your %s.php file?', $name, get_class($this)));
+ }
+ if (true === $first) {
+ return $this->bundleMap[$name][0];
+ } elseif (false === $first) {
+ return $this->bundleMap[$name];
+ }
+ }
+ public function locateResource($name, $dir = null, $first = true)
+ {
+ if ('@' !== $name[0]) {
+ throw new \InvalidArgumentException(sprintf('A resource name must start with @ ("%s" given).', $name));
+ }
+ if (false !== strpos($name, '..')) {
+ throw new \RuntimeException(sprintf('File name "%s" contains invalid characters (..).', $name));
+ }
+ $name = substr($name, 1);
+ list($bundleName, $path) = explode('/', $name, 2);
+ $isResource = 0 === strpos($path, 'Resources') && null !== $dir;
+ $overridePath = substr($path, 9);
+ $resourceBundle = null;
+ $bundles = $this->getBundle($bundleName, false);
+ $files = array();
+ foreach ($bundles as $bundle) {
+ if ($isResource && file_exists($file = $dir.'/'.$bundle->getName().$overridePath)) {
+ if (null !== $resourceBundle) {
+ throw new \RuntimeException(sprintf('"%s" resource is hidden by a resource from the "%s" derived bundle. Create a "%s" file to override the bundle resource.',
+ $file,
+ $resourceBundle,
+ $dir.'/'.$bundles[0]->getName().$overridePath
+ ));
+ }
+ if ($first) {
+ return $file;
+ }
+ $files[] = $file;
+ }
+ if (file_exists($file = $bundle->getPath().'/'.$path)) {
+ if ($first && !$isResource) {
+ return $file;
+ }
+ $files[] = $file;
+ $resourceBundle = $bundle->getName();
+ }
+ }
+ if (count($files) > 0) {
+ return $first && $isResource ? $files[0] : $files;
+ }
+ throw new \InvalidArgumentException(sprintf('Unable to find file "@%s".', $name));
+ }
+ public function getName()
+ {
+ return $this->name;
+ }
+ public function getEnvironment()
+ {
+ return $this->environment;
+ }
+ public function isDebug()
+ {
+ return $this->debug;
+ }
+ public function getRootDir()
+ {
+ if (null === $this->rootDir) {
+ $r = new \ReflectionObject($this);
+ $this->rootDir = dirname($r->getFileName());
+ }
+ return $this->rootDir;
+ }
+ public function getContainer()
+ {
+ return $this->container;
+ }
+ public function getStartTime()
+ {
+ return $this->debug ? $this->startTime : -INF;
+ }
+ public function getCacheDir()
+ {
+ return $this->rootDir.'/cache/'.$this->environment;
+ }
+ public function getLogDir()
+ {
+ return $this->rootDir.'/logs';
+ }
+ protected function initializeBundles()
+ {
+ $this->bundles = array();
+ $topMostBundles = array();
+ $directChildren = array();
+ foreach ($this->registerBundles() as $bundle) {
+ $name = $bundle->getName();
+ if (isset($this->bundles[$name])) {
+ throw new \LogicException(sprintf('Trying to register two bundles with the same name "%s"', $name));
+ }
+ $this->bundles[$name] = $bundle;
+ if ($parentName = $bundle->getParent()) {
+ if (isset($directChildren[$parentName])) {
+ throw new \LogicException(sprintf('Bundle "%s" is directly extended by two bundles "%s" and "%s".', $parentName, $name, $directChildren[$parentName]));
+ }
+ if ($parentName == $name) {
+ throw new \LogicException(sprintf('Bundle "%s" can not extend itself.', $name));
+ }
+ $directChildren[$parentName] = $name;
+ } else {
+ $topMostBundles[$name] = $bundle;
+ }
+ }
+ if (count($diff = array_values(array_diff(array_keys($directChildren), array_keys($this->bundles))))) {
+ throw new \LogicException(sprintf('Bundle "%s" extends bundle "%s", which is not registered.', $directChildren[$diff[0]], $diff[0]));
+ }
+ $this->bundleMap = array();
+ foreach ($topMostBundles as $name => $bundle) {
+ $bundleMap = array($bundle);
+ $hierarchy = array($name);
+ while (isset($directChildren[$name])) {
+ $name = $directChildren[$name];
+ array_unshift($bundleMap, $this->bundles[$name]);
+ $hierarchy[] = $name;
+ }
+ foreach ($hierarchy as $bundle) {
+ $this->bundleMap[$bundle] = $bundleMap;
+ array_pop($bundleMap);
+ }
+ }
+ }
+ protected function getContainerClass()
+ {
+ return $this->name.ucfirst($this->environment).($this->debug ? 'Debug' : '').'ProjectContainer';
+ }
+ protected function initializeContainer()
+ {
+ $class = $this->getContainerClass();
+ $cache = new ConfigCache($this->getCacheDir().'/'.$class.'.php', $this->debug);
+ $fresh = true;
+ if (!$cache->isFresh()) {
+ $container = $this->buildContainer();
+ $this->dumpContainer($cache, $container, $class);
+ $fresh = false;
+ }
+ require_once $cache;
+ $this->container = new $class();
+ $this->container->set('kernel', $this);
+ if (!$fresh && 'cli' !== php_sapi_name()) {
+ $this->container->get('cache_warmer')->warmUp($this->container->getParameter('kernel.cache_dir'));
+ }
+ }
+ protected function getKernelParameters()
+ {
+ $bundles = array();
+ foreach ($this->bundles as $name => $bundle) {
+ $bundles[$name] = get_class($bundle);
+ }
+ return array_merge(
+ array(
+ 'kernel.root_dir' => $this->rootDir,
+ 'kernel.environment' => $this->environment,
+ 'kernel.debug' => $this->debug,
+ 'kernel.name' => $this->name,
+ 'kernel.cache_dir' => $this->getCacheDir(),
+ 'kernel.logs_dir' => $this->getLogDir(),
+ 'kernel.bundles' => $bundles,
+ 'kernel.charset' => 'UTF-8',
+ 'kernel.container_class' => $this->getContainerClass(),
+ ),
+ $this->getEnvParameters()
+ );
+ }
+ protected function getEnvParameters()
+ {
+ $parameters = array();
+ foreach ($_SERVER as $key => $value) {
+ if ('SYMFONY__' === substr($key, 0, 9)) {
+ $parameters[strtolower(str_replace('__', '.', substr($key, 9)))] = $value;
+ }
+ }
+ return $parameters;
+ }
+ protected function buildContainer()
+ {
+ $parameterBag = new ParameterBag($this->getKernelParameters());
+ $container = new ContainerBuilder($parameterBag);
+ $container->getCompilerPassConfig()->setMergePass(new MergeExtensionConfigurationPass());
+ foreach ($this->bundles as $bundle) {
+ $bundle->build($container);
+ if ($this->debug) {
+ $container->addObjectResource($bundle);
+ }
+ }
+ $container->addObjectResource($this);
+ if (null !== $cont = $this->registerContainerConfiguration($this->getContainerLoader($container))) {
+ $container->merge($cont);
+ }
+ foreach (array('cache', 'logs') as $name) {
+ $dir = $container->getParameter(sprintf('kernel.%s_dir', $name));
+ if (!is_dir($dir)) {
+ if (false === @mkdir($dir, 0777, true)) {
+ exit(sprintf("Unable to create the %s directory (%s)\n", $name, dirname($dir)));
+ }
+ } elseif (!is_writable($dir)) {
+ exit(sprintf("Unable to write in the %s directory (%s)\n", $name, $dir));
+ }
+ }
+ $container->compile();
+ return $container;
+ }
+ protected function dumpContainer(ConfigCache $cache, ContainerBuilder $container, $class)
+ {
+ $dumper = new PhpDumper($container);
+ $content = $dumper->dump(array('class' => $class));
+ if (!$this->debug) {
+ $content = self::stripComments($content);
+ }
+ $cache->write($content, $container->getResources());
+ }
+ protected function getContainerLoader(ContainerInterface $container)
+ {
+ $locator = new FileLocator($this);
+ $resolver = new LoaderResolver(array(
+ new XmlFileLoader($container, $locator),
+ new YamlFileLoader($container, $locator),
+ new IniFileLoader($container, $locator),
+ new PhpFileLoader($container, $locator),
+ new ClosureLoader($container, $locator),
+ ));
+ return new DelegatingLoader($resolver);
+ }
+ static public function stripComments($source)
+ {
+ if (!function_exists('token_get_all')) {
+ return $source;
+ }
+ $output = '';
+ foreach (token_get_all($source) as $token) {
+ if (is_string($token)) {
+ $output .= $token;
+ } elseif (!in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
+ $output .= $token[1];
+ }
+ }
+ $output = preg_replace(array('/\s+$/Sm', '/\n+/S'), "\n", $output);
+ return $output;
+ }
+ public function serialize()
+ {
+ return serialize(array($this->environment, $this->debug));
+ }
+ public function unserialize($data)
+ {
+ list($environment, $debug) = unserialize($data);
+ $this->__construct($environment, $debug);
+ }
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\HttpFoundation\Request;
+interface HttpKernelInterface
+{
+ const MASTER_REQUEST = 1;
+ const SUB_REQUEST = 2;
+ function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true);
+}
+}
+namespace Symfony\Component\HttpKernel\HttpCache
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+class HttpCache implements HttpKernelInterface
+{
+ private $kernel;
+ private $store;
+ private $request;
+ private $esi;
+ private $esiCacheStrategy;
+ private $traces;
+ public function __construct(HttpKernelInterface $kernel, StoreInterface $store, Esi $esi = null, array $options = array())
+ {
+ $this->store = $store;
+ $this->kernel = $kernel;
+ register_shutdown_function(array($this->store, 'cleanup'));
+ $this->options = array_merge(array(
+ 'debug' => false,
+ 'default_ttl' => 0,
+ 'private_headers' => array('Authorization', 'Cookie'),
+ 'allow_reload' => false,
+ 'allow_revalidate' => false,
+ 'stale_while_revalidate' => 2,
+ 'stale_if_error' => 60,
+ ), $options);
+ $this->esi = $esi;
+ }
+ public function getTraces()
+ {
+ return $this->traces;
+ }
+ public function getLog()
+ {
+ $log = array();
+ foreach ($this->traces as $request => $traces) {
+ $log[] = sprintf('%s: %s', $request, implode(', ', $traces));
+ }
+ return implode('; ', $log);
+ }
+ public function getRequest()
+ {
+ return $this->request;
+ }
+ public function getKernel()
+ {
+ return $this->kernel;
+ }
+ public function getEsi()
+ {
+ return $this->esi;
+ }
+ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
+ {
+ if (HttpKernelInterface::MASTER_REQUEST === $type) {
+ $this->traces = array();
+ $this->request = $request;
+ if (null !== $this->esi) {
+ $this->esiCacheStrategy = $this->esi->createCacheStrategy();
+ }
+ }
+ $path = $request->getPathInfo();
+ if ($qs = $request->getQueryString()) {
+ $path .= '?'.$qs;
+ }
+ $this->traces[$request->getMethod().' '.$path] = array();
+ if (!$request->isMethodSafe()) {
+ $response = $this->invalidate($request, $catch);
+ } elseif ($request->headers->has('expect')) {
+ $response = $this->pass($request, $catch);
+ } else {
+ $response = $this->lookup($request, $catch);
+ }
+ $response->isNotModified($request);
+ $this->restoreResponseBody($request, $response);
+ if (HttpKernelInterface::MASTER_REQUEST === $type && $this->options['debug']) {
+ $response->headers->set('X-Symfony-Cache', $this->getLog());
+ }
+ if (null !== $this->esi) {
+ $this->esiCacheStrategy->add($response);
+ if (HttpKernelInterface::MASTER_REQUEST === $type) {
+ $this->esiCacheStrategy->update($response);
+ }
+ }
+ return $response;
+ }
+ protected function pass(Request $request, $catch = false)
+ {
+ $this->record($request, 'pass');
+ return $this->forward($request, $catch);
+ }
+ protected function invalidate(Request $request, $catch = false)
+ {
+ $response = $this->pass($request, $catch);
+ if ($response->isSuccessful() || $response->isRedirect()) {
+ try {
+ $this->store->invalidate($request, $catch);
+ $this->record($request, 'invalidate');
+ } catch (\Exception $e) {
+ $this->record($request, 'invalidate-failed');
+ if ($this->options['debug']) {
+ throw $e;
+ }
+ }
+ }
+ return $response;
+ }
+ protected function lookup(Request $request, $catch = false)
+ {
+ if ($this->options['allow_reload'] && $request->isNoCache()) {
+ $this->record($request, 'reload');
+ return $this->fetch($request);
+ }
+ try {
+ $entry = $this->store->lookup($request);
+ } catch (\Exception $e) {
+ $this->record($request, 'lookup-failed');
+ if ($this->options['debug']) {
+ throw $e;
+ }
+ return $this->pass($request, $catch);
+ }
+ if (null === $entry) {
+ $this->record($request, 'miss');
+ return $this->fetch($request, $catch);
+ }
+ if (!$this->isFreshEnough($request, $entry)) {
+ $this->record($request, 'stale');
+ return $this->validate($request, $entry);
+ }
+ $this->record($request, 'fresh');
+ $entry->headers->set('Age', $entry->getAge());
+ return $entry;
+ }
+ protected function validate(Request $request, Response $entry)
+ {
+ $subRequest = clone $request;
+ $subRequest->setMethod('get');
+ $subRequest->headers->set('if_modified_since', $entry->headers->get('Last-Modified'));
+ $cachedEtags = array($entry->getEtag());
+ $requestEtags = $request->getEtags();
+ $etags = array_unique(array_merge($cachedEtags, $requestEtags));
+ $subRequest->headers->set('if_none_match', $etags ? implode(', ', $etags) : '');
+ $response = $this->forward($subRequest, false, $entry);
+ if (304 == $response->getStatusCode()) {
+ $this->record($request, 'valid');
+ $etag = $response->getEtag();
+ if ($etag && in_array($etag, $requestEtags) && !in_array($etag, $cachedEtags)) {
+ return $response;
+ }
+ $entry = clone $entry;
+ $entry->headers->remove('Date');
+ foreach (array('Date', 'Expires', 'Cache-Control', 'ETag', 'Last-Modified') as $name) {
+ if ($response->headers->has($name)) {
+ $entry->headers->set($name, $response->headers->get($name));
+ }
+ }
+ $response = $entry;
+ } else {
+ $this->record($request, 'invalid');
+ }
+ if ($response->isCacheable()) {
+ $this->store($request, $response);
+ }
+ return $response;
+ }
+ protected function fetch(Request $request, $catch = false)
+ {
+ $subRequest = clone $request;
+ $subRequest->setMethod('get');
+ $subRequest->headers->remove('if_modified_since');
+ $subRequest->headers->remove('if_none_match');
+ $response = $this->forward($subRequest, $catch);
+ if ($this->isPrivateRequest($request) && !$response->headers->hasCacheControlDirective('public')) {
+ $response->setPrivate(true);
+ } elseif ($this->options['default_ttl'] > 0 && null === $response->getTtl() && !$response->headers->getCacheControlDirective('must-revalidate')) {
+ $response->setTtl($this->options['default_ttl']);
+ }
+ if ($response->isCacheable()) {
+ $this->store($request, $response);
+ }
+ return $response;
+ }
+ protected function forward(Request $request, $catch = false, Response $entry = null)
+ {
+ if ($this->esi) {
+ $this->esi->addSurrogateEsiCapability($request);
+ }
+ $response = $this->kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, $catch);
+ if (null !== $entry && in_array($response->getStatusCode(), array(500, 502, 503, 504))) {
+ if (null === $age = $entry->headers->getCacheControlDirective('stale-if-error')) {
+ $age = $this->options['stale_if_error'];
+ }
+ if (abs($entry->getTtl()) < $age) {
+ $this->record($request, 'stale-if-error');
+ return $entry;
+ }
+ }
+ $this->processResponseBody($request, $response);
+ return $response;
+ }
+ protected function isFreshEnough(Request $request, Response $entry)
+ {
+ if (!$entry->isFresh()) {
+ return $this->lock($request, $entry);
+ }
+ if ($this->options['allow_revalidate'] && null !== $maxAge = $request->headers->getCacheControlDirective('max-age')) {
+ return $maxAge > 0 && $maxAge >= $entry->getAge();
+ }
+ return true;
+ }
+ protected function lock(Request $request, Response $entry)
+ {
+ $lock = $this->store->lock($request, $entry);
+ if (true !== $lock) {
+ if (null === $age = $entry->headers->getCacheControlDirective('stale-while-revalidate')) {
+ $age = $this->options['stale_while_revalidate'];
+ }
+ if (abs($entry->getTtl()) < $age) {
+ $this->record($request, 'stale-while-revalidate');
+ return true;
+ }
+ $wait = 0;
+ while (file_exists($lock) && $wait < 5000000) {
+ usleep($wait += 50000);
+ }
+ if ($wait < 2000000) {
+ $new = $this->lookup($request);
+ $entry->headers = $new->headers;
+ $entry->setContent($new->getContent());
+ $entry->setStatusCode($new->getStatusCode());
+ $entry->setProtocolVersion($new->getProtocolVersion());
+ $entry->setCookies($new->getCookies());
+ } else {
+ $entry->setStatusCode(503);
+ $entry->setContent('503 Service Unavailable');
+ $entry->headers->set('Retry-After', 10);
+ }
+ return true;
+ }
+ return false;
+ }
+ protected function store(Request $request, Response $response)
+ {
+ try {
+ $this->store->write($request, $response);
+ $this->record($request, 'store');
+ $response->headers->set('Age', $response->getAge());
+ } catch (\Exception $e) {
+ $this->record($request, 'store-failed');
+ if ($this->options['debug']) {
+ throw $e;
+ }
+ }
+ $this->store->unlock($request);
+ }
+ private function restoreResponseBody(Request $request, Response $response)
+ {
+ if ('head' === strtolower($request->getMethod())) {
+ $response->setContent('');
+ $response->headers->remove('X-Body-Eval');
+ $response->headers->remove('X-Body-File');
+ return;
+ }
+ if ($response->headers->has('X-Body-Eval')) {
+ ob_start();
+ if ($response->headers->has('X-Body-File')) {
+ include $response->headers->get('X-Body-File');
+ } else {
+ eval('; ?>'.$response->getContent().'<?php ;');
+ }
+ $response->setContent(ob_get_clean());
+ $response->headers->remove('X-Body-Eval');
+ } elseif ($response->headers->has('X-Body-File')) {
+ $response->setContent(file_get_contents($response->headers->get('X-Body-File')));
+ } else {
+ return;
+ }
+ $response->headers->remove('X-Body-File');
+ if (!$response->headers->has('Transfer-Encoding')) {
+ $response->headers->set('Content-Length', strlen($response->getContent()));
+ }
+ }
+ protected function processResponseBody(Request $request, Response $response)
+ {
+ if (null !== $this->esi && $this->esi->needsEsiParsing($response)) {
+ $this->esi->process($request, $response);
+ }
+ }
+ private function isPrivateRequest(Request $request)
+ {
+ foreach ($this->options['private_headers'] as $key) {
+ $key = strtolower(str_replace('HTTP_', '', $key));
+ if ('cookie' === $key) {
+ if (count($request->cookies->all())) {
+ return true;
+ }
+ } elseif ($request->headers->has($key)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ private function record(Request $request, $event)
+ {
+ $path = $request->getPathInfo();
+ if ($qs = $request->getQueryString()) {
+ $path .= '?'.$qs;
+ }
+ $this->traces[$request->getMethod().' '.$path][] = $event;
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\HttpCache
+{
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\HeaderBag;
+interface StoreInterface
+{
+ function lookup(Request $request);
+ function write(Request $request, Response $response);
+ function invalidate(Request $request);
+ function lock(Request $request);
+ function unlock(Request $request);
+ function purge($url);
+ function cleanup();
+}
+}
+namespace Symfony\Component\HttpKernel\HttpCache
+{
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\HeaderBag;
+class Store implements StoreInterface
+{
+ private $root;
+ private $keyCache;
+ private $locks;
+ public function __construct($root)
+ {
+ $this->root = $root;
+ if (!is_dir($this->root)) {
+ mkdir($this->root, 0777, true);
+ }
+ $this->keyCache = new \SplObjectStorage();
+ $this->locks = array();
+ }
+ public function cleanup()
+ {
+ foreach ($this->locks as $lock) {
+ @unlink($lock);
+ }
+ $error = error_get_last();
+ if (1 === $error['type'] && false === headers_sent()) {
+ header('HTTP/1.0 503 Service Unavailable');
+ header('Retry-After: 10');
+ echo '503 Service Unavailable';
+ }
+ }
+ public function lock(Request $request)
+ {
+ if (false !== $lock = @fopen($path = $this->getPath($this->getCacheKey($request).'.lck'), 'x')) {
+ fclose($lock);
+ $this->locks[] = $path;
+ return true;
+ }
+ return $path;
+ }
+ public function unlock(Request $request)
+ {
+ return @unlink($this->getPath($this->getCacheKey($request).'.lck'));
+ }
+ public function lookup(Request $request)
+ {
+ $key = $this->getCacheKey($request);
+ if (!$entries = $this->getMetadata($key)) {
+ return null;
+ }
+ $match = null;
+ foreach ($entries as $entry) {
+ if ($this->requestsMatch(isset($entry[1]['vary']) ? $entry[1]['vary'][0] : '', $request->headers->all(), $entry[0])) {
+ $match = $entry;
+ break;
+ }
+ }
+ if (null === $match) {
+ return null;
+ }
+ list($req, $headers) = $match;
+ if (file_exists($body = $this->getPath($headers['x-content-digest'][0]))) {
+ return $this->restoreResponse($headers, $body);
+ }
+ return null;
+ }
+ public function write(Request $request, Response $response)
+ {
+ $key = $this->getCacheKey($request);
+ $storedEnv = $this->persistRequest($request);
+ if (!$response->headers->has('X-Content-Digest')) {
+ $digest = 'en'.sha1($response->getContent());
+ if (false === $this->save($digest, $response->getContent())) {
+ throw new \RuntimeException('Unable to store the entity.');
+ }
+ $response->headers->set('X-Content-Digest', $digest);
+ if (!$response->headers->has('Transfer-Encoding')) {
+ $response->headers->set('Content-Length', strlen($response->getContent()));
+ }
+ }
+ $entries = array();
+ $vary = $response->headers->get('vary');
+ foreach ($this->getMetadata($key) as $entry) {
+ if (!isset($entry[1]['vary'])) {
+ $entry[1]['vary'] = array('');
+ }
+ if ($vary != $entry[1]['vary'][0] || !$this->requestsMatch($vary, $entry[0], $storedEnv)) {
+ $entries[] = $entry;
+ }
+ }
+ $headers = $this->persistResponse($response);
+ unset($headers['age']);
+ array_unshift($entries, array($storedEnv, $headers));
+ if (false === $this->save($key, serialize($entries))) {
+ throw new \RuntimeException('Unable to store the metadata.');
+ }
+ return $key;
+ }
+ public function invalidate(Request $request)
+ {
+ $modified = false;
+ $key = $this->getCacheKey($request);
+ $entries = array();
+ foreach ($this->getMetadata($key) as $entry) {
+ $response = $this->restoreResponse($entry[1]);
+ if ($response->isFresh()) {
+ $response->expire();
+ $modified = true;
+ $entries[] = array($entry[0], $this->persistResponse($response));
+ } else {
+ $entries[] = $entry;
+ }
+ }
+ if ($modified) {
+ if (false === $this->save($key, serialize($entries))) {
+ throw new \RuntimeException('Unable to store the metadata.');
+ }
+ }
+ foreach (array('Location', 'Content-Location') as $header) {
+ if ($uri = $request->headers->get($header)) {
+ $subRequest = Request::create($uri, 'get', array(), array(), array(), $request->server->all());
+ $this->invalidate($subRequest);
+ }
+ }
+ }
+ private function requestsMatch($vary, $env1, $env2)
+ {
+ if (empty($vary)) {
+ return true;
+ }
+ foreach (preg_split('/[\s,]+/', $vary) as $header) {
+ $key = strtr(strtolower($header), '_', '-');
+ $v1 = isset($env1[$key]) ? $env1[$key] : null;
+ $v2 = isset($env2[$key]) ? $env2[$key] : null;
+ if ($v1 !== $v2) {
+ return false;
+ }
+ }
+ return true;
+ }
+ private function getMetadata($key)
+ {
+ if (false === $entries = $this->load($key)) {
+ return array();
+ }
+ return unserialize($entries);
+ }
+ public function purge($url)
+ {
+ if (file_exists($path = $this->getPath($this->getCacheKey(Request::create($url))))) {
+ unlink($path);
+ return true;
+ }
+ return false;
+ }
+ private function load($key)
+ {
+ $path = $this->getPath($key);
+ return file_exists($path) ? file_get_contents($path) : false;
+ }
+ private function save($key, $data)
+ {
+ $path = $this->getPath($key);
+ if (!is_dir(dirname($path)) && false === @mkdir(dirname($path), 0777, true)) {
+ return false;
+ }
+ $tmpFile = tempnam(dirname($path), basename($path));
+ if (false === $fp = @fopen($tmpFile, 'wb')) {
+ return false;
+ }
+ @fwrite($fp, $data);
+ @fclose($fp);
+ if ($data != file_get_contents($tmpFile)) {
+ return false;
+ }
+ if (false === @rename($tmpFile, $path)) {
+ return false;
+ }
+ chmod($path, 0644);
+ }
+ public function getPath($key)
+ {
+ return $this->root.DIRECTORY_SEPARATOR.substr($key, 0, 2).DIRECTORY_SEPARATOR.substr($key, 2, 2).DIRECTORY_SEPARATOR.substr($key, 4, 2).DIRECTORY_SEPARATOR.substr($key, 6);
+ }
+ private function getCacheKey(Request $request)
+ {
+ if (isset($this->keyCache[$request])) {
+ return $this->keyCache[$request];
+ }
+ return $this->keyCache[$request] = 'md'.sha1($request->getUri());
+ }
+ private function persistRequest(Request $request)
+ {
+ return $request->headers->all();
+ }
+ private function persistResponse(Response $response)
+ {
+ $headers = $response->headers->all();
+ $headers['X-Status'] = array($response->getStatusCode());
+ return $headers;
+ }
+ private function restoreResponse($headers, $body = null)
+ {
+ $status = $headers['X-Status'][0];
+ unset($headers['X-Status']);
+ if (null !== $body) {
+ $headers['X-Body-File'] = array($body);
+ }
+ return new Response($body, $status, $headers);
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\HttpCache
+{
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+class Esi
+{
+ private $contentTypes;
+ public function __construct(array $contentTypes = array('text/html', 'text/xml', 'application/xml'))
+ {
+ $this->contentTypes = $contentTypes;
+ }
+ public function createCacheStrategy()
+ {
+ return new EsiResponseCacheStrategy();
+ }
+ public function hasSurrogateEsiCapability(Request $request)
+ {
+ if (null === $value = $request->headers->get('Surrogate-Capability')) {
+ return false;
+ }
+ return (Boolean) preg_match('#ESI/1.0#', $value);
+ }
+ public function addSurrogateEsiCapability(Request $request)
+ {
+ $current = $request->headers->get('Surrogate-Capability');
+ $new = 'symfony2="ESI/1.0"';
+ $request->headers->set('Surrogate-Capability', $current ? $current.', '.$new : $new);
+ }
+ public function addSurrogateControl(Response $response)
+ {
+ if (false !== strpos($response->getContent(), '<esi:include')) {
+ $response->headers->set('Surrogate-Control', 'content="ESI/1.0"');
+ }
+ }
+ public function needsEsiParsing(Response $response)
+ {
+ if (!$control = $response->headers->get('Surrogate-Control')) {
+ return false;
+ }
+ return (Boolean) preg_match('#content="[^"]*ESI/1.0[^"]*"#', $control);
+ }
+ public function renderIncludeTag($uri, $alt = null, $ignoreErrors = true, $comment = '')
+ {
+ $html = sprintf('<esi:include src="%s"%s%s />',
+ $uri,
+ $ignoreErrors ? ' onerror="continue"' : '',
+ $alt ? sprintf(' alt="%s"', $alt) : ''
+ );
+ if (!empty($comment)) {
+ return sprintf("<esi:comment text=\"%s\" />\n%s", $comment, $html);
+ }
+ return $html;
+ }
+ public function process(Request $request, Response $response)
+ {
+ $this->request = $request;
+ $type = $response->headers->get('Content-Type');
+ if (empty($type)) {
+ $type = 'text/html';
+ }
+ $parts = explode(';', $type);
+ if (!in_array($parts[0], $this->contentTypes)) {
+ return $response;
+ }
+ $content = $response->getContent();
+ $content = preg_replace_callback('#<esi\:include\s+(.*?)\s*/>#', array($this, 'handleEsiIncludeTag'), $content);
+ $content = preg_replace('#<esi\:comment[^>]*/>#', '', $content);
+ $content = preg_replace('#<esi\:remove>.*?</esi\:remove>#', '', $content);
+ $response->setContent($content);
+ $response->headers->set('X-Body-Eval', 'ESI');
+ if ($response->headers->has('Surrogate-Control')) {
+ $value = $response->headers->get('Surrogate-Control');
+ if ('content="ESI/1.0"' == $value) {
+ $response->headers->remove('Surrogate-Control');
+ } elseif (preg_match('#,\s*content="ESI/1.0"#', $value)) {
+ $response->headers->set('Surrogate-Control', preg_replace('#,\s*content="ESI/1.0"#', '', $value));
+ } elseif (preg_match('#content="ESI/1.0",\s*#', $value)) {
+ $response->headers->set('Surrogate-Control', preg_replace('#content="ESI/1.0",\s*#', '', $value));
+ }
+ }
+ }
+ public function handle(HttpCache $cache, $uri, $alt, $ignoreErrors)
+ {
+ $subRequest = Request::create($uri, 'get', array(), $cache->getRequest()->cookies->all(), array(), $cache->getRequest()->server->all());
+ try {
+ $response = $cache->handle($subRequest, HttpKernelInterface::SUB_REQUEST, true);
+ if (!$response->isSuccessful()) {
+ throw new \RuntimeException(sprintf('Error when rendering "%s" (Status code is %s).', $subRequest->getUri(), $response->getStatusCode()));
+ }
+ return $response->getContent();
+ } catch (\Exception $e) {
+ if ($alt) {
+ return $this->handle($cache, $alt, '', $ignoreErrors);
+ }
+ if (!$ignoreErrors) {
+ throw $e;
+ }
+ }
+ }
+ private function handleEsiIncludeTag($attributes)
+ {
+ $options = array();
+ preg_match_all('/(src|onerror|alt)="([^"]*?)"/', $attributes[1], $matches, PREG_SET_ORDER);
+ foreach ($matches as $set) {
+ $options[$set[1]] = $set[2];
+ }
+ if (!isset($options['src'])) {
+ throw new \RuntimeException('Unable to process an ESI tag without a "src" attribute.');
+ }
+ return sprintf('<?php echo $this->esi->handle($this, \'%s\', \'%s\', %s) ?>'."\n",
+ $options['src'],
+ isset($options['alt']) ? $options['alt'] : null,
+ isset($options['onerror']) && 'continue' == $options['onerror'] ? 'true' : 'false'
+ );
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ParameterBag
+{
+ protected $parameters;
+ public function __construct(array $parameters = array())
+ {
+ $this->parameters = $parameters;
+ }
+ public function all()
+ {
+ return $this->parameters;
+ }
+ public function keys()
+ {
+ return array_keys($this->parameters);
+ }
+ public function replace(array $parameters = array())
+ {
+ $this->parameters = $parameters;
+ }
+ public function add(array $parameters = array())
+ {
+ $this->parameters = array_replace($this->parameters, $parameters);
+ }
+ public function get($key, $default = null)
+ {
+ return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default;
+ }
+ public function set($key, $value)
+ {
+ $this->parameters[$key] = $value;
+ }
+ public function has($key)
+ {
+ return array_key_exists($key, $this->parameters);
+ }
+ public function remove($key)
+ {
+ unset($this->parameters[$key]);
+ }
+ public function getAlpha($key, $default = '')
+ {
+ return preg_replace('/[^[:alpha:]]/', '', $this->get($key, $default));
+ }
+ public function getAlnum($key, $default = '')
+ {
+ return preg_replace('/[^[:alnum:]]/', '', $this->get($key, $default));
+ }
+ public function getDigits($key, $default = '')
+ {
+ return preg_replace('/[^[:digit:]]/', '', $this->get($key, $default));
+ }
+ public function getInt($key, $default = 0)
+ {
+ return (int) $this->get($key, $default);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+class FileBag extends ParameterBag
+{
+ static private $fileKeys = array('error', 'name', 'size', 'tmp_name', 'type');
+ public function __construct(array $parameters = array())
+ {
+ $this->replace($parameters);
+ }
+ public function replace(array $files = array())
+ {
+ $this->parameters = array();
+ $this->add($files);
+ }
+ public function set($key, $value)
+ {
+ if (is_array($value) || $value instanceof UploadedFile) {
+ parent::set($key, $this->convertFileInformation($value));
+ }
+ }
+ public function add(array $files = array())
+ {
+ foreach ($files as $key => $file) {
+ $this->set($key, $file);
+ }
+ }
+ protected function convertFileInformation($file)
+ {
+ if ($file instanceof UploadedFile) {
+ return $file;
+ }
+ $file = $this->fixPhpFilesArray($file);
+ if (is_array($file)) {
+ $keys = array_keys($file);
+ sort($keys);
+ if ($keys == self::$fileKeys) {
+ if (UPLOAD_ERR_NO_FILE == $file['error']) {
+ $file = null;
+ } else {
+ $file = new UploadedFile($file['tmp_name'], $file['name'], $file['type'], $file['size'], $file['error']);
+ }
+ } else {
+ $file = array_map(array($this, 'convertFileInformation'), $file);
+ }
+ }
+ return $file;
+ }
+ protected function fixPhpFilesArray($data)
+ {
+ if (!is_array($data)) {
+ return $data;
+ }
+ $keys = array_keys($data);
+ sort($keys);
+ if (self::$fileKeys != $keys || !isset($data['name']) || !is_array($data['name'])) {
+ return $data;
+ }
+ $files = $data;
+ foreach (self::$fileKeys as $k) {
+ unset($files[$k]);
+ }
+ foreach (array_keys($data['name']) as $key) {
+ $files[$key] = $this->fixPhpFilesArray(array(
+ 'error' => $data['error'][$key],
+ 'name' => $data['name'][$key], 'type' => $data['type'][$key],
+ 'tmp_name' => $data['tmp_name'][$key],
+ 'size' => $data['size'][$key]
+ ));
+ }
+ return $files;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ServerBag extends ParameterBag
+{
+ public function getHeaders()
+ {
+ $headers = array();
+ foreach ($this->parameters as $key => $value) {
+ if ('HTTP_' === substr($key, 0, 5)) {
+ $headers[substr($key, 5)] = $value;
+ }
+ }
+ return $headers;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class HeaderBag
+{
+ protected $headers;
+ protected $cookies;
+ protected $cacheControl;
+ public function __construct(array $headers = array())
+ {
+ $this->cacheControl = array();
+ $this->cookies = array();
+ $this->headers = array();
+ foreach ($headers as $key => $values) {
+ $this->set($key, $values);
+ }
+ }
+ public function all()
+ {
+ return $this->headers;
+ }
+ public function keys()
+ {
+ return array_keys($this->headers);
+ }
+ public function replace(array $headers = array())
+ {
+ $this->headers = array();
+ $this->add($headers);
+ }
+ public function add(array $headers)
+ {
+ foreach ($headers as $key => $values) {
+ $this->set($key, $values);
+ }
+ }
+ public function get($key, $default = null, $first = true)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ if (!array_key_exists($key, $this->headers)) {
+ if (null === $default) {
+ return $first ? null : array();
+ }
+ return $first ? $default : array($default);
+ }
+ if ($first) {
+ return count($this->headers[$key]) ? $this->headers[$key][0] : $default;
+ }
+ return $this->headers[$key];
+ }
+ public function set($key, $values, $replace = true)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ if (!is_array($values)) {
+ $values = array($values);
+ }
+ if (true === $replace || !isset($this->headers[$key])) {
+ $this->headers[$key] = $values;
+ } else {
+ $this->headers[$key] = array_merge($this->headers[$key], $values);
+ }
+ if ('cache-control' === $key) {
+ $this->cacheControl = $this->parseCacheControl($values[0]);
+ }
+ }
+ public function has($key)
+ {
+ return array_key_exists(strtr(strtolower($key), '_', '-'), $this->headers);
+ }
+ public function contains($key, $value)
+ {
+ return in_array($value, $this->get($key, null, false));
+ }
+ public function remove($key)
+ {
+ $key = strtr(strtolower($key), '_', '-');
+ unset($this->headers[$key]);
+ if ('cache-control' === $key) {
+ $this->cacheControl = array();
+ }
+ }
+ public function setCookie(Cookie $cookie)
+ {
+ $this->cookies[$cookie->getName()] = $cookie;
+ }
+ public function removeCookie($name)
+ {
+ unset($this->cookies[$name]);
+ }
+ public function hasCookie($name)
+ {
+ return isset($this->cookies[$name]);
+ }
+ public function getCookie($name)
+ {
+ if (!$this->hasCookie($name)) {
+ throw new \InvalidArgumentException(sprintf('There is no cookie with name "%s".', $name));
+ }
+ return $this->cookies[$name];
+ }
+ public function getCookies()
+ {
+ return $this->cookies;
+ }
+ public function getDate($key, \DateTime $default = null)
+ {
+ if (null === $value = $this->get($key)) {
+ return $default;
+ }
+ if (false === $date = \DateTime::createFromFormat(DATE_RFC2822, $value)) {
+ throw new \RuntimeException(sprintf('The %s HTTP header is not parseable (%s).', $key, $value));
+ }
+ return $date;
+ }
+ public function addCacheControlDirective($key, $value = true)
+ {
+ $this->cacheControl[$key] = $value;
+ $this->set('Cache-Control', $this->getCacheControlHeader());
+ }
+ public function hasCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->cacheControl);
+ }
+ public function getCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->cacheControl) ? $this->cacheControl[$key] : null;
+ }
+ public function removeCacheControlDirective($key)
+ {
+ unset($this->cacheControl[$key]);
+ $this->set('Cache-Control', $this->getCacheControlHeader());
+ }
+ protected function getCacheControlHeader()
+ {
+ $parts = array();
+ ksort($this->cacheControl);
+ foreach ($this->cacheControl as $key => $value) {
+ if (true === $value) {
+ $parts[] = $key;
+ } else {
+ if (preg_match('#[^a-zA-Z0-9._-]#', $value)) {
+ $value = '"'.$value.'"';
+ }
+ $parts[] = "$key=$value";
+ }
+ }
+ return implode(', ', $parts);
+ }
+ protected function parseCacheControl($header)
+ {
+ $cacheControl = array();
+ preg_match_all('#([a-zA-Z][a-zA-Z_-]*)\s*(?:=(?:"([^"]*)"|([^ \t",;]*)))?#', $header, $matches, PREG_SET_ORDER);
+ foreach ($matches as $match) {
+ $cacheControl[strtolower($match[1])] = isset($match[2]) && $match[2] ? $match[2] : (isset($match[3]) ? $match[3] : true);
+ }
+ return $cacheControl;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+use Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage;
+use Symfony\Component\HttpFoundation\File\UploadedFile;
+class Request
+{
+ public $attributes;
+ public $request;
+ public $query;
+ public $server;
+ public $files;
+ public $cookies;
+ public $headers;
+ protected $content;
+ protected $languages;
+ protected $charsets;
+ protected $acceptableContentTypes;
+ protected $pathInfo;
+ protected $requestUri;
+ protected $baseUrl;
+ protected $basePath;
+ protected $method;
+ protected $format;
+ protected $session;
+ static protected $formats;
+ public function __construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
+ {
+ $this->initialize($query, $request, $attributes, $cookies, $files, $server, $content);
+ }
+ public function initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
+ {
+ $this->request = new ParameterBag($request);
+ $this->query = new ParameterBag($query);
+ $this->attributes = new ParameterBag($attributes);
+ $this->cookies = new ParameterBag($cookies);
+ $this->files = new FileBag($files);
+ $this->server = new ServerBag($server);
+ $this->headers = new HeaderBag($this->server->getHeaders());
+ $this->content = $content;
+ $this->languages = null;
+ $this->charsets = null;
+ $this->acceptableContentTypes = null;
+ $this->pathInfo = null;
+ $this->requestUri = null;
+ $this->baseUrl = null;
+ $this->basePath = null;
+ $this->method = null;
+ $this->format = null;
+ }
+ static public function createfromGlobals()
+ {
+ return new static($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER);
+ }
+ static public function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null)
+ {
+ $defaults = array(
+ 'SERVER_NAME' => 'localhost',
+ 'SERVER_PORT' => 80,
+ 'HTTP_HOST' => 'localhost',
+ 'HTTP_USER_AGENT' => 'Symfony/2.X',
+ 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
+ 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
+ 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
+ 'REMOTE_ADDR' => '127.0.0.1',
+ 'SCRIPT_NAME' => '',
+ 'SCRIPT_FILENAME' => '',
+ );
+ $components = parse_url($uri);
+ if (isset($components['host'])) {
+ $defaults['SERVER_NAME'] = $components['host'];
+ $defaults['HTTP_HOST'] = $components['host'];
+ }
+ if (isset($components['scheme'])) {
+ if ('https' === $components['scheme']) {
+ $defaults['HTTPS'] = 'on';
+ $defaults['SERVER_PORT'] = 443;
+ }
+ }
+ if (isset($components['port'])) {
+ $defaults['SERVER_PORT'] = $components['port'];
+ $defaults['HTTP_HOST'] = $defaults['HTTP_HOST'].':'.$components['port'];
+ }
+ if (in_array(strtoupper($method), array('POST', 'PUT', 'DELETE'))) {
+ $request = $parameters;
+ $query = array();
+ $defaults['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
+ } else {
+ $request = array();
+ $query = $parameters;
+ if (false !== $pos = strpos($uri, '?')) {
+ $qs = substr($uri, $pos + 1);
+ parse_str($qs, $params);
+ $query = array_merge($params, $query);
+ }
+ }
+ $queryString = isset($components['query']) ? html_entity_decode($components['query']) : '';
+ parse_str($queryString, $qs);
+ if (is_array($qs)) {
+ $query = array_replace($qs, $query);
+ }
+ $uri = $components['path'] . ($queryString ? '?'.$queryString : '');
+ $server = array_replace($defaults, $server, array(
+ 'REQUEST_METHOD' => strtoupper($method),
+ 'PATH_INFO' => '',
+ 'REQUEST_URI' => $uri,
+ 'QUERY_STRING' => $queryString,
+ ));
+ return new static($query, $request, array(), $cookies, $files, $server, $content);
+ }
+ public function duplicate(array $query = null, array $request = null, array $attributes = null, array $cookies = null, array $files = null, array $server = null)
+ {
+ $dup = clone $this;
+ if ($query !== null) {
+ $dup->query = new ParameterBag($query);
+ }
+ if ($request !== null) {
+ $dup->request = new ParameterBag($request);
+ }
+ if ($attributes !== null) {
+ $dup->attributes = new ParameterBag($attributes);
+ }
+ if ($cookies !== null) {
+ $dup->cookies = new ParameterBag($cookies);
+ }
+ if ($files !== null) {
+ $dup->files = new FileBag($files);
+ }
+ if ($server !== null) {
+ $dup->server = new ServerBag($server);
+ $dup->headers = new HeaderBag($dup->server->getHeaders());
+ }
+ $this->languages = null;
+ $this->charsets = null;
+ $this->acceptableContentTypes = null;
+ $this->pathInfo = null;
+ $this->requestUri = null;
+ $this->baseUrl = null;
+ $this->basePath = null;
+ $this->method = null;
+ $this->format = null;
+ return $dup;
+ }
+ public function __clone()
+ {
+ $this->query = clone $this->query;
+ $this->request = clone $this->request;
+ $this->attributes = clone $this->attributes;
+ $this->cookies = clone $this->cookies;
+ $this->files = clone $this->files;
+ $this->server = clone $this->server;
+ $this->headers = clone $this->headers;
+ }
+ public function overrideGlobals()
+ {
+ $_GET = $this->query->all();
+ $_POST = $this->request->all();
+ $_SERVER = $this->server->all();
+ $_COOKIE = $this->cookies->all();
+ foreach ($this->headers->all() as $key => $value) {
+ $_SERVER['HTTP_'.strtoupper(str_replace('-', '_', $key))] = implode(', ', $value);
+ }
+ $_REQUEST = array_merge($_GET, $_POST);
+ }
+ public function get($key, $default = null)
+ {
+ return $this->query->get($key, $this->attributes->get($key, $this->request->get($key, $default)));
+ }
+ public function getSession()
+ {
+ return $this->session;
+ }
+ public function hasSession()
+ {
+ return $this->cookies->has(session_name());
+ }
+ public function setSession(Session $session)
+ {
+ $this->session = $session;
+ }
+ public function getClientIp($proxy = false)
+ {
+ if ($proxy) {
+ if ($this->server->has('HTTP_CLIENT_IP')) {
+ return $this->server->get('HTTP_CLIENT_IP');
+ } elseif ($this->server->has('HTTP_X_FORWARDED_FOR')) {
+ return $this->server->get('HTTP_X_FORWARDED_FOR');
+ }
+ }
+ return $this->server->get('REMOTE_ADDR');
+ }
+ public function getScriptName()
+ {
+ return $this->server->get('SCRIPT_NAME', $this->server->get('ORIG_SCRIPT_NAME', ''));
+ }
+ public function getPathInfo()
+ {
+ if (null === $this->pathInfo) {
+ $this->pathInfo = $this->preparePathInfo();
+ }
+ return $this->pathInfo;
+ }
+ public function getBasePath()
+ {
+ if (null === $this->basePath) {
+ $this->basePath = $this->prepareBasePath();
+ }
+ return $this->basePath;
+ }
+ public function getBaseUrl()
+ {
+ if (null === $this->baseUrl) {
+ $this->baseUrl = $this->prepareBaseUrl();
+ }
+ return $this->baseUrl;
+ }
+ public function getScheme()
+ {
+ return ($this->server->get('HTTPS') == 'on') ? 'https' : 'http';
+ }
+ public function getPort()
+ {
+ return $this->server->get('SERVER_PORT');
+ }
+ public function getHttpHost()
+ {
+ $host = $this->headers->get('HOST');
+ if (!empty($host)) {
+ return $host;
+ }
+ $scheme = $this->getScheme();
+ $name = $this->server->get('SERVER_NAME');
+ $port = $this->getPort();
+ if (('http' == $scheme && $port == 80) || ('https' == $scheme && $port == 443)) {
+ return $name;
+ }
+ return $name.':'.$port;
+ }
+ public function getRequestUri()
+ {
+ if (null === $this->requestUri) {
+ $this->requestUri = $this->prepareRequestUri();
+ }
+ return $this->requestUri;
+ }
+ public function getUri()
+ {
+ $qs = $this->getQueryString();
+ if (null !== $qs) {
+ $qs = '?'.$qs;
+ }
+ return $this->getScheme().'://'.$this->getHttpHost().$this->getBaseUrl().$this->getPathInfo().$qs;
+ }
+ public function getUriForPath($path)
+ {
+ return $this->getScheme().'://'.$this->getHttpHost().$this->getBaseUrl().$path;
+ }
+ public function getQueryString()
+ {
+ if (!$qs = $this->server->get('QUERY_STRING')) {
+ return null;
+ }
+ $parts = array();
+ $order = array();
+ foreach (explode('&', $qs) as $segment) {
+ if (false === strpos($segment, '=')) {
+ $parts[] = $segment;
+ $order[] = $segment;
+ } else {
+ $tmp = explode('=', urldecode($segment), 2);
+ $parts[] = urlencode($tmp[0]).'='.urlencode($tmp[1]);
+ $order[] = $tmp[0];
+ }
+ }
+ array_multisort($order, SORT_ASC, $parts);
+ return implode('&', $parts);
+ }
+ public function isSecure()
+ {
+ return (
+ (strtolower($this->server->get('HTTPS')) == 'on' || $this->server->get('HTTPS') == 1)
+ ||
+ (strtolower($this->headers->get('SSL_HTTPS')) == 'on' || $this->headers->get('SSL_HTTPS') == 1)
+ ||
+ (strtolower($this->headers->get('X_FORWARDED_PROTO')) == 'https')
+ );
+ }
+ public function getHost()
+ {
+ if ($host = $this->headers->get('X_FORWARDED_HOST')) {
+ $elements = explode(',', $host);
+ $host = trim($elements[count($elements) - 1]);
+ } else {
+ if (!$host = $this->headers->get('HOST')) {
+ if (!$host = $this->server->get('SERVER_NAME')) {
+ $host = $this->server->get('SERVER_ADDR', '');
+ }
+ }
+ }
+ $elements = explode(':', $host);
+ return trim($elements[0]);
+ }
+ public function setMethod($method)
+ {
+ $this->method = null;
+ $this->server->set('REQUEST_METHOD', $method);
+ }
+ public function getMethod()
+ {
+ if (null === $this->method) {
+ $this->method = strtoupper($this->server->get('REQUEST_METHOD', 'GET'));
+ if ('POST' === $this->method) {
+ $this->method = strtoupper($this->request->get('_method', 'POST'));
+ }
+ }
+ return $this->method;
+ }
+ public function getMimeType($format)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ return isset(static::$formats[$format]) ? static::$formats[$format][0] : null;
+ }
+ public function getFormat($mimeType)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ foreach (static::$formats as $format => $mimeTypes) {
+ if (in_array($mimeType, (array) $mimeTypes)) {
+ return $format;
+ }
+ }
+ return null;
+ }
+ public function setFormat($format, $mimeTypes)
+ {
+ if (null === static::$formats) {
+ static::initializeFormats();
+ }
+ static::$formats[$format] = is_array($mimeTypes) ? $mimeTypes : array($mimeTypes);
+ }
+ public function getRequestFormat()
+ {
+ if (null === $this->format) {
+ $this->format = $this->get('_format', 'html');
+ }
+ return $this->format;
+ }
+ public function setRequestFormat($format)
+ {
+ $this->format = $format;
+ }
+ public function isMethodSafe()
+ {
+ return in_array($this->getMethod(), array('GET', 'HEAD'));
+ }
+ public function getContent($asResource = false)
+ {
+ if (false === $this->content || (true === $asResource && null !== $this->content)) {
+ throw new \LogicException('getContent() can only be called once when using the resource return type.');
+ }
+ if (true === $asResource) {
+ $this->content = false;
+ return fopen('php://input', 'rb');
+ }
+ if (null === $this->content) {
+ $this->content = file_get_contents('php://input');
+ }
+ return $this->content;
+ }
+ public function getETags()
+ {
+ return preg_split('/\s*,\s*/', $this->headers->get('if_none_match'), null, PREG_SPLIT_NO_EMPTY);
+ }
+ public function isNoCache()
+ {
+ return $this->headers->hasCacheControlDirective('no-cache') || 'no-cache' == $this->headers->get('Pragma');
+ }
+ public function getPreferredLanguage(array $locales = null)
+ {
+ $preferredLanguages = $this->getLanguages();
+ if (null === $locales) {
+ return isset($preferredLanguages[0]) ? $preferredLanguages[0] : null;
+ }
+ if (!$preferredLanguages) {
+ return $locales[0];
+ }
+ $preferredLanguages = array_values(array_intersect($preferredLanguages, $locales));
+ return isset($preferredLanguages[0]) ? $preferredLanguages[0] : $locales[0];
+ }
+ public function getLanguages()
+ {
+ if (null !== $this->languages) {
+ return $this->languages;
+ }
+ $languages = $this->splitHttpAcceptHeader($this->headers->get('Accept-Language'));
+ $this->languages = array();
+ foreach ($languages as $lang) {
+ if (strstr($lang, '-')) {
+ $codes = explode('-', $lang);
+ if ($codes[0] == 'i') {
+ if (count($codes) > 1) {
+ $lang = $codes[1];
+ }
+ } else {
+ for ($i = 0, $max = count($codes); $i < $max; $i++) {
+ if ($i == 0) {
+ $lang = strtolower($codes[0]);
+ } else {
+ $lang .= '_'.strtoupper($codes[$i]);
+ }
+ }
+ }
+ }
+ $this->languages[] = $lang;
+ }
+ return $this->languages;
+ }
+ public function getCharsets()
+ {
+ if (null !== $this->charsets) {
+ return $this->charsets;
+ }
+ return $this->charsets = $this->splitHttpAcceptHeader($this->headers->get('Accept-Charset'));
+ }
+ public function getAcceptableContentTypes()
+ {
+ if (null !== $this->acceptableContentTypes) {
+ return $this->acceptableContentTypes;
+ }
+ return $this->acceptableContentTypes = $this->splitHttpAcceptHeader($this->headers->get('Accept'));
+ }
+ public function isXmlHttpRequest()
+ {
+ return 'XMLHttpRequest' == $this->headers->get('X-Requested-With');
+ }
+ public function splitHttpAcceptHeader($header)
+ {
+ if (!$header) {
+ return array();
+ }
+ $values = array();
+ foreach (array_filter(explode(',', $header)) as $value) {
+ if ($pos = strpos($value, ';')) {
+ $q = (float) trim(substr($value, strpos($value, '=') + 1));
+ $value = trim(substr($value, 0, $pos));
+ } else {
+ $q = 1;
+ }
+ if (0 < $q) {
+ $values[trim($value)] = $q;
+ }
+ }
+ arsort($values);
+ return array_keys($values);
+ }
+ protected function prepareRequestUri()
+ {
+ $requestUri = '';
+ if ($this->headers->has('X_REWRITE_URL')) {
+ $requestUri = $this->headers->get('X_REWRITE_URL');
+ } elseif ($this->server->get('IIS_WasUrlRewritten') == '1' && $this->server->get('UNENCODED_URL') != '') {
+ $requestUri = $this->server->get('UNENCODED_URL');
+ } elseif ($this->server->has('REQUEST_URI')) {
+ $requestUri = $this->server->get('REQUEST_URI');
+ $schemeAndHttpHost = $this->getScheme().'://'.$this->getHttpHost();
+ if (strpos($requestUri, $schemeAndHttpHost) === 0) {
+ $requestUri = substr($requestUri, strlen($schemeAndHttpHost));
+ }
+ } elseif ($this->server->has('ORIG_PATH_INFO')) {
+ $requestUri = $this->server->get('ORIG_PATH_INFO');
+ if ($this->server->get('QUERY_STRING')) {
+ $requestUri .= '?'.$this->server->get('QUERY_STRING');
+ }
+ }
+ return $requestUri;
+ }
+ protected function prepareBaseUrl()
+ {
+ $filename = basename($this->server->get('SCRIPT_FILENAME'));
+ if (basename($this->server->get('SCRIPT_NAME')) === $filename) {
+ $baseUrl = $this->server->get('SCRIPT_NAME');
+ } elseif (basename($this->server->get('PHP_SELF')) === $filename) {
+ $baseUrl = $this->server->get('PHP_SELF');
+ } elseif (basename($this->server->get('ORIG_SCRIPT_NAME')) === $filename) {
+ $baseUrl = $this->server->get('ORIG_SCRIPT_NAME'); } else {
+ $path = $this->server->get('PHP_SELF', '');
+ $file = $this->server->get('SCRIPT_FILENAME', '');
+ $segs = explode('/', trim($file, '/'));
+ $segs = array_reverse($segs);
+ $index = 0;
+ $last = count($segs);
+ $baseUrl = '';
+ do {
+ $seg = $segs[$index];
+ $baseUrl = '/'.$seg.$baseUrl;
+ ++$index;
+ } while (($last > $index) && (false !== ($pos = strpos($path, $baseUrl))) && (0 != $pos));
+ }
+ $requestUri = $this->getRequestUri();
+ if ($baseUrl && 0 === strpos($requestUri, $baseUrl)) {
+ return $baseUrl;
+ }
+ if ($baseUrl && 0 === strpos($requestUri, dirname($baseUrl))) {
+ return rtrim(dirname($baseUrl), '/');
+ }
+ $truncatedRequestUri = $requestUri;
+ if (($pos = strpos($requestUri, '?')) !== false) {
+ $truncatedRequestUri = substr($requestUri, 0, $pos);
+ }
+ $basename = basename($baseUrl);
+ if (empty($basename) || !strpos($truncatedRequestUri, $basename)) {
+ return '';
+ }
+ if ((strlen($requestUri) >= strlen($baseUrl)) && ((false !== ($pos = strpos($requestUri, $baseUrl))) && ($pos !== 0))) {
+ $baseUrl = substr($requestUri, 0, $pos + strlen($baseUrl));
+ }
+ return rtrim($baseUrl, '/');
+ }
+ protected function prepareBasePath()
+ {
+ $filename = basename($this->server->get('SCRIPT_FILENAME'));
+ $baseUrl = $this->getBaseUrl();
+ if (empty($baseUrl)) {
+ return '';
+ }
+ if (basename($baseUrl) === $filename) {
+ $basePath = dirname($baseUrl);
+ } else {
+ $basePath = $baseUrl;
+ }
+ if ('\\' === DIRECTORY_SEPARATOR) {
+ $basePath = str_replace('\\', '/', $basePath);
+ }
+ return rtrim($basePath, '/');
+ }
+ protected function preparePathInfo()
+ {
+ $baseUrl = $this->getBaseUrl();
+ if (null === ($requestUri = $this->getRequestUri())) {
+ return '';
+ }
+ $pathInfo = '';
+ if ($pos = strpos($requestUri, '?')) {
+ $requestUri = substr($requestUri, 0, $pos);
+ }
+ if ((null !== $baseUrl) && (false === ($pathInfo = substr($requestUri, strlen($baseUrl))))) {
+ return '';
+ } elseif (null === $baseUrl) {
+ return $requestUri;
+ }
+ return (string) $pathInfo;
+ }
+ static protected function initializeFormats()
+ {
+ static::$formats = array(
+ 'txt' => array('text/plain'),
+ 'js' => array('application/javascript', 'application/x-javascript', 'text/javascript'),
+ 'css' => array('text/css'),
+ 'json' => array('application/json', 'application/x-json'),
+ 'xml' => array('text/xml', 'application/xml', 'application/x-xml'),
+ 'rdf' => array('application/rdf+xml'),
+ 'atom' => array('application/atom+xml'),
+ );
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ApacheRequest extends Request
+{
+ protected function prepareRequestUri()
+ {
+ return $this->server->get('REQUEST_URI');
+ }
+ protected function prepareBaseUrl()
+ {
+ $baseUrl = $this->server->get('SCRIPT_NAME');
+ if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
+ return rtrim(dirname($baseUrl), '/\\');
+ }
+ return $baseUrl;
+ }
+ protected function preparePathInfo()
+ {
+ return $this->server->get('PATH_INFO');
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ResponseHeaderBag extends HeaderBag
+{
+ protected $computedCacheControl = array();
+ public function __construct(array $headers = array())
+ {
+ parent::__construct($headers);
+ if (!isset($this->headers['cache-control'])) {
+ $this->set('cache-control', '');
+ }
+ }
+ public function replace(array $headers = array())
+ {
+ parent::replace($headers);
+ if (!isset($this->headers['cache-control'])) {
+ $this->set('cache-control', '');
+ }
+ }
+ public function set($key, $values, $replace = true)
+ {
+ parent::set($key, $values, $replace);
+ if (in_array(strtr(strtolower($key), '_', '-'), array('cache-control', 'etag', 'last-modified', 'expires'))) {
+ $computed = $this->computeCacheControlValue();
+ $this->headers['cache-control'] = array($computed);
+ $this->computedCacheControl = $this->parseCacheControl($computed);
+ }
+ }
+ public function remove($key)
+ {
+ parent::remove($key);
+ if ('cache-control' === strtr(strtolower($key), '_', '-')) {
+ $this->computedCacheControl = array();
+ }
+ }
+ public function hasCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->computedCacheControl);
+ }
+ public function getCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->computedCacheControl) ? $this->computedCacheControl[$key] : null;
+ }
+ public function clearCookie($name, $path = null, $domain = null)
+ {
+ $this->setCookie(new Cookie($name, null, 1, $path, $domain));
+ }
+ protected function computeCacheControlValue()
+ {
+ if (!$this->cacheControl && !$this->has('ETag') && !$this->has('Last-Modified') && !$this->has('Expires')) {
+ return 'no-cache';
+ }
+ if (!$this->cacheControl) {
+ return 'private, must-revalidate';
+ }
+ $header = $this->getCacheControlHeader();
+ if (isset($this->cacheControl['public']) || isset($this->cacheControl['private'])) {
+ return $header;
+ }
+ if (!isset($this->cacheControl['s-maxage'])) {
+ return $header.', private';
+ }
+ return $header;
+ }
+}}
+namespace Symfony\Component\HttpFoundation
+{
+class Response
+{
+ public $headers;
+ protected $content;
+ protected $version;
+ protected $statusCode;
+ protected $statusText;
+ protected $charset;
+ static public $statusTexts = array(
+ 100 => 'Continue',
+ 101 => 'Switching Protocols',
+ 200 => 'OK',
+ 201 => 'Created',
+ 202 => 'Accepted',
+ 203 => 'Non-Authoritative Information',
+ 204 => 'No Content',
+ 205 => 'Reset Content',
+ 206 => 'Partial Content',
+ 300 => 'Multiple Choices',
+ 301 => 'Moved Permanently',
+ 302 => 'Found',
+ 303 => 'See Other',
+ 304 => 'Not Modified',
+ 305 => 'Use Proxy',
+ 307 => 'Temporary Redirect',
+ 400 => 'Bad Request',
+ 401 => 'Unauthorized',
+ 402 => 'Payment Required',
+ 403 => 'Forbidden',
+ 404 => 'Not Found',
+ 405 => 'Method Not Allowed',
+ 406 => 'Not Acceptable',
+ 407 => 'Proxy Authentication Required',
+ 408 => 'Request Timeout',
+ 409 => 'Conflict',
+ 410 => 'Gone',
+ 411 => 'Length Required',
+ 412 => 'Precondition Failed',
+ 413 => 'Request Entity Too Large',
+ 414 => 'Request-URI Too Long',
+ 415 => 'Unsupported Media Type',
+ 416 => 'Requested Range Not Satisfiable',
+ 417 => 'Expectation Failed',
+ 418 => 'I\'m a teapot',
+ 500 => 'Internal Server Error',
+ 501 => 'Not Implemented',
+ 502 => 'Bad Gateway',
+ 503 => 'Service Unavailable',
+ 504 => 'Gateway Timeout',
+ 505 => 'HTTP Version Not Supported',
+ );
+ public function __construct($content = '', $status = 200, $headers = array())
+ {
+ $this->setContent($content);
+ $this->setStatusCode($status);
+ $this->setProtocolVersion('1.0');
+ $this->headers = new ResponseHeaderBag($headers);
+ }
+ public function __toString()
+ {
+ $content = '';
+ if (!$this->headers->has('Content-Type')) {
+ $this->headers->set('Content-Type', 'text/html; charset='.(null === $this->charset ? 'UTF-8' : $this->charset));
+ }
+ $content .= sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\n";
+ foreach ($this->headers->all() as $name => $values) {
+ foreach ($values as $value) {
+ $content .= "$name: $value\n";
+ }
+ }
+ $content .= "\n".$this->getContent();
+ return $content;
+ }
+ public function __clone()
+ {
+ $this->headers = clone $this->headers;
+ }
+ public function sendHeaders()
+ {
+ if (!$this->headers->has('Content-Type')) {
+ $this->headers->set('Content-Type', 'text/html; charset='.(null === $this->charset ? 'UTF-8' : $this->charset));
+ }
+ header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText));
+ foreach ($this->headers->all() as $name => $values) {
+ foreach ($values as $value) {
+ header($name.': '.$value);
+ }
+ }
+ foreach ($this->headers->getCookies() as $cookie) {
+ setcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpire(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
+ }
+ }
+ public function sendContent()
+ {
+ echo $this->content;
+ }
+ public function send()
+ {
+ $this->sendHeaders();
+ $this->sendContent();
+ }
+ public function setContent($content)
+ {
+ $this->content = $content;
+ }
+ public function getContent()
+ {
+ return $this->content;
+ }
+ public function setProtocolVersion($version)
+ {
+ $this->version = $version;
+ }
+ public function getProtocolVersion()
+ {
+ return $this->version;
+ }
+ public function setStatusCode($code, $text = null)
+ {
+ $this->statusCode = (int) $code;
+ if ($this->isInvalid()) {
+ throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $code));
+ }
+ $this->statusText = false === $text ? '' : (null === $text ? self::$statusTexts[$this->statusCode] : $text);
+ }
+ public function getStatusCode()
+ {
+ return $this->statusCode;
+ }
+ public function setCharset($charset)
+ {
+ $this->charset = $charset;
+ }
+ public function getCharset()
+ {
+ return $this->charset;
+ }
+ public function isCacheable()
+ {
+ if (!in_array($this->statusCode, array(200, 203, 300, 301, 302, 404, 410))) {
+ return false;
+ }
+ if ($this->headers->hasCacheControlDirective('no-store') || $this->headers->getCacheControlDirective('private')) {
+ return false;
+ }
+ return $this->isValidateable() || $this->isFresh();
+ }
+ public function isFresh()
+ {
+ return $this->getTtl() > 0;
+ }
+ public function isValidateable()
+ {
+ return $this->headers->has('Last-Modified') || $this->headers->has('ETag');
+ }
+ public function setPrivate()
+ {
+ $this->headers->removeCacheControlDirective('public');
+ $this->headers->addCacheControlDirective('private');
+ }
+ public function setPublic()
+ {
+ $this->headers->addCacheControlDirective('public');
+ $this->headers->removeCacheControlDirective('private');
+ }
+ public function mustRevalidate()
+ {
+ return $this->headers->hasCacheControlDirective('must-revalidate') || $this->headers->has('must-proxy-revalidate');
+ }
+ public function getDate()
+ {
+ if (null === $date = $this->headers->getDate('Date')) {
+ $date = new \DateTime(null, new \DateTimeZone('UTC'));
+ $this->headers->set('Date', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ return $date;
+ }
+ public function getAge()
+ {
+ if ($age = $this->headers->get('Age')) {
+ return $age;
+ }
+ return max(time() - $this->getDate()->format('U'), 0);
+ }
+ public function expire()
+ {
+ if ($this->isFresh()) {
+ $this->headers->set('Age', $this->getMaxAge());
+ }
+ }
+ public function getExpires()
+ {
+ return $this->headers->getDate('Expires');
+ }
+ public function setExpires(\DateTime $date = null)
+ {
+ if (null === $date) {
+ $this->headers->remove('Expires');
+ } else {
+ $date = clone $date;
+ $date->setTimezone(new \DateTimeZone('UTC'));
+ $this->headers->set('Expires', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ }
+ public function getMaxAge()
+ {
+ if ($age = $this->headers->getCacheControlDirective('s-maxage')) {
+ return $age;
+ }
+ if ($age = $this->headers->getCacheControlDirective('max-age')) {
+ return $age;
+ }
+ if (null !== $this->getExpires()) {
+ return $this->getExpires()->format('U') - $this->getDate()->format('U');
+ }
+ return null;
+ }
+ public function setMaxAge($value)
+ {
+ $this->headers->addCacheControlDirective('max-age', $value);
+ }
+ public function setSharedMaxAge($value)
+ {
+ $this->headers->addCacheControlDirective('s-maxage', $value);
+ }
+ public function getTtl()
+ {
+ if ($maxAge = $this->getMaxAge()) {
+ return $maxAge - $this->getAge();
+ }
+ return null;
+ }
+ public function setTtl($seconds)
+ {
+ $this->setSharedMaxAge($this->getAge() + $seconds);
+ }
+ public function setClientTtl($seconds)
+ {
+ $this->setMaxAge($this->getAge() + $seconds);
+ }
+ public function getLastModified()
+ {
+ return $this->headers->getDate('Last-Modified');
+ }
+ public function setLastModified(\DateTime $date = null)
+ {
+ if (null === $date) {
+ $this->headers->remove('Last-Modified');
+ } else {
+ $date = clone $date;
+ $date->setTimezone(new \DateTimeZone('UTC'));
+ $this->headers->set('Last-Modified', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ }
+ public function getEtag()
+ {
+ return $this->headers->get('ETag');
+ }
+ public function setEtag($etag = null, $weak = false)
+ {
+ if (null === $etag) {
+ $this->headers->remove('Etag');
+ } else {
+ if (0 !== strpos($etag, '"')) {
+ $etag = '"'.$etag.'"';
+ }
+ $this->headers->set('ETag', (true === $weak ? 'W/' : '').$etag);
+ }
+ }
+ public function setCache(array $options)
+ {
+ if ($diff = array_diff(array_keys($options), array('etag', 'last_modified', 'max_age', 's_maxage', 'private', 'public'))) {
+ throw new \InvalidArgumentException(sprintf('Response does not support the following options: "%s".', implode('", "', array_keys($diff))));
+ }
+ if (isset($options['etag'])) {
+ $this->setEtag($options['etag']);
+ }
+ if (isset($options['last_modified'])) {
+ $this->setLastModified($options['last_modified']);
+ }
+ if (isset($options['max_age'])) {
+ $this->setMaxAge($options['max_age']);
+ }
+ if (isset($options['s_maxage'])) {
+ $this->setSharedMaxAge($options['s_maxage']);
+ }
+ if (isset($options['public'])) {
+ if ($options['public']) {
+ $this->setPublic();
+ } else {
+ $this->setPrivate();
+ }
+ }
+ if (isset($options['private'])) {
+ if ($options['private']) {
+ $this->setPrivate();
+ } else {
+ $this->setPublic();
+ }
+ }
+ }
+ public function setNotModified()
+ {
+ $this->setStatusCode(304);
+ $this->setContent(null);
+ foreach (array('Allow', 'Content-Encoding', 'Content-Language', 'Content-Length', 'Content-MD5', 'Content-Type', 'Last-Modified') as $header) {
+ $this->headers->remove($header);
+ }
+ }
+ public function hasVary()
+ {
+ return (Boolean) $this->headers->get('Vary');
+ }
+ public function getVary()
+ {
+ if (!$vary = $this->headers->get('Vary')) {
+ return array();
+ }
+ return is_array($vary) ? $vary : preg_split('/[\s,]+/', $vary);
+ }
+ public function setVary($headers, $replace = true)
+ {
+ $this->headers->set('Vary', $headers, $replace);
+ }
+ public function isNotModified(Request $request)
+ {
+ $lastModified = $request->headers->get('If-Modified-Since');
+ $notModified = false;
+ if ($etags = $request->getEtags()) {
+ $notModified = (in_array($this->getEtag(), $etags) || in_array('*', $etags)) && (!$lastModified || $this->headers->get('Last-Modified') == $lastModified);
+ } elseif ($lastModified) {
+ $notModified = $lastModified == $this->headers->get('Last-Modified');
+ }
+ if ($notModified) {
+ $this->setNotModified();
+ }
+ return $notModified;
+ }
+ public function isInvalid()
+ {
+ return $this->statusCode < 100 || $this->statusCode >= 600;
+ }
+ public function isInformational()
+ {
+ return $this->statusCode >= 100 && $this->statusCode < 200;
+ }
+ public function isSuccessful()
+ {
+ return $this->statusCode >= 200 && $this->statusCode < 300;
+ }
+ public function isRedirection()
+ {
+ return $this->statusCode >= 300 && $this->statusCode < 400;
+ }
+ public function isClientError()
+ {
+ return $this->statusCode >= 400 && $this->statusCode < 500;
+ }
+ public function isServerError()
+ {
+ return $this->statusCode >= 500 && $this->statusCode < 600;
+ }
+ public function isOk()
+ {
+ return 200 === $this->statusCode;
+ }
+ public function isForbidden()
+ {
+ return 403 === $this->statusCode;
+ }
+ public function isNotFound()
+ {
+ return 404 === $this->statusCode;
+ }
+ public function isRedirect()
+ {
+ return in_array($this->statusCode, array(301, 302, 303, 307));
+ }
+ public function isEmpty()
+ {
+ return in_array($this->statusCode, array(201, 204, 304));
+ }
+ public function isRedirected($location)
+ {
+ return $this->isRedirect() && $location == $this->headers->get('Location');
+ }
+}
+}
+namespace Symfony\Component\ClassLoader
+{
+class UniversalClassLoader
+{
+ private $namespaces = array();
+ private $prefixes = array();
+ private $namespaceFallback = array();
+ private $prefixFallback = array();
+ public function getNamespaces()
+ {
+ return $this->namespaces;
+ }
+ public function getPrefixes()
+ {
+ return $this->prefixes;
+ }
+ public function getNamespaceFallback()
+ {
+ return $this->namespaceFallback;
+ }
+ public function getPrefixFallback()
+ {
+ return $this->prefixFallback;
+ }
+ public function registerNamespaceFallback($dirs)
+ {
+ $this->namespaceFallback = (array) $dirs;
+ }
+ public function registerPrefixFallback($dirs)
+ {
+ $this->prefixFallback = (array) $dirs;
+ }
+ public function registerNamespaces(array $namespaces)
+ {
+ foreach ($namespaces as $namespace => $locations) {
+ $this->namespaces[$namespace] = (array) $locations;
+ }
+ }
+ public function registerNamespace($namespace, $paths)
+ {
+ $this->namespaces[$namespace] = (array) $paths;
+ }
+ public function registerPrefixes(array $classes)
+ {
+ foreach ($classes as $prefix => $locations) {
+ $this->prefixes[$prefix] = (array) $locations;
+ }
+ }
+ public function registerPrefix($prefix, $paths)
+ {
+ $this->prefixes[$prefix] = (array) $paths;
+ }
+ public function register($prepend = false)
+ {
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+ }
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ require $file;
+ }
+ }
+ public function findFile($class)
+ {
+ if ('\\' == $class[0]) {
+ $class = substr($class, 1);
+ }
+ if (false !== $pos = strrpos($class, '\\')) {
+ $namespace = substr($class, 0, $pos);
+ foreach ($this->namespaces as $ns => $dirs) {
+ foreach ($dirs as $dir) {
+ if (0 === strpos($namespace, $ns)) {
+ $className = substr($class, $pos + 1);
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('\\', DIRECTORY_SEPARATOR, $namespace).DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $className).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+ foreach ($this->namespaceFallback as $dir) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('\\', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ } else {
+ foreach ($this->prefixes as $prefix => $dirs) {
+ foreach ($dirs as $dir) {
+ if (0 === strpos($class, $prefix)) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+ foreach ($this->prefixFallback as $dir) {
+ $file = $dir.DIRECTORY_SEPARATOR.str_replace('_', DIRECTORY_SEPARATOR, $class).'.php';
+ if (file_exists($file)) {
+ return $file;
+ }
+ }
+ }
+ }
+}
+}
=== added directory 'app/cache'
=== added directory 'app/cache/dev'
=== added file 'app/cache/dev/appDevDebugProjectContainer.php'
--- app/cache/dev/appDevDebugProjectContainer.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/appDevDebugProjectContainer.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,2333 @@
+<?php
+
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\Parameter;
+
+
+/**
+ * appDevDebugProjectContainer
+ *
+ * This class has been auto-generated
+ * by the Symfony Dependency Injection Component.
+ */
+class appDevDebugProjectContainer extends Container
+{
+ /**
+ * Constructor.
+ */
+ public function __construct()
+ {
+ $this->parameters = $this->getDefaultParameters();
+
+ $this->services =
+ $this->scopedServices =
+ $this->scopeStacks = array();
+
+ $this->set('service_container', $this);
+
+ $this->scopes = array('request' => 'container');
+ $this->scopeChildren = array('request' => array());
+ }
+
+ /**
+ * Gets the 'acme.demo.listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Acme\DemoBundle\ControllerListener A Acme\DemoBundle\ControllerListener instance.
+ */
+ protected function getAcme_Demo_ListenerService()
+ {
+ return $this->services['acme.demo.listener'] = new \Acme\DemoBundle\ControllerListener($this->get('twig.extension.acme.demo'));
+ }
+
+ /**
+ * Gets the 'annotations.cache.array' service.
+ *
+ * @return Doctrine\Common\Cache\ArrayCache A Doctrine\Common\Cache\ArrayCache instance.
+ */
+ protected function getAnnotations_Cache_ArrayService()
+ {
+ return new \Doctrine\Common\Cache\ArrayCache();
+ }
+
+ /**
+ * Gets the 'annotations.configuration_reader' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Configuration\AnnotationReader A Sensio\Bundle\FrameworkExtraBundle\Configuration\AnnotationReader instance.
+ */
+ protected function getAnnotations_ConfigurationReaderService()
+ {
+ return $this->services['annotations.configuration_reader'] = new \Sensio\Bundle\FrameworkExtraBundle\Configuration\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache(), $this->get('annotations.parser'));
+ }
+
+ /**
+ * Gets the 'annotations.controller_parser' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Controller\ControllerAnnotationParser A Sensio\Bundle\FrameworkExtraBundle\Controller\ControllerAnnotationParser instance.
+ */
+ protected function getAnnotations_ControllerParserService()
+ {
+ return $this->services['annotations.controller_parser'] = new \Sensio\Bundle\FrameworkExtraBundle\Controller\ControllerAnnotationParser($this->get('annotations.configuration_reader'));
+ }
+
+ /**
+ * Gets the 'annotations.parser' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Doctrine\Common\Annotations\Parser A Doctrine\Common\Annotations\Parser instance.
+ */
+ protected function getAnnotations_ParserService()
+ {
+ $this->services['annotations.parser'] = $instance = new \Doctrine\Common\Annotations\Parser();
+
+ $instance->setAutoloadAnnotations(true);
+ $instance->setAnnotationNamespaceAlias('Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\', 'extra');
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'annotations.reader' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Doctrine\Common\Annotations\AnnotationReader A Doctrine\Common\Annotations\AnnotationReader instance.
+ */
+ protected function getAnnotations_ReaderService()
+ {
+ return $this->services['annotations.reader'] = new \Doctrine\Common\Annotations\AnnotationReader(new \Doctrine\Common\Cache\ArrayCache(), $this->get('annotations.parser'));
+ }
+
+ /**
+ * Gets the 'assetic.asset_manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Assetic\Factory\LazyAssetManager A Assetic\Factory\LazyAssetManager instance.
+ */
+ protected function getAssetic_AssetManagerService()
+ {
+ $a = $this->get('templating.loader');
+
+ $this->services['assetic.asset_manager'] = $instance = new \Assetic\Factory\LazyAssetManager($this->get('assetic.asset_factory'), array('twig' => new \Assetic\Factory\Loader\CachedFormulaLoader(new \Assetic\Extension\Twig\TwigFormulaLoader($this->get('twig')), new \Assetic\Cache\ConfigCache('C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/assetic/config'), true)));
+
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'FrameworkBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/FrameworkBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'FrameworkBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SecurityBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/SecurityBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SecurityBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\SecurityBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TwigBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/TwigBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TwigBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\TwigBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'MonologBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/MonologBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'MonologBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\MonologBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SwiftmailerBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/SwiftmailerBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SwiftmailerBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\SwiftmailerBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'DoctrineBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/DoctrineBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'DoctrineBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\DoctrineBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'AsseticBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/AsseticBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'AsseticBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\AsseticBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SensioFrameworkExtraBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/SensioFrameworkExtraBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SensioFrameworkExtraBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\bundles\\Sensio\\Bundle\\FrameworkExtraBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'JMSSecurityExtraBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/JMSSecurityExtraBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'JMSSecurityExtraBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\bundles\\JMS\\SecurityExtraBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'AcmeDemoBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/AcmeDemoBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'AcmeDemoBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\src\\Acme\\DemoBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TsepDevSearchBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/TsepDevSearchBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TsepDevSearchBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\src\\TsepDev\\Bundle\\SearchBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TsepDevAdminBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/TsepDevAdminBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'TsepDevAdminBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\src\\TsepDev\\Bundle\\AdminBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'WebProfilerBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/WebProfilerBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'WebProfilerBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\WebProfilerBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Assetic\Factory\Resource\CoalescingDirectoryResource(array(0 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SymfonyWebConfiguratorBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/SymfonyWebConfiguratorBundle/views', '/^[^.]+\\.[^.]+\\.twig$/'), 1 => new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, 'SymfonyWebConfiguratorBundle', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\bundles\\Symfony\\Bundle\\WebConfiguratorBundle/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'))), 'twig');
+ $instance->addResource(new \Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource($a, '', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources/views', '/^[^.]+\\.[^.]+\\.twig$/'), 'twig');
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'assetic.controller' service.
+ *
+ * @return Symfony\Bundle\AsseticBundle\Controller\AsseticController A Symfony\Bundle\AsseticBundle\Controller\AsseticController instance.
+ */
+ protected function getAssetic_ControllerService()
+ {
+ return new \Symfony\Bundle\AsseticBundle\Controller\AsseticController($this->get('request'), $this->get('assetic.asset_manager'), $this->get('assetic.cache'));
+ }
+
+ /**
+ * Gets the 'assetic.filter.cssrewrite' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Assetic\Filter\CssRewriteFilter A Assetic\Filter\CssRewriteFilter instance.
+ */
+ protected function getAssetic_Filter_CssrewriteService()
+ {
+ return $this->services['assetic.filter.cssrewrite'] = new \Assetic\Filter\CssRewriteFilter();
+ }
+
+ /**
+ * Gets the 'assetic.filter_manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\AsseticBundle\FilterManager A Symfony\Bundle\AsseticBundle\FilterManager instance.
+ */
+ protected function getAssetic_FilterManagerService()
+ {
+ return $this->services['assetic.filter_manager'] = new \Symfony\Bundle\AsseticBundle\FilterManager($this, array('cssrewrite' => 'assetic.filter.cssrewrite'));
+ }
+
+ /**
+ * Gets the 'cache.annotation' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Cache\AnnotationCacheListener A Sensio\Bundle\FrameworkExtraBundle\Cache\AnnotationCacheListener instance.
+ */
+ protected function getCache_AnnotationService()
+ {
+ return $this->services['cache.annotation'] = new \Sensio\Bundle\FrameworkExtraBundle\Cache\AnnotationCacheListener();
+ }
+
+ /**
+ * Gets the 'cache_warmer' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate A Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate instance.
+ */
+ protected function getCacheWarmerService()
+ {
+ return $this->services['cache_warmer'] = new \Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate(array(0 => new \Symfony\Bundle\AsseticBundle\CacheWarmer\AssetManagerCacheWarmer($this->get('assetic.asset_manager')), 1 => new \Symfony\Bundle\FrameworkBundle\CacheWarmer\ClassMapCacheWarmer($this), 2 => new \Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer($this->get('router.real')), 3 => new \Symfony\Bundle\DoctrineBundle\CacheWarmer\ProxyCacheWarmer($this)));
+ }
+
+ /**
+ * Gets the 'converter.doctrine.mongodb.odm' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter A Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter instance.
+ */
+ protected function getConverter_Doctrine_Mongodb_OdmService()
+ {
+ return $this->services['converter.doctrine.mongodb.odm'] = new \Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter(NULL);
+ }
+
+ /**
+ * Gets the 'converter.doctrine.orm' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter A Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter instance.
+ */
+ protected function getConverter_Doctrine_OrmService()
+ {
+ return $this->services['converter.doctrine.orm'] = new \Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\DoctrineParamConverter($this->get('doctrine.orm.default_entity_manager'));
+ }
+
+ /**
+ * Gets the 'converter.listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Controller\ParamConverterListener A Sensio\Bundle\FrameworkExtraBundle\Controller\ParamConverterListener instance.
+ */
+ protected function getConverter_ListenerService()
+ {
+ return $this->services['converter.listener'] = new \Sensio\Bundle\FrameworkExtraBundle\Controller\ParamConverterListener($this->get('converter.manager'));
+ }
+
+ /**
+ * Gets the 'converter.manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterManager A Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterManager instance.
+ */
+ protected function getConverter_ManagerService()
+ {
+ $this->services['converter.manager'] = $instance = new \Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterManager(array());
+
+ $instance->add($this->get('converter.doctrine.orm'), 0);
+ $instance->add($this->get('converter.doctrine.mongodb.odm'), 0);
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'doctrine.dbal.connection_factory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\DoctrineBundle\ConnectionFactory A Symfony\Bundle\DoctrineBundle\ConnectionFactory instance.
+ */
+ protected function getDoctrine_Dbal_ConnectionFactoryService()
+ {
+ return $this->services['doctrine.dbal.connection_factory'] = new \Symfony\Bundle\DoctrineBundle\ConnectionFactory(array());
+ }
+
+ /**
+ * Gets the 'doctrine.dbal.default_connection' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Doctrine\DBAL\Connection A Doctrine\DBAL\Connection instance.
+ */
+ protected function getDoctrine_Dbal_DefaultConnectionService()
+ {
+ $a = new \Doctrine\DBAL\Configuration();
+ $a->setSQLLogger($this->get('doctrine.dbal.logger'));
+
+ return $this->services['doctrine.dbal.default_connection'] = $this->get('doctrine.dbal.connection_factory')->createConnection(array('dbname' => 'symfony', 'host' => 'localhost', 'user' => 'root', 'password' => '', 'driver' => 'pdo_mysql', 'port' => NULL, 'driverOptions' => array()), $a, new \Doctrine\Common\EventManager());
+ }
+
+ /**
+ * Gets the 'doctrine.orm.default_entity_manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Doctrine\ORM\EntityManager A Doctrine\ORM\EntityManager instance.
+ */
+ protected function getDoctrine_Orm_DefaultEntityManagerService()
+ {
+ $a = new \Doctrine\Common\Cache\ArrayCache();
+ $a->setNamespace('sf2orm_default_c1d4614b791f7b921548fb8c577c8d6d');
+
+ $b = new \Doctrine\Common\Cache\ArrayCache();
+ $b->setNamespace('sf2orm_default_c1d4614b791f7b921548fb8c577c8d6d');
+
+ $c = new \Doctrine\Common\Cache\ArrayCache();
+ $c->setNamespace('sf2orm_default_c1d4614b791f7b921548fb8c577c8d6d');
+
+ $d = new \Doctrine\Common\Annotations\AnnotationReader();
+ $d->setAnnotationNamespaceAlias('Doctrine\\ORM\\Mapping\\', 'orm');
+
+ $e = new \Doctrine\ORM\Mapping\Driver\DriverChain();
+ $e->addDriver(new \Doctrine\ORM\Mapping\Driver\AnnotationDriver($d, array(0 => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\src\\TsepDev\\Bundle\\SearchBundle\\Entity')), 'TsepDev\\Bundle\\SearchBundle\\Entity');
+
+ $f = new \Doctrine\ORM\Configuration();
+ $f->setEntityNamespaces(array('TsepDevSearchBundle' => 'TsepDev\\Bundle\\SearchBundle\\Entity'));
+ $f->setMetadataCacheImpl($a);
+ $f->setQueryCacheImpl($b);
+ $f->setResultCacheImpl($c);
+ $f->setMetadataDriverImpl($e);
+ $f->setProxyDir('C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/doctrine/orm/Proxies');
+ $f->setProxyNamespace('Proxies');
+ $f->setAutoGenerateProxyClasses(true);
+ $f->setClassMetadataFactoryName('Doctrine\\ORM\\Mapping\\ClassMetadataFactory');
+
+ return $this->services['doctrine.orm.default_entity_manager'] = call_user_func(array('Doctrine\\ORM\\EntityManager', 'create'), $this->get('doctrine.dbal.default_connection'), $f);
+ }
+
+ /**
+ * Gets the 'error_handler' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\Debug\ErrorHandler A Symfony\Component\HttpKernel\Debug\ErrorHandler instance.
+ */
+ protected function getErrorHandlerService()
+ {
+ return $this->services['error_handler'] = new \Symfony\Component\HttpKernel\Debug\ErrorHandler('');
+ }
+
+ /**
+ * Gets the 'event_dispatcher' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Debug\TraceableEventDispatcher A Symfony\Bundle\FrameworkBundle\Debug\TraceableEventDispatcher instance.
+ */
+ protected function getEventDispatcherService()
+ {
+ $this->services['event_dispatcher'] = $instance = new \Symfony\Bundle\FrameworkBundle\Debug\TraceableEventDispatcher($this, $this->get('monolog.logger.event'));
+
+ $instance->addListenerService('onCoreRequest', 'request_listener', 0);
+ $instance->addListenerService('onCoreResponse', 'response_listener', 0);
+ $instance->addListenerService('onCoreException', 'exception_listener', -128);
+ $instance->addListenerService('onCoreResponse', 'profiler_listener', 0);
+ $instance->addListenerService('onCoreException', 'profiler_listener', 0);
+ $instance->addListenerService('onCoreRequest', 'profiler_listener', 0);
+ $instance->addListenerService('onCoreController', 'data_collector.request', 0);
+ $instance->addListenerService('onCoreRequest', 'security.firewall', -128);
+ $instance->addListenerService('onCoreResponse', 'security.rememberme.response_listener', 0);
+ $instance->addListenerService('onCoreController', 'annotations.controller_parser', 0);
+ $instance->addListenerService('onCoreController', 'converter.listener', 0);
+ $instance->addListenerService('onCoreController', 'view.template_annotation', 0);
+ $instance->addListenerService('onCoreView', 'view.template_annotation', 0);
+ $instance->addListenerService('onCoreResponse', 'cache.annotation', 0);
+ $instance->addListenerService('onCoreController', 'security.extra.controller_listener', -255);
+ $instance->addListenerService('onCoreController', 'acme.demo.listener', 0);
+ $instance->addListenerService('onCoreResponse', 'web_profiler.debug.toolbar', -128);
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'exception_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\Debug\ExceptionListener A Symfony\Component\HttpKernel\Debug\ExceptionListener instance.
+ */
+ protected function getExceptionListenerService()
+ {
+ return $this->services['exception_listener'] = new \Symfony\Component\HttpKernel\Debug\ExceptionListener('Symfony\\Bundle\\FrameworkBundle\\Controller\\ExceptionController::showAction', $this->get('monolog.logger.request'));
+ }
+
+ /**
+ * Gets the 'file_locator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\Config\FileLocator A Symfony\Component\HttpKernel\Config\FileLocator instance.
+ */
+ protected function getFileLocatorService()
+ {
+ return $this->services['file_locator'] = new \Symfony\Component\HttpKernel\Config\FileLocator($this->get('kernel'), 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/Resources');
+ }
+
+ /**
+ * Gets the 'filesystem' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\Util\Filesystem A Symfony\Component\HttpKernel\Util\Filesystem instance.
+ */
+ protected function getFilesystemService()
+ {
+ return $this->services['filesystem'] = new \Symfony\Component\HttpKernel\Util\Filesystem();
+ }
+
+ /**
+ * Gets the 'form.context' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Form\FormContext A Symfony\Component\Form\FormContext instance.
+ */
+ protected function getForm_ContextService()
+ {
+ return $this->services['form.context'] = new \Symfony\Component\Form\FormContext(array('validator' => $this->get('validator'), 'validation_groups' => 'Default', 'field_factory' => $this->get('form.field_factory'), 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_provider' => $this->get('form.csrf_provider')));
+ }
+
+ /**
+ * Gets the 'form.csrf_provider' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Form\CsrfProvider\SessionCsrfProvider A Symfony\Component\Form\CsrfProvider\SessionCsrfProvider instance.
+ */
+ protected function getForm_CsrfProviderService()
+ {
+ return $this->services['form.csrf_provider'] = new \Symfony\Component\Form\CsrfProvider\SessionCsrfProvider($this->get('session'), 'ThisTokenIsNotSoSecretChangeIt');
+ }
+
+ /**
+ * Gets the 'form.field_factory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Form\FieldFactory\FieldFactory A Symfony\Component\Form\FieldFactory\FieldFactory instance.
+ */
+ protected function getForm_FieldFactoryService()
+ {
+ return $this->services['form.field_factory'] = new \Symfony\Component\Form\FieldFactory\FieldFactory(array(0 => new \Symfony\Component\Form\FieldFactory\ValidatorFieldFactoryGuesser($this->get('validator.mapping.class_metadata_factory')), 1 => new \Symfony\Component\Form\FieldFactory\EntityFieldFactoryGuesser($this->get('doctrine.orm.default_entity_manager'))));
+ }
+
+ /**
+ * Gets the 'http_kernel' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\HttpKernel A Symfony\Bundle\FrameworkBundle\HttpKernel instance.
+ */
+ protected function getHttpKernelService()
+ {
+ return $this->services['http_kernel'] = new \Symfony\Bundle\FrameworkBundle\HttpKernel($this->get('event_dispatcher'), $this, new \Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver($this, $this->get('controller_name_converter'), $this->get('monolog.logger.request')));
+ }
+
+ /**
+ * Gets the 'kernel' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @throws \RuntimeException always since this service is expected to be injected dynamically
+ */
+ protected function getKernelService()
+ {
+ throw new \RuntimeException('You have requested a synthetic service ("kernel"). The DIC does not know how to construct this service.');
+ }
+
+ /**
+ * Gets the 'logger' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getLoggerService()
+ {
+ $this->services['logger'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('app');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'mailer' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Swift_Mailer A Swift_Mailer instance.
+ */
+ protected function getMailerService()
+ {
+ require_once 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\swiftmailer\\lib/swift_init.php';
+
+ return $this->services['mailer'] = new \Swift_Mailer($this->get('swiftmailer.transport'));
+ }
+
+ /**
+ * Gets the 'monolog.handler.debug' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\DebugHandler A Symfony\Bundle\MonologBundle\Logger\DebugHandler instance.
+ */
+ protected function getMonolog_Handler_DebugService()
+ {
+ return $this->services['monolog.handler.debug'] = new \Symfony\Bundle\MonologBundle\Logger\DebugHandler(100, true);
+ }
+
+ /**
+ * Gets the 'monolog.handler.main' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Monolog\Handler\StreamHandler A Monolog\Handler\StreamHandler instance.
+ */
+ protected function getMonolog_Handler_MainService()
+ {
+ return $this->services['monolog.handler.main'] = new \Monolog\Handler\StreamHandler('C:\\Users\\Geoffrey\\workspace\\TSEP\\app/logs/dev.log', 100, false);
+ }
+
+ /**
+ * Gets the 'monolog.logger.doctrine' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_DoctrineService()
+ {
+ $this->services['monolog.logger.doctrine'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('doctrine');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.event' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_EventService()
+ {
+ $this->services['monolog.logger.event'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('event');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.profiler' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_ProfilerService()
+ {
+ $this->services['monolog.logger.profiler'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('profiler');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.request' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_RequestService()
+ {
+ $this->services['monolog.logger.request'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('request');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.router' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_RouterService()
+ {
+ $this->services['monolog.logger.router'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('router');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.security' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_SecurityService()
+ {
+ $this->services['monolog.logger.security'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('security');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'monolog.logger.templating' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\MonologBundle\Logger\Logger A Symfony\Bundle\MonologBundle\Logger\Logger instance.
+ */
+ protected function getMonolog_Logger_TemplatingService()
+ {
+ $this->services['monolog.logger.templating'] = $instance = new \Symfony\Bundle\MonologBundle\Logger\Logger('templating');
+
+ $instance->pushHandler($this->get('monolog.handler.main'));
+ $instance->pushHandler($this->get('monolog.handler.debug'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'profiler' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\Profiler\Profiler A Symfony\Component\HttpKernel\Profiler\Profiler instance.
+ */
+ protected function getProfilerService()
+ {
+ if (!isset($this->scopedServices['request'])) {
+ throw new InactiveScopeException('profiler', 'request');
+ }
+
+ $this->services['profiler'] = $this->scopedServices['request']['profiler'] = $instance = new \Symfony\Component\HttpKernel\Profiler\Profiler($this->get('profiler.storage'), $this->get('monolog.logger.profiler'));
+
+ $instance->add($this->get('data_collector.config'));
+ $instance->add($this->get('data_collector.request'));
+ $instance->add($this->get('data_collector.exception'));
+ $instance->add($this->get('data_collector.events'));
+ $instance->add($this->get('data_collector.logger'));
+ $instance->add($this->get('data_collector.timer'));
+ $instance->add($this->get('data_collector.memory'));
+ $instance->add($this->get('data_collector.security'));
+ $instance->add($this->get('swiftmailer.data_collector'));
+ $instance->add($this->get('data_collector.doctrine'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'profiler_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Profiler\ProfilerListener A Symfony\Bundle\FrameworkBundle\Profiler\ProfilerListener instance.
+ */
+ protected function getProfilerListenerService()
+ {
+ return $this->services['profiler_listener'] = new \Symfony\Bundle\FrameworkBundle\Profiler\ProfilerListener($this, NULL, false, false);
+ }
+
+ /**
+ * Gets the 'request' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @throws \RuntimeException always since this service is expected to be injected dynamically
+ */
+ protected function getRequestService()
+ {
+ if (!isset($this->scopedServices['request'])) {
+ throw new InactiveScopeException('request', 'request');
+ }
+
+ throw new \RuntimeException('You have requested a synthetic service ("request"). The DIC does not know how to construct this service.');
+ }
+
+ /**
+ * Gets the 'request_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\RequestListener A Symfony\Bundle\FrameworkBundle\RequestListener instance.
+ */
+ protected function getRequestListenerService()
+ {
+ return $this->services['request_listener'] = new \Symfony\Bundle\FrameworkBundle\RequestListener($this, $this->get('router.real'), $this->get('monolog.logger.request'));
+ }
+
+ /**
+ * Gets the 'response_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpKernel\ResponseListener A Symfony\Component\HttpKernel\ResponseListener instance.
+ */
+ protected function getResponseListenerService()
+ {
+ return $this->services['response_listener'] = new \Symfony\Component\HttpKernel\ResponseListener('UTF-8');
+ }
+
+ /**
+ * Gets the 'router.cached' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Routing\CachedRouter A Symfony\Bundle\FrameworkBundle\Routing\CachedRouter instance.
+ */
+ protected function getRouter_CachedService()
+ {
+ return $this->services['router.cached'] = new \Symfony\Bundle\FrameworkBundle\Routing\CachedRouter('C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev', 'appdevUrlMatcher', 'appdevUrlGenerator');
+ }
+
+ /**
+ * Gets the 'router.real' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Routing\Router A Symfony\Component\Routing\Router instance.
+ */
+ protected function getRouter_RealService()
+ {
+ return $this->services['router.real'] = new \Symfony\Component\Routing\Router(new \Symfony\Bundle\FrameworkBundle\Routing\LazyLoader($this, 'routing.loader.real'), 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/config/routing_dev.yml', array('cache_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev', 'debug' => true, 'generator_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator', 'generator_base_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator', 'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper', 'generator_cache_class' => 'appdevUrlGenerator', 'matcher_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher', 'matcher_base_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher', 'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper', 'matcher_cache_class' => 'appdevUrlMatcher', 'resource_type' => ''));
+ }
+
+ /**
+ * Gets the 'routing.loader.real' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader A Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader instance.
+ */
+ protected function getRouting_Loader_RealService()
+ {
+ $a = $this->get('file_locator');
+ $b = $this->get('annotations.reader');
+ $c = $this->get('annotations.configuration_reader');
+
+ $d = new \Sensio\Bundle\FrameworkExtraBundle\Routing\AnnotatedRouteControllerLoader($b, $c);
+ $d->setRouteAnnotationClass('Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Route');
+ $d->setRoutesAnnotationClass('Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\Routes');
+
+ $e = new \Symfony\Component\Config\Loader\LoaderResolver();
+ $e->addLoader(new \Symfony\Component\Routing\Loader\XmlFileLoader($a));
+ $e->addLoader(new \Symfony\Component\Routing\Loader\YamlFileLoader($a));
+ $e->addLoader(new \Symfony\Component\Routing\Loader\PhpFileLoader($a));
+ $e->addLoader(new \Symfony\Bundle\AsseticBundle\Routing\AsseticLoader($this->get('assetic.asset_manager')));
+ $e->addLoader(new \Symfony\Component\Routing\Loader\AnnotationGlobLoader($a, $d));
+ $e->addLoader(new \Symfony\Component\Routing\Loader\AnnotationDirectoryLoader($a, $d));
+ $e->addLoader(new \Symfony\Component\Routing\Loader\AnnotationFileLoader($a, $d));
+ $e->addLoader($d);
+
+ return $this->services['routing.loader.real'] = new \Symfony\Bundle\FrameworkBundle\Routing\DelegatingLoader($this->get('controller_name_converter'), $this->get('monolog.logger.router'), $e);
+ }
+
+ /**
+ * Gets the 'security.access.method_interceptor' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return JMS\SecurityExtraBundle\Security\Authorization\Interception\MethodSecurityInterceptor A JMS\SecurityExtraBundle\Security\Authorization\Interception\MethodSecurityInterceptor instance.
+ */
+ protected function getSecurity_Access_MethodInterceptorService()
+ {
+ return $this->services['security.access.method_interceptor'] = new \JMS\SecurityExtraBundle\Security\Authorization\Interception\MethodSecurityInterceptor($this->get('security.context'), $this->get('security.authentication.manager'), $this->get('security.access.decision_manager'), new \JMS\SecurityExtraBundle\Security\Authorization\AfterInvocation\AfterInvocationManager(array()), new \JMS\SecurityExtraBundle\Security\Authorization\RunAsManager('RunAsToken', 'ROLE_'), $this->get('logger'));
+ }
+
+ /**
+ * Gets the 'security.context' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Security\Core\SecurityContext A Symfony\Component\Security\Core\SecurityContext instance.
+ */
+ protected function getSecurity_ContextService()
+ {
+ return $this->services['security.context'] = new \Symfony\Component\Security\Core\SecurityContext($this->get('security.authentication.manager'), $this->get('security.access.decision_manager'), false);
+ }
+
+ /**
+ * Gets the 'security.encoder_factory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Security\Core\Encoder\EncoderFactory A Symfony\Component\Security\Core\Encoder\EncoderFactory instance.
+ */
+ protected function getSecurity_EncoderFactoryService()
+ {
+ return $this->services['security.encoder_factory'] = new \Symfony\Component\Security\Core\Encoder\EncoderFactory(array('Symfony\\Component\\Security\\Core\\User\\User' => array('class' => 'Symfony\\Component\\Security\\Core\\Encoder\\PlaintextPasswordEncoder', 'arguments' => array(0 => false))));
+ }
+
+ /**
+ * Gets the 'security.extra.controller_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return JMS\SecurityExtraBundle\Controller\ControllerListener A JMS\SecurityExtraBundle\Controller\ControllerListener instance.
+ */
+ protected function getSecurity_Extra_ControllerListenerService()
+ {
+ return $this->services['security.extra.controller_listener'] = new \JMS\SecurityExtraBundle\Controller\ControllerListener($this);
+ }
+
+ /**
+ * Gets the 'security.firewall' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Security\Http\Firewall A Symfony\Component\Security\Http\Firewall instance.
+ */
+ protected function getSecurity_FirewallService()
+ {
+ return $this->services['security.firewall'] = new \Symfony\Component\Security\Http\Firewall(new \Symfony\Bundle\SecurityBundle\Security\FirewallMap($this, array('security.firewall.map.context.profiler' => new \Symfony\Component\HttpFoundation\RequestMatcher('^/_profiler'), 'security.firewall.map.context.wdt' => new \Symfony\Component\HttpFoundation\RequestMatcher('^/_wdt'), 'security.firewall.map.context.login' => new \Symfony\Component\HttpFoundation\RequestMatcher('^/demo/secured/login$'), 'security.firewall.map.context.secured_area' => new \Symfony\Component\HttpFoundation\RequestMatcher('^/demo/secured/'))), $this->get('event_dispatcher'));
+ }
+
+ /**
+ * Gets the 'security.firewall.map.context.login' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\Security\FirewallContext A Symfony\Bundle\SecurityBundle\Security\FirewallContext instance.
+ */
+ protected function getSecurity_Firewall_Map_Context_LoginService()
+ {
+ return $this->services['security.firewall.map.context.login'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(array(), NULL);
+ }
+
+ /**
+ * Gets the 'security.firewall.map.context.profiler' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\Security\FirewallContext A Symfony\Bundle\SecurityBundle\Security\FirewallContext instance.
+ */
+ protected function getSecurity_Firewall_Map_Context_ProfilerService()
+ {
+ return $this->services['security.firewall.map.context.profiler'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(array(), NULL);
+ }
+
+ /**
+ * Gets the 'security.firewall.map.context.secured_area' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\Security\FirewallContext A Symfony\Bundle\SecurityBundle\Security\FirewallContext instance.
+ */
+ protected function getSecurity_Firewall_Map_Context_SecuredAreaService()
+ {
+ $a = $this->get('monolog.logger.security');
+ $b = $this->get('security.context');
+ $c = $this->get('event_dispatcher');
+ $d = $this->get('security.authentication.manager');
+
+ $e = new \Symfony\Component\Security\Http\AccessMap();
+
+ $f = new \Symfony\Component\Security\Http\Firewall\LogoutListener($b, '/demo/secured/logout', '/demo/', NULL);
+ $f->addHandler(new \Symfony\Component\Security\Http\Logout\SessionLogoutHandler());
+
+ return $this->services['security.firewall.map.context.secured_area'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(array(0 => new \Symfony\Component\Security\Http\Firewall\ChannelListener($e, new \Symfony\Component\Security\Http\EntryPoint\RetryAuthenticationEntryPoint(), $a), 1 => new \Symfony\Component\Security\Http\Firewall\ContextListener($b, array(0 => $this->get('security.user.provider.concrete.in_memory')), 'secured_area', $a, $c), 2 => $f, 3 => new \Symfony\Component\Security\Http\Firewall\UsernamePasswordFormAuthenticationListener($b, $d, new \Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy('migrate'), 'secured_area', array('check_path' => '/demo/secured/login_check', 'login_path' => '/demo/secured/login', 'use_forward' => false, 'always_use_default_target_path' => false, 'default_target_path' => '/', 'target_path_parameter' => '_target_path', 'use_referer' => false, 'failure_path' => NULL, 'failure_forward' => false, 'username_parameter' => '_username', 'password_parameter' => '_password', 'csrf_parameter' => '_csrf_token', 'csrf_page_id' => 'form_login', 'post_only' => true), NULL, NULL, $a, $c), 4 => new \Symfony\Component\Security\Http\Firewall\AccessListener($b, $this->get('security.access.decision_manager'), $e, $d, $a)), new \Symfony\Component\Security\Http\Firewall\ExceptionListener($b, $this->get('security.authentication.trust_resolver'), new \Symfony\Component\Security\Http\EntryPoint\FormAuthenticationEntryPoint($this->get('http_kernel'), '/demo/secured/login', false), NULL, NULL, $a));
+ }
+
+ /**
+ * Gets the 'security.firewall.map.context.wdt' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\Security\FirewallContext A Symfony\Bundle\SecurityBundle\Security\FirewallContext instance.
+ */
+ protected function getSecurity_Firewall_Map_Context_WdtService()
+ {
+ return $this->services['security.firewall.map.context.wdt'] = new \Symfony\Bundle\SecurityBundle\Security\FirewallContext(array(), NULL);
+ }
+
+ /**
+ * Gets the 'security.rememberme.response_listener' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\ResponseListener A Symfony\Bundle\SecurityBundle\ResponseListener instance.
+ */
+ protected function getSecurity_Rememberme_ResponseListenerService()
+ {
+ return $this->services['security.rememberme.response_listener'] = new \Symfony\Bundle\SecurityBundle\ResponseListener();
+ }
+
+ /**
+ * Gets the 'service_container' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @throws \RuntimeException always since this service is expected to be injected dynamically
+ */
+ protected function getServiceContainerService()
+ {
+ throw new \RuntimeException('You have requested a synthetic service ("service_container"). The DIC does not know how to construct this service.');
+ }
+
+ /**
+ * Gets the 'session' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpFoundation\Session A Symfony\Component\HttpFoundation\Session instance.
+ */
+ protected function getSessionService()
+ {
+ $this->services['session'] = $instance = new \Symfony\Component\HttpFoundation\Session($this->get('session.storage'), 'en');
+
+ $instance->start();
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'session.storage' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage A Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage instance.
+ */
+ protected function getSession_StorageService()
+ {
+ return $this->services['session.storage'] = new \Symfony\Component\HttpFoundation\SessionStorage\NativeSessionStorage(array('lifetime' => 3600));
+ }
+
+ /**
+ * Gets the 'swiftmailer.transport' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Swift_Transport_EsmtpTransport A Swift_Transport_EsmtpTransport instance.
+ */
+ protected function getSwiftmailer_TransportService()
+ {
+ $this->services['swiftmailer.transport'] = $instance = new \Swift_Transport_EsmtpTransport(new \Swift_Transport_StreamBuffer(new \Swift_StreamFilters_StringReplacementFilterFactory()), array(0 => new \Swift_Transport_Esmtp_AuthHandler(array(0 => new \Swift_Transport_Esmtp_Auth_CramMd5Authenticator(), 1 => new \Swift_Transport_Esmtp_Auth_LoginAuthenticator(), 2 => new \Swift_Transport_Esmtp_Auth_PlainAuthenticator()))), new \Swift_Events_SimpleEventDispatcher());
+
+ $instance->setHost('localhost');
+ $instance->setPort(25);
+ $instance->setEncryption(NULL);
+ $instance->setUsername('');
+ $instance->setPassword('');
+ $instance->setAuthMode(NULL);
+ $instance->registerPlugin($this->get('swiftmailer.plugin.messagelogger'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'symfony.webconfigurator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\WebConfiguratorBundle\Configurator A Symfony\Bundle\WebConfiguratorBundle\Configurator instance.
+ */
+ protected function getSymfony_WebconfiguratorService()
+ {
+ return $this->services['symfony.webconfigurator'] = new \Symfony\Bundle\WebConfiguratorBundle\Configurator('C:\\Users\\Geoffrey\\workspace\\TSEP\\app');
+ }
+
+ /**
+ * Gets the 'templating' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\TwigBundle\TwigEngine A Symfony\Bundle\TwigBundle\TwigEngine instance.
+ */
+ protected function getTemplatingService()
+ {
+ return $this->services['templating'] = new \Symfony\Bundle\TwigBundle\TwigEngine($this->get('twig'), $this->get('templating.name_parser'), $this->get('templating.globals'));
+ }
+
+ /**
+ * Gets the 'templating.globals' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables A Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables instance.
+ */
+ protected function getTemplating_GlobalsService()
+ {
+ return $this->services['templating.globals'] = new \Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables($this);
+ }
+
+ /**
+ * Gets the 'templating.helper.actions' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper instance.
+ */
+ protected function getTemplating_Helper_ActionsService()
+ {
+ return $this->services['templating.helper.actions'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper($this->get('http_kernel'));
+ }
+
+ /**
+ * Gets the 'templating.helper.assets' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\AssetsHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\AssetsHelper instance.
+ */
+ protected function getTemplating_Helper_AssetsService()
+ {
+ return $this->services['templating.helper.assets'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\AssetsHelper($this->get('request'), array(), NULL, array());
+ }
+
+ /**
+ * Gets the 'templating.helper.code' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper instance.
+ */
+ protected function getTemplating_Helper_CodeService()
+ {
+ return $this->services['templating.helper.code'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper('', 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app');
+ }
+
+ /**
+ * Gets the 'templating.helper.form' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper instance.
+ */
+ protected function getTemplating_Helper_FormService()
+ {
+ $a = new \Symfony\Bundle\FrameworkBundle\Templating\PhpEngine($this->get('templating.name_parser'), $this, $this->get('templating.loader'), $this->get('templating.globals'));
+ $a->setCharset('UTF-8');
+ $a->setHelpers(array('slots' => 'templating.helper.slots', 'assets' => 'templating.helper.assets', 'request' => 'templating.helper.request', 'session' => 'templating.helper.session', 'router' => 'templating.helper.router', 'actions' => 'templating.helper.actions', 'code' => 'templating.helper.code', 'translator' => 'templating.helper.translator', 'form' => 'templating.helper.form', 'security' => 'templating.helper.security', 'assetic' => 'assetic.helper.dynamic'));
+
+ return $this->services['templating.helper.form'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper($a);
+ }
+
+ /**
+ * Gets the 'templating.helper.request' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper instance.
+ */
+ protected function getTemplating_Helper_RequestService()
+ {
+ return $this->services['templating.helper.request'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper($this->get('request'));
+ }
+
+ /**
+ * Gets the 'templating.helper.router' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\RouterHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\RouterHelper instance.
+ */
+ protected function getTemplating_Helper_RouterService()
+ {
+ return $this->services['templating.helper.router'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\RouterHelper($this->get('router.real'));
+ }
+
+ /**
+ * Gets the 'templating.helper.security' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper A Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper instance.
+ */
+ protected function getTemplating_Helper_SecurityService()
+ {
+ return $this->services['templating.helper.security'] = new \Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper($this->get('security.context'));
+ }
+
+ /**
+ * Gets the 'templating.helper.session' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\SessionHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\SessionHelper instance.
+ */
+ protected function getTemplating_Helper_SessionService()
+ {
+ return $this->services['templating.helper.session'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\SessionHelper($this->get('request'));
+ }
+
+ /**
+ * Gets the 'templating.helper.slots' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Templating\Helper\SlotsHelper A Symfony\Component\Templating\Helper\SlotsHelper instance.
+ */
+ protected function getTemplating_Helper_SlotsService()
+ {
+ return $this->services['templating.helper.slots'] = new \Symfony\Component\Templating\Helper\SlotsHelper();
+ }
+
+ /**
+ * Gets the 'templating.helper.translator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Helper\TranslatorHelper A Symfony\Bundle\FrameworkBundle\Templating\Helper\TranslatorHelper instance.
+ */
+ protected function getTemplating_Helper_TranslatorService()
+ {
+ return $this->services['templating.helper.translator'] = new \Symfony\Bundle\FrameworkBundle\Templating\Helper\TranslatorHelper($this->get('translator'));
+ }
+
+ /**
+ * Gets the 'templating.loader' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Loader\FilesystemLoader A Symfony\Bundle\FrameworkBundle\Templating\Loader\FilesystemLoader instance.
+ */
+ protected function getTemplating_LoaderService()
+ {
+ return $this->services['templating.loader'] = new \Symfony\Bundle\FrameworkBundle\Templating\Loader\FilesystemLoader($this->get('templating.locator'));
+ }
+
+ /**
+ * Gets the 'templating.locator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator A Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator instance.
+ */
+ protected function getTemplating_LocatorService()
+ {
+ return $this->services['templating.locator'] = new \Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator($this->get('file_locator'));
+ }
+
+ /**
+ * Gets the 'templating.name_parser' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser A Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser instance.
+ */
+ protected function getTemplating_NameParserService()
+ {
+ return $this->services['templating.name_parser'] = new \Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser($this->get('kernel'));
+ }
+
+ /**
+ * Gets the 'translation.loader.php' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Translation\Loader\PhpFileLoader A Symfony\Component\Translation\Loader\PhpFileLoader instance.
+ */
+ protected function getTranslation_Loader_PhpService()
+ {
+ return $this->services['translation.loader.php'] = new \Symfony\Component\Translation\Loader\PhpFileLoader();
+ }
+
+ /**
+ * Gets the 'translation.loader.xliff' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Translation\Loader\XliffFileLoader A Symfony\Component\Translation\Loader\XliffFileLoader instance.
+ */
+ protected function getTranslation_Loader_XliffService()
+ {
+ return $this->services['translation.loader.xliff'] = new \Symfony\Component\Translation\Loader\XliffFileLoader();
+ }
+
+ /**
+ * Gets the 'translation.loader.yml' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Translation\Loader\YamlFileLoader A Symfony\Component\Translation\Loader\YamlFileLoader instance.
+ */
+ protected function getTranslation_Loader_YmlService()
+ {
+ return $this->services['translation.loader.yml'] = new \Symfony\Component\Translation\Loader\YamlFileLoader();
+ }
+
+ /**
+ * Gets the 'translator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Translation\IdentityTranslator A Symfony\Component\Translation\IdentityTranslator instance.
+ */
+ protected function getTranslatorService()
+ {
+ return $this->services['translator'] = new \Symfony\Component\Translation\IdentityTranslator($this->get('translator.selector'));
+ }
+
+ /**
+ * Gets the 'translator.real' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Translation\Translator A Symfony\Bundle\FrameworkBundle\Translation\Translator instance.
+ */
+ protected function getTranslator_RealService()
+ {
+ return $this->services['translator.real'] = new \Symfony\Bundle\FrameworkBundle\Translation\Translator($this, $this->get('translator.selector'), array('cache_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/translations', 'debug' => true), $this->get('session'));
+ }
+
+ /**
+ * Gets the 'twig' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Twig_Environment A Twig_Environment instance.
+ */
+ protected function getTwigService()
+ {
+ $this->services['twig'] = $instance = new \Twig_Environment($this->get('twig.loader'), array('debug' => true, 'strict_variables' => true, 'cache' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/twig', 'charset' => 'UTF-8'));
+
+ $instance->addExtension(new \Symfony\Bundle\SecurityBundle\Twig\Extension\SecurityExtension($this->get('security.context')));
+ $instance->addExtension(new \Symfony\Bridge\Twig\Extension\TranslationExtension($this->get('translator')));
+ $instance->addExtension(new \Symfony\Bundle\TwigBundle\Extension\TemplatingExtension($this));
+ $instance->addExtension(new \Symfony\Bridge\Twig\Extension\RoutingExtension($this->get('router.real')));
+ $instance->addExtension(new \Symfony\Bridge\Twig\Extension\YamlExtension());
+ $instance->addExtension(new \Symfony\Bundle\TwigBundle\Extension\FormExtension(array(0 => 'TwigBundle::form.html.twig')));
+ $instance->addExtension(new \Symfony\Bundle\AsseticBundle\Twig\DynamicExtension($this->get('assetic.asset_factory'), true));
+ $instance->addExtension($this->get('twig.extension.acme.demo'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'twig.loader' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\TwigBundle\Loader\FilesystemLoader A Symfony\Bundle\TwigBundle\Loader\FilesystemLoader instance.
+ */
+ protected function getTwig_LoaderService()
+ {
+ return $this->services['twig.loader'] = new \Symfony\Bundle\TwigBundle\Loader\FilesystemLoader($this->get('templating.locator'), $this->get('templating.name_parser'));
+ }
+
+ /**
+ * Gets the 'validator' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Component\Validator\Validator A Symfony\Component\Validator\Validator instance.
+ */
+ protected function getValidatorService()
+ {
+ return $this->services['validator'] = new \Symfony\Component\Validator\Validator($this->get('validator.mapping.class_metadata_factory'), new \Symfony\Bundle\FrameworkBundle\Validator\ConstraintValidatorFactory($this, array()));
+ }
+
+ /**
+ * Gets the 'view.template_annotation' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Sensio\Bundle\FrameworkExtraBundle\View\AnnotationTemplateListener A Sensio\Bundle\FrameworkExtraBundle\View\AnnotationTemplateListener instance.
+ */
+ protected function getView_TemplateAnnotationService()
+ {
+ return $this->services['view.template_annotation'] = new \Sensio\Bundle\FrameworkExtraBundle\View\AnnotationTemplateListener($this);
+ }
+
+ /**
+ * Gets the 'web_profiler.debug.toolbar' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * @return Symfony\Bundle\WebProfilerBundle\WebDebugToolbarListener A Symfony\Bundle\WebProfilerBundle\WebDebugToolbarListener instance.
+ */
+ protected function getWebProfiler_Debug_ToolbarService()
+ {
+ return $this->services['web_profiler.debug.toolbar'] = new \Symfony\Bundle\WebProfilerBundle\WebDebugToolbarListener($this->get('templating'), false, true);
+ }
+
+ /**
+ * Gets the annotations.cache service alias.
+ *
+ * @return Doctrine\Common\Cache\ArrayCache An instance of the annotations.cache.array service
+ */
+ protected function getAnnotations_CacheService()
+ {
+ return $this->get('annotations.cache.array');
+ }
+
+ /**
+ * Gets the database_connection service alias.
+ *
+ * @return Doctrine\DBAL\Connection An instance of the doctrine.dbal.default_connection service
+ */
+ protected function getDatabaseConnectionService()
+ {
+ return $this->get('doctrine.dbal.default_connection');
+ }
+
+ /**
+ * Gets the debug.event_dispatcher service alias.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Debug\TraceableEventDispatcher An instance of the event_dispatcher service
+ */
+ protected function getDebug_EventDispatcherService()
+ {
+ return $this->get('event_dispatcher');
+ }
+
+ /**
+ * Gets the doctrine.orm.entity_manager service alias.
+ *
+ * @return Doctrine\ORM\EntityManager An instance of the doctrine.orm.default_entity_manager service
+ */
+ protected function getDoctrine_Orm_EntityManagerService()
+ {
+ return $this->get('doctrine.orm.default_entity_manager');
+ }
+
+ /**
+ * Gets the router service alias.
+ *
+ * @return Symfony\Component\Routing\Router An instance of the router.real service
+ */
+ protected function getRouterService()
+ {
+ return $this->get('router.real');
+ }
+
+ /**
+ * Gets the 'assetic.asset_factory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\AsseticBundle\Factory\AssetFactory A Symfony\Bundle\AsseticBundle\Factory\AssetFactory instance.
+ */
+ protected function getAssetic_AssetFactoryService()
+ {
+ $this->services['assetic.asset_factory'] = $instance = new \Symfony\Bundle\AsseticBundle\Factory\AssetFactory($this->get('kernel'), 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/../web', true);
+
+ $instance->setFilterManager($this->get('assetic.filter_manager'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'assetic.cache' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Assetic\Cache\FilesystemCache A Assetic\Cache\FilesystemCache instance.
+ */
+ protected function getAssetic_CacheService()
+ {
+ return $this->services['assetic.cache'] = new \Assetic\Cache\FilesystemCache('C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/assetic/assets');
+ }
+
+ /**
+ * Gets the 'controller_name_converter' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser A Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser instance.
+ */
+ protected function getControllerNameConverterService()
+ {
+ return $this->services['controller_name_converter'] = new \Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser($this->get('kernel'), $this->get('monolog.logger.request'));
+ }
+
+ /**
+ * Gets the 'data_collector.config' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector A Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector instance.
+ */
+ protected function getDataCollector_ConfigService()
+ {
+ return $this->services['data_collector.config'] = new \Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector($this->get('kernel'));
+ }
+
+ /**
+ * Gets the 'data_collector.doctrine' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector A Symfony\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector instance.
+ */
+ protected function getDataCollector_DoctrineService()
+ {
+ return $this->services['data_collector.doctrine'] = new \Symfony\Bundle\DoctrineBundle\DataCollector\DoctrineDataCollector($this->get('doctrine.dbal.logger'));
+ }
+
+ /**
+ * Gets the 'data_collector.events' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\DataCollector\EventDataCollector A Symfony\Component\HttpKernel\DataCollector\EventDataCollector instance.
+ */
+ protected function getDataCollector_EventsService()
+ {
+ $this->services['data_collector.events'] = $instance = new \Symfony\Component\HttpKernel\DataCollector\EventDataCollector();
+
+ $instance->setEventDispatcher($this->get('event_dispatcher'));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'data_collector.exception' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector A Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector instance.
+ */
+ protected function getDataCollector_ExceptionService()
+ {
+ return $this->services['data_collector.exception'] = new \Symfony\Component\HttpKernel\DataCollector\ExceptionDataCollector();
+ }
+
+ /**
+ * Gets the 'data_collector.logger' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector A Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector instance.
+ */
+ protected function getDataCollector_LoggerService()
+ {
+ return $this->services['data_collector.logger'] = new \Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector($this->get('monolog.logger.profiler'));
+ }
+
+ /**
+ * Gets the 'data_collector.memory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector A Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector instance.
+ */
+ protected function getDataCollector_MemoryService()
+ {
+ return $this->services['data_collector.memory'] = new \Symfony\Component\HttpKernel\DataCollector\MemoryDataCollector();
+ }
+
+ /**
+ * Gets the 'data_collector.request' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector A Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector instance.
+ */
+ protected function getDataCollector_RequestService()
+ {
+ return $this->services['data_collector.request'] = new \Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector();
+ }
+
+ /**
+ * Gets the 'data_collector.security' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\SecurityBundle\DataCollector\SecurityDataCollector A Symfony\Bundle\SecurityBundle\DataCollector\SecurityDataCollector instance.
+ */
+ protected function getDataCollector_SecurityService()
+ {
+ return $this->services['data_collector.security'] = new \Symfony\Bundle\SecurityBundle\DataCollector\SecurityDataCollector($this->get('security.context'));
+ }
+
+ /**
+ * Gets the 'data_collector.timer' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\FrameworkBundle\DataCollector\TimerDataCollector A Symfony\Bundle\FrameworkBundle\DataCollector\TimerDataCollector instance.
+ */
+ protected function getDataCollector_TimerService()
+ {
+ return $this->services['data_collector.timer'] = new \Symfony\Bundle\FrameworkBundle\DataCollector\TimerDataCollector($this->get('kernel'));
+ }
+
+ /**
+ * Gets the 'doctrine.dbal.logger' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\DoctrineBundle\Logger\DbalLogger A Symfony\Bundle\DoctrineBundle\Logger\DbalLogger instance.
+ */
+ protected function getDoctrine_Dbal_LoggerService()
+ {
+ return $this->services['doctrine.dbal.logger'] = new \Symfony\Bundle\DoctrineBundle\Logger\DbalLogger($this->get('monolog.logger.doctrine'));
+ }
+
+ /**
+ * Gets the 'profiler.storage' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage A Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage instance.
+ */
+ protected function getProfiler_StorageService()
+ {
+ return $this->services['profiler.storage'] = new \Symfony\Component\HttpKernel\Profiler\SqliteProfilerStorage('sqlite:C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/profiler.db', '', '', 86400);
+ }
+
+ /**
+ * Gets the 'security.access.decision_manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Security\Core\Authorization\AccessDecisionManager A Symfony\Component\Security\Core\Authorization\AccessDecisionManager instance.
+ */
+ protected function getSecurity_Access_DecisionManagerService()
+ {
+ return $this->services['security.access.decision_manager'] = new \Symfony\Component\Security\Core\Authorization\AccessDecisionManager(array(0 => new \Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter(new \Symfony\Component\Security\Core\Role\RoleHierarchy(array('ROLE_ADMIN' => array(0 => 'ROLE_USER'), 'ROLE_SUPER_ADMIN' => array(0 => 'ROLE_USER', 1 => 'ROLE_ADMIN', 2 => 'ROLE_ALLOWED_TO_SWITCH')))), 1 => new \Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter($this->get('security.authentication.trust_resolver'))), 'affirmative', false, true);
+ }
+
+ /**
+ * Gets the 'security.authentication.manager' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager A Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager instance.
+ */
+ protected function getSecurity_Authentication_ManagerService()
+ {
+ return $this->services['security.authentication.manager'] = new \Symfony\Component\Security\Core\Authentication\AuthenticationProviderManager(array(0 => new \Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider($this->get('security.user.provider.concrete.in_memory'), new \Symfony\Component\Security\Core\User\UserChecker(), 'secured_area', $this->get('security.encoder_factory'))));
+ }
+
+ /**
+ * Gets the 'security.authentication.trust_resolver' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver A Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver instance.
+ */
+ protected function getSecurity_Authentication_TrustResolverService()
+ {
+ return $this->services['security.authentication.trust_resolver'] = new \Symfony\Component\Security\Core\Authentication\AuthenticationTrustResolver('Symfony\\Component\\Security\\Core\\Authentication\\Token\\AnonymousToken', 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\RememberMeToken');
+ }
+
+ /**
+ * Gets the 'security.user.provider.concrete.in_memory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Security\Core\User\InMemoryUserProvider A Symfony\Component\Security\Core\User\InMemoryUserProvider instance.
+ */
+ protected function getSecurity_User_Provider_Concrete_InMemoryService()
+ {
+ $this->services['security.user.provider.concrete.in_memory'] = $instance = new \Symfony\Component\Security\Core\User\InMemoryUserProvider();
+
+ $instance->createUser(new \Symfony\Component\Security\Core\User\User('user', 'userpass', array(0 => 'ROLE_USER')));
+ $instance->createUser(new \Symfony\Component\Security\Core\User\User('admin', 'adminpass', array(0 => 'ROLE_ADMIN')));
+
+ return $instance;
+ }
+
+ /**
+ * Gets the 'swiftmailer.data_collector' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector A Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector instance.
+ */
+ protected function getSwiftmailer_DataCollectorService()
+ {
+ return $this->services['swiftmailer.data_collector'] = new \Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector($this->get('swiftmailer.plugin.messagelogger'), $this->get('mailer'));
+ }
+
+ /**
+ * Gets the 'swiftmailer.plugin.messagelogger' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Bundle\SwiftmailerBundle\Logger\MessageLogger A Symfony\Bundle\SwiftmailerBundle\Logger\MessageLogger instance.
+ */
+ protected function getSwiftmailer_Plugin_MessageloggerService()
+ {
+ return $this->services['swiftmailer.plugin.messagelogger'] = new \Symfony\Bundle\SwiftmailerBundle\Logger\MessageLogger();
+ }
+
+ /**
+ * Gets the 'translator.selector' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Translation\MessageSelector A Symfony\Component\Translation\MessageSelector instance.
+ */
+ protected function getTranslator_SelectorService()
+ {
+ return $this->services['translator.selector'] = new \Symfony\Component\Translation\MessageSelector();
+ }
+
+ /**
+ * Gets the 'twig.extension.acme.demo' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Acme\DemoBundle\Twig\Extension\DemoExtension A Acme\DemoBundle\Twig\Extension\DemoExtension instance.
+ */
+ protected function getTwig_Extension_Acme_DemoService()
+ {
+ return $this->services['twig.extension.acme.demo'] = new \Acme\DemoBundle\Twig\Extension\DemoExtension($this->get('twig.loader'));
+ }
+
+ /**
+ * Gets the 'validator.mapping.class_metadata_factory' service.
+ *
+ * This service is shared.
+ * This method always returns the same instance of the service.
+ *
+ * This service is private.
+ * If you want to be able to request this service from the container directly,
+ * make it public, otherwise you might end up with broken code.
+ *
+ * @return Symfony\Component\Validator\Mapping\ClassMetadataFactory A Symfony\Component\Validator\Mapping\ClassMetadataFactory instance.
+ */
+ protected function getValidator_Mapping_ClassMetadataFactoryService()
+ {
+ return $this->services['validator.mapping.class_metadata_factory'] = new \Symfony\Component\Validator\Mapping\ClassMetadataFactory(new \Symfony\Component\Validator\Mapping\Loader\LoaderChain(array(0 => new \Symfony\Component\Validator\Mapping\Loader\AnnotationLoader(array('assert' => 'Symfony\\Component\\Validator\\Constraints\\')), 1 => new \Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader(), 2 => new \Symfony\Component\Validator\Mapping\Loader\XmlFilesLoader(array(0 => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\vendor\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle\\DependencyInjection/../../../Component/Form/Resources/config/validation.xml')), 3 => new \Symfony\Component\Validator\Mapping\Loader\YamlFilesLoader(array()))), NULL);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getParameter($name)
+ {
+ $name = strtolower($name);
+
+ if (!array_key_exists($name, $this->parameters)) {
+ throw new \InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
+ }
+
+ return $this->parameters[$name];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function hasParameter($name)
+ {
+ return array_key_exists(strtolower($name), $this->parameters);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setParameter($name, $value)
+ {
+ throw new \LogicException('Impossible to call set() on a frozen ParameterBag.');
+ }
+ /**
+ * Gets the default parameters.
+ *
+ * @return array An array of the default parameters
+ */
+ protected function getDefaultParameters()
+ {
+ return array(
+ 'kernel.root_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app',
+ 'kernel.environment' => 'dev',
+ 'kernel.debug' => true,
+ 'kernel.name' => 'app',
+ 'kernel.cache_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev',
+ 'kernel.logs_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/logs',
+ 'kernel.bundles' => array(
+ 'FrameworkBundle' => 'Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle',
+ 'SecurityBundle' => 'Symfony\\Bundle\\SecurityBundle\\SecurityBundle',
+ 'TwigBundle' => 'Symfony\\Bundle\\TwigBundle\\TwigBundle',
+ 'MonologBundle' => 'Symfony\\Bundle\\MonologBundle\\MonologBundle',
+ 'SwiftmailerBundle' => 'Symfony\\Bundle\\SwiftmailerBundle\\SwiftmailerBundle',
+ 'DoctrineBundle' => 'Symfony\\Bundle\\DoctrineBundle\\DoctrineBundle',
+ 'AsseticBundle' => 'Symfony\\Bundle\\AsseticBundle\\AsseticBundle',
+ 'SensioFrameworkExtraBundle' => 'Sensio\\Bundle\\FrameworkExtraBundle\\SensioFrameworkExtraBundle',
+ 'JMSSecurityExtraBundle' => 'JMS\\SecurityExtraBundle\\JMSSecurityExtraBundle',
+ 'AcmeDemoBundle' => 'Acme\\DemoBundle\\AcmeDemoBundle',
+ 'TsepDevSearchBundle' => 'TsepDev\\Bundle\\SearchBundle\\TsepDevSearchBundle',
+ 'TsepDevAdminBundle' => 'TsepDev\\Bundle\\AdminBundle\\TsepDevAdminBundle',
+ 'WebProfilerBundle' => 'Symfony\\Bundle\\WebProfilerBundle\\WebProfilerBundle',
+ 'SymfonyWebConfiguratorBundle' => 'Symfony\\Bundle\\WebConfiguratorBundle\\SymfonyWebConfiguratorBundle',
+ ),
+ 'kernel.charset' => 'UTF-8',
+ 'kernel.container_class' => 'appDevDebugProjectContainer',
+ 'database_driver' => 'pdo_mysql',
+ 'database_host' => 'localhost',
+ 'database_name' => 'symfony',
+ 'database_user' => 'root',
+ 'database_password' => '',
+ 'mailer_transport' => 'smtp',
+ 'mailer_host' => 'localhost',
+ 'mailer_user' => '',
+ 'mailer_password' => '',
+ 'locale' => 'en',
+ 'csrf_secret' => 'ThisTokenIsNotSoSecretChangeIt',
+ 'request_listener.class' => 'Symfony\\Bundle\\FrameworkBundle\\RequestListener',
+ 'controller_resolver.class' => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver',
+ 'controller_name_converter.class' => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerNameParser',
+ 'response_listener.class' => 'Symfony\\Component\\HttpKernel\\ResponseListener',
+ 'exception_listener.class' => 'Symfony\\Component\\HttpKernel\\Debug\\ExceptionListener',
+ 'form.field_factory.class' => 'Symfony\\Component\\Form\\FieldFactory\\FieldFactory',
+ 'form.field_factory.validator_guesser.class' => 'Symfony\\Component\\Form\\FieldFactory\\ValidatorFieldFactoryGuesser',
+ 'form.csrf_provider.class' => 'Symfony\\Component\\Form\\CsrfProvider\\SessionCsrfProvider',
+ 'form.context.class' => 'Symfony\\Component\\Form\\FormContext',
+ 'form.csrf_protection.enabled' => true,
+ 'form.csrf_protection.field_name' => '_token',
+ 'form.csrf_protection.secret' => 'ThisTokenIsNotSoSecretChangeIt',
+ 'form.validation_groups' => 'Default',
+ 'event_dispatcher.class' => 'Symfony\\Bundle\\FrameworkBundle\\ContainerAwareEventDispatcher',
+ 'http_kernel.class' => 'Symfony\\Bundle\\FrameworkBundle\\HttpKernel',
+ 'error_handler.class' => 'Symfony\\Component\\HttpKernel\\Debug\\ErrorHandler',
+ 'filesystem.class' => 'Symfony\\Component\\HttpKernel\\Util\\Filesystem',
+ 'cache_warmer.class' => 'Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate',
+ 'cache_warmer.autoloader_map.class' => 'Symfony\\Bundle\\FrameworkBundle\\CacheWarmer\\ClassMapCacheWarmer',
+ 'file_locator.class' => 'Symfony\\Component\\HttpKernel\\Config\\FileLocator',
+ 'translator.class' => 'Symfony\\Bundle\\FrameworkBundle\\Translation\\Translator',
+ 'translator.identity.class' => 'Symfony\\Component\\Translation\\IdentityTranslator',
+ 'translator.selector.class' => 'Symfony\\Component\\Translation\\MessageSelector',
+ 'translation.loader.php.class' => 'Symfony\\Component\\Translation\\Loader\\PhpFileLoader',
+ 'translation.loader.yml.class' => 'Symfony\\Component\\Translation\\Loader\\YamlFileLoader',
+ 'translation.loader.xliff.class' => 'Symfony\\Component\\Translation\\Loader\\XliffFileLoader',
+ 'debug.event_dispatcher.class' => 'Symfony\\Bundle\\FrameworkBundle\\Debug\\TraceableEventDispatcher',
+ 'kernel.cache_warmup' => false,
+ 'profiler.class' => 'Symfony\\Component\\HttpKernel\\Profiler\\Profiler',
+ 'profiler_listener.class' => 'Symfony\\Bundle\\FrameworkBundle\\Profiler\\ProfilerListener',
+ 'data_collector.config.class' => 'Symfony\\Component\\HttpKernel\\DataCollector\\ConfigDataCollector',
+ 'data_collector.request.class' => 'Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RequestDataCollector',
+ 'data_collector.exception.class' => 'Symfony\\Component\\HttpKernel\\DataCollector\\ExceptionDataCollector',
+ 'data_collector.events.class' => 'Symfony\\Component\\HttpKernel\\DataCollector\\EventDataCollector',
+ 'data_collector.logger.class' => 'Symfony\\Component\\HttpKernel\\DataCollector\\LoggerDataCollector',
+ 'data_collector.timer.class' => 'Symfony\\Bundle\\FrameworkBundle\\DataCollector\\TimerDataCollector',
+ 'data_collector.memory.class' => 'Symfony\\Component\\HttpKernel\\DataCollector\\MemoryDataCollector',
+ 'router.class' => 'Symfony\\Component\\Routing\\Router',
+ 'router.cached.class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\CachedRouter',
+ 'routing.loader.class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\DelegatingLoader',
+ 'routing.resolver.class' => 'Symfony\\Component\\Config\\Loader\\LoaderResolver',
+ 'routing.loader.xml.class' => 'Symfony\\Component\\Routing\\Loader\\XmlFileLoader',
+ 'routing.loader.yml.class' => 'Symfony\\Component\\Routing\\Loader\\YamlFileLoader',
+ 'routing.loader.php.class' => 'Symfony\\Component\\Routing\\Loader\\PhpFileLoader',
+ 'router.options.generator_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
+ 'router.options.generator_base_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
+ 'router.options.generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper',
+ 'router.options.matcher_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher',
+ 'router.options.matcher_base_class' => 'Symfony\\Bundle\\FrameworkBundle\\Routing\\RedirectableUrlMatcher',
+ 'router.options.matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper',
+ 'router.cache_warmer.class' => 'Symfony\\Bundle\\FrameworkBundle\\CacheWarmer\\RouterCacheWarmer',
+ 'router.options.matcher.cache_class' => 'appdevUrlMatcher',
+ 'router.options.generator.cache_class' => 'appdevUrlGenerator',
+ 'router.options.resource_type' => '',
+ 'routing.resource' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/config/routing_dev.yml',
+ 'session.class' => 'Symfony\\Component\\HttpFoundation\\Session',
+ 'session.storage.native.class' => 'Symfony\\Component\\HttpFoundation\\SessionStorage\\NativeSessionStorage',
+ 'session.storage.native.options' => array(
+ 'lifetime' => 3600,
+ ),
+ 'session.storage.pdo.class' => 'Symfony\\Component\\HttpFoundation\\SessionStorage\\PdoSessionStorage',
+ 'session.storage.pdo.options' => array(
+
+ ),
+ 'session.storage.filesystem.class' => 'Symfony\\Component\\HttpFoundation\\SessionStorage\\FilesystemSessionStorage',
+ 'session.storage.filesystem.options' => array(
+
+ ),
+ 'templating.engine.delegating.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\DelegatingEngine',
+ 'templating.name_parser.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser',
+ 'templating.cache_warmer.template_paths.class' => 'Symfony\\Bundle\\FrameworkBundle\\CacheWarmer\\TemplatePathsCacheWarmer',
+ 'templating.locator.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\TemplateLocator',
+ 'templating.locator.cached.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\CachedTemplateLocator',
+ 'templating.loader.filesystem.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\FilesystemLoader',
+ 'templating.loader.cache.class' => 'Symfony\\Component\\Templating\\Loader\\CacheLoader',
+ 'templating.loader.chain.class' => 'Symfony\\Component\\Templating\\Loader\\ChainLoader',
+ 'templating.engine.php.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\PhpEngine',
+ 'templating.helper.slots.class' => 'Symfony\\Component\\Templating\\Helper\\SlotsHelper',
+ 'templating.helper.assets.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\AssetsHelper',
+ 'templating.helper.actions.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\ActionsHelper',
+ 'templating.helper.router.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\RouterHelper',
+ 'templating.helper.request.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\RequestHelper',
+ 'templating.helper.session.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\SessionHelper',
+ 'templating.helper.code.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\CodeHelper',
+ 'templating.helper.translator.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\TranslatorHelper',
+ 'templating.helper.form.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\FormHelper',
+ 'templating.globals.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\GlobalVariables',
+ 'templating.asset_package.class' => 'Symfony\\Component\\Templating\\Asset\\AssetPackage',
+ 'templating.debugger.class' => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Debugger',
+ 'templating.engines' => array(
+ 0 => 'twig',
+ ),
+ 'validator.class' => 'Symfony\\Component\\Validator\\Validator',
+ 'validator.mapping.class_metadata_factory.class' => 'Symfony\\Component\\Validator\\Mapping\\ClassMetadataFactory',
+ 'validator.mapping.cache.apc.class' => 'Symfony\\Component\\Validator\\Mapping\\Cache\\ApcCache',
+ 'validator.mapping.cache.prefix' => '',
+ 'validator.mapping.loader.loader_chain.class' => 'Symfony\\Component\\Validator\\Mapping\\Loader\\LoaderChain',
+ 'validator.mapping.loader.static_method_loader.class' => 'Symfony\\Component\\Validator\\Mapping\\Loader\\StaticMethodLoader',
+ 'validator.mapping.loader.annotation_loader.class' => 'Symfony\\Component\\Validator\\Mapping\\Loader\\AnnotationLoader',
+ 'validator.mapping.loader.xml_files_loader.class' => 'Symfony\\Component\\Validator\\Mapping\\Loader\\XmlFilesLoader',
+ 'validator.mapping.loader.yaml_files_loader.class' => 'Symfony\\Component\\Validator\\Mapping\\Loader\\YamlFilesLoader',
+ 'validator.validator_factory.class' => 'Symfony\\Bundle\\FrameworkBundle\\Validator\\ConstraintValidatorFactory',
+ 'security.context.class' => 'Symfony\\Component\\Security\\Core\\SecurityContext',
+ 'security.user_checker.class' => 'Symfony\\Component\\Security\\Core\\User\\UserChecker',
+ 'security.encoder_factory.generic.class' => 'Symfony\\Component\\Security\\Core\\Encoder\\EncoderFactory',
+ 'security.encoder.digest.class' => 'Symfony\\Component\\Security\\Core\\Encoder\\MessageDigestPasswordEncoder',
+ 'security.encoder.plain.class' => 'Symfony\\Component\\Security\\Core\\Encoder\\PlaintextPasswordEncoder',
+ 'security.user.provider.entity.class' => 'Symfony\\Component\\Security\\Core\\User\\EntityUserProvider',
+ 'security.user.provider.in_memory.class' => 'Symfony\\Component\\Security\\Core\\User\\InMemoryUserProvider',
+ 'security.user.provider.in_memory.user.class' => 'Symfony\\Component\\Security\\Core\\User\\User',
+ 'security.user.provider.chain.class' => 'Symfony\\Component\\Security\\Core\\User\\ChainUserProvider',
+ 'security.authentication.trust_resolver.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationTrustResolver',
+ 'security.authentication.trust_resolver.anonymous_class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\AnonymousToken',
+ 'security.authentication.trust_resolver.rememberme_class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Token\\RememberMeToken',
+ 'security.authentication.manager.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationProviderManager',
+ 'security.authentication.session_strategy.class' => 'Symfony\\Component\\Security\\Http\\Session\\SessionAuthenticationStrategy',
+ 'security.access.decision_manager.class' => 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManager',
+ 'security.access.simple_role_voter.class' => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\RoleVoter',
+ 'security.access.authenticated_voter.class' => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\AuthenticatedVoter',
+ 'security.access.role_hierarchy_voter.class' => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\RoleHierarchyVoter',
+ 'security.firewall.class' => 'Symfony\\Component\\Security\\Http\\Firewall',
+ 'security.firewall.map.class' => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallMap',
+ 'security.firewall.context.class' => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallContext',
+ 'security.matcher.class' => 'Symfony\\Component\\HttpFoundation\\RequestMatcher',
+ 'security.role_hierarchy.class' => 'Symfony\\Component\\Security\\Core\\Role\\RoleHierarchy',
+ 'security.authentication.retry_entry_point.class' => 'Symfony\\Component\\Security\\Http\\EntryPoint\\RetryAuthenticationEntryPoint',
+ 'security.channel_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\ChannelListener',
+ 'security.authentication.form_entry_point.class' => 'Symfony\\Component\\Security\\Http\\EntryPoint\\FormAuthenticationEntryPoint',
+ 'security.authentication.listener.form.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\UsernamePasswordFormAuthenticationListener',
+ 'security.authentication.listener.basic.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\BasicAuthenticationListener',
+ 'security.authentication.basic_entry_point.class' => 'Symfony\\Component\\Security\\Http\\EntryPoint\\BasicAuthenticationEntryPoint',
+ 'security.authentication.listener.digest.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\DigestAuthenticationListener',
+ 'security.authentication.digest_entry_point.class' => 'Symfony\\Component\\Security\\Http\\EntryPoint\\DigestAuthenticationEntryPoint',
+ 'security.authentication.listener.x509.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\X509AuthenticationListener',
+ 'security.authentication.listener.anonymous.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\AnonymousAuthenticationListener',
+ 'security.authentication.switchuser_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\SwitchUserListener',
+ 'security.logout_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\LogoutListener',
+ 'security.logout.handler.session.class' => 'Symfony\\Component\\Security\\Http\\Logout\\SessionLogoutHandler',
+ 'security.logout.handler.cookie_clearing.class' => 'Symfony\\Component\\Security\\Http\\Logout\\CookieClearingLogoutHandler',
+ 'security.access_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\AccessListener',
+ 'security.access_map.class' => 'Symfony\\Component\\Security\\Http\\AccessMap',
+ 'security.exception_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\ExceptionListener',
+ 'security.context_listener.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\ContextListener',
+ 'security.authentication.provider.dao.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Provider\\DaoAuthenticationProvider',
+ 'security.authentication.provider.pre_authenticated.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Provider\\PreAuthenticatedAuthenticationProvider',
+ 'security.authentication.provider.anonymous.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Provider\\AnonymousAuthenticationProvider',
+ 'security.authentication.provider.rememberme.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\Provider\\RememberMeAuthenticationProvider',
+ 'security.authentication.listener.rememberme.class' => 'Symfony\\Component\\Security\\Http\\Firewall\\RememberMeListener',
+ 'security.rembemerme.token.provider.in_memory.class' => 'Symfony\\Component\\Security\\Core\\Authentication\\RememberMe\\InMemoryTokenProvider',
+ 'security.authentication.rememberme.services.persistent.class' => 'Symfony\\Component\\Security\\Http\\RememberMe\\PersistentTokenBasedRememberMeServices',
+ 'security.authentication.rememberme.services.simplehash.class' => 'Symfony\\Component\\Security\\Http\\RememberMe\\TokenBasedRememberMeServices',
+ 'security.rememberme.response_listener.class' => 'Symfony\\Bundle\\SecurityBundle\\ResponseListener',
+ 'templating.helper.security.class' => 'Symfony\\Bundle\\SecurityBundle\\Templating\\Helper\\SecurityHelper',
+ 'data_collector.security.class' => 'Symfony\\Bundle\\SecurityBundle\\DataCollector\\SecurityDataCollector',
+ 'security.access.denied_url' => NULL,
+ 'security.access.always_authenticate_before_granting' => false,
+ 'security.role_hierarchy.roles' => array(
+ 'ROLE_ADMIN' => array(
+ 0 => 'ROLE_USER',
+ ),
+ 'ROLE_SUPER_ADMIN' => array(
+ 0 => 'ROLE_USER',
+ 1 => 'ROLE_ADMIN',
+ 2 => 'ROLE_ALLOWED_TO_SWITCH',
+ ),
+ ),
+ 'twig.class' => 'Twig_Environment',
+ 'twig.loader.class' => 'Symfony\\Bundle\\TwigBundle\\Loader\\FilesystemLoader',
+ 'templating.engine.twig.class' => 'Symfony\\Bundle\\TwigBundle\\TwigEngine',
+ 'twig.cache_warmer.class' => 'Symfony\\Bundle\\TwigBundle\\CacheWarmer\\TemplateCacheCacheWarmer',
+ 'twig.form.resources' => array(
+ 0 => 'TwigBundle::form.html.twig',
+ ),
+ 'twig.options' => array(
+ 'debug' => true,
+ 'strict_variables' => true,
+ 'cache' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/twig',
+ 'charset' => 'UTF-8',
+ ),
+ 'monolog.logger.class' => 'Symfony\\Bundle\\MonologBundle\\Logger\\Logger',
+ 'monolog.handler.stream.class' => 'Monolog\\Handler\\StreamHandler',
+ 'monolog.handler.fingers_crossed.class' => 'Monolog\\Handler\\FingersCrossedHandler',
+ 'monolog.handler.buffer.class' => 'Monolog\\Handler\\BufferHandler',
+ 'monolog.handler.rotating_file.class' => 'Monolog\\Handler\\RotatingFileHandler',
+ 'monolog.handler.syslog.class' => 'Monolog\\Handler\\SyslogHandler',
+ 'monolog.handler.null.class' => 'Monolog\\Handler\\NullHandler',
+ 'monolog.handler.test.class' => 'Monolog\\Handler\\TestHandler',
+ 'monolog.handler.debug.class' => 'Symfony\\Bundle\\MonologBundle\\Logger\\DebugHandler',
+ 'swiftmailer.class' => 'Swift_Mailer',
+ 'swiftmailer.transport.sendmail.class' => 'Swift_Transport_SendmailTransport',
+ 'swiftmailer.transport.mail.class' => 'Swift_Transport_MailTransport',
+ 'swiftmailer.transport.failover.class' => 'Swift_Transport_FailoverTransport',
+ 'swiftmailer.plugin.redirecting.class' => 'Swift_Plugins_RedirectingPlugin',
+ 'swiftmailer.plugin.blackhole.class' => 'Swift_Plugins_BlackholePlugin',
+ 'swiftmailer.plugin.messagelogger.class' => 'Symfony\\Bundle\\SwiftmailerBundle\\Logger\\MessageLogger',
+ 'swiftmailer.data_collector.class' => 'Symfony\\Bundle\\SwiftmailerBundle\\DataCollector\\MessageDataCollector',
+ 'swiftmailer.transport.smtp.class' => 'Swift_Transport_EsmtpTransport',
+ 'swiftmailer.transport.name' => 'smtp',
+ 'swiftmailer.transport.smtp.encryption' => NULL,
+ 'swiftmailer.transport.smtp.port' => 25,
+ 'swiftmailer.transport.smtp.host' => 'localhost',
+ 'swiftmailer.transport.smtp.username' => '',
+ 'swiftmailer.transport.smtp.password' => '',
+ 'swiftmailer.transport.smtp.auth_mode' => NULL,
+ 'swiftmailer.single_address' => NULL,
+ 'doctrine.dbal.default_connection' => 'default',
+ 'doctrine.dbal.logger.debug_class' => 'Doctrine\\DBAL\\Logging\\DebugStack',
+ 'doctrine.dbal.logger_class' => 'Symfony\\Bundle\\DoctrineBundle\\Logger\\DbalLogger',
+ 'doctrine.dbal.configuration_class' => 'Doctrine\\DBAL\\Configuration',
+ 'doctrine.data_collector.class' => 'Symfony\\Bundle\\DoctrineBundle\\DataCollector\\DoctrineDataCollector',
+ 'doctrine.dbal.event_manager_class' => 'Doctrine\\Common\\EventManager',
+ 'doctrine.dbal.connection_factory_class' => 'Symfony\\Bundle\\DoctrineBundle\\ConnectionFactory',
+ 'doctrine.dbal.events.mysql_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\MysqlSessionInit',
+ 'doctrine.dbal.events.oracle_session_init.class' => 'Doctrine\\DBAL\\Event\\Listeners\\OracleSessionInit',
+ 'doctrine.dbal.types' => array(
+
+ ),
+ 'doctrine.orm.default_entity_manager' => 'default',
+ 'doctrine.orm.configuration_class' => 'Doctrine\\ORM\\Configuration',
+ 'doctrine.orm.entity_manager_class' => 'Doctrine\\ORM\\EntityManager',
+ 'doctrine.orm.auto_generate_proxy_classes' => true,
+ 'doctrine.orm.entity_managers' => array(
+ 0 => 'default',
+ ),
+ 'doctrine.orm.proxy_namespace' => 'Proxies',
+ 'doctrine.orm.proxy_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/doctrine/orm/Proxies',
+ 'doctrine.orm.cache.array_class' => 'Doctrine\\Common\\Cache\\ArrayCache',
+ 'doctrine.orm.cache.apc_class' => 'Doctrine\\Common\\Cache\\ApcCache',
+ 'doctrine.orm.cache.memcache_class' => 'Doctrine\\Common\\Cache\\MemcacheCache',
+ 'doctrine.orm.cache.memcache_host' => 'localhost',
+ 'doctrine.orm.cache.memcache_port' => 11211,
+ 'doctrine.orm.cache.memcache_instance_class' => 'Memcache',
+ 'doctrine.orm.cache.xcache_class' => 'Doctrine\\Common\\Cache\\XcacheCache',
+ 'doctrine.orm.metadata.driver_chain_class' => 'Doctrine\\ORM\\Mapping\\Driver\\DriverChain',
+ 'doctrine.orm.metadata.annotation_class' => 'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver',
+ 'doctrine.orm.metadata.annotation_reader_class' => 'Doctrine\\Common\\Annotations\\AnnotationReader',
+ 'doctrine.orm.metadata.xml_class' => 'Doctrine\\ORM\\Mapping\\Driver\\XmlDriver',
+ 'doctrine.orm.metadata.yml_class' => 'Doctrine\\ORM\\Mapping\\Driver\\YamlDriver',
+ 'doctrine.orm.metadata.php_class' => 'Doctrine\\ORM\\Mapping\\Driver\\PHPDriver',
+ 'doctrine.orm.metadata.staticphp_class' => 'Doctrine\\ORM\\Mapping\\Driver\\StaticPHPDriver',
+ 'doctrine.orm.class_metadata_factory_name' => 'Doctrine\\ORM\\Mapping\\ClassMetadataFactory',
+ 'doctrine.orm.proxy_cache_warmer.class' => 'Symfony\\Bundle\\DoctrineBundle\\CacheWarmer\\ProxyCacheWarmer',
+ 'form.field_factory.doctrine_guesser.class' => 'Symfony\\Component\\Form\\FieldFactory\\EntityFieldFactoryGuesser',
+ 'assetic.asset_factory.class' => 'Symfony\\Bundle\\AsseticBundle\\Factory\\AssetFactory',
+ 'assetic.asset_manager.class' => 'Assetic\\Factory\\LazyAssetManager',
+ 'assetic.asset_manager_cache_warmer.class' => 'Symfony\\Bundle\\AsseticBundle\\CacheWarmer\\AssetManagerCacheWarmer',
+ 'assetic.cached_formula_loader.class' => 'Assetic\\Factory\\Loader\\CachedFormulaLoader',
+ 'assetic.config_cache.class' => 'Assetic\\Cache\\ConfigCache',
+ 'assetic.coalescing_directory_resource.class' => 'Assetic\\Factory\\Resource\\CoalescingDirectoryResource',
+ 'assetic.directory_resource.class' => 'Symfony\\Bundle\\AsseticBundle\\Factory\\Resource\\DirectoryResource',
+ 'assetic.filter_manager.class' => 'Symfony\\Bundle\\AsseticBundle\\FilterManager',
+ 'assetic.node.paths' => array(
+
+ ),
+ 'assetic.cache_dir' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/cache/dev/assetic',
+ 'assetic.twig_extension.dynamic.class' => 'Symfony\\Bundle\\AsseticBundle\\Twig\\DynamicExtension',
+ 'assetic.twig_extension.static.class' => 'Symfony\\Bundle\\AsseticBundle\\Twig\\StaticExtension',
+ 'assetic.twig_formula_loader.class' => 'Assetic\\Extension\\Twig\\TwigFormulaLoader',
+ 'assetic.helper.dynamic.class' => 'Symfony\\Bundle\\AsseticBundle\\Templating\\DynamicAsseticHelper',
+ 'assetic.helper.static.class' => 'Symfony\\Bundle\\AsseticBundle\\Templating\\StaticAsseticHelper',
+ 'assetic.php_formula_loader.class' => 'Symfony\\Bundle\\AsseticBundle\\Factory\\Loader\\AsseticHelperFormulaLoader',
+ 'assetic.debug' => true,
+ 'assetic.use_controller' => true,
+ 'assetic.read_from' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/../web',
+ 'assetic.write_to' => 'C:\\Users\\Geoffrey\\workspace\\TSEP\\app/../web',
+ 'assetic.java.bin' => '/usr/bin/java',
+ 'assetic.node.bin' => '/usr/bin/node',
+ 'assetic.sass.bin' => '/usr/bin/sass',
+ 'assetic.filter.cssrewrite.class' => 'Assetic\\Filter\\CssRewriteFilter',
+ 'assetic.controller.class' => 'Symfony\\Bundle\\AsseticBundle\\Controller\\AsseticController',
+ 'assetic.routing_loader.class' => 'Symfony\\Bundle\\AsseticBundle\\Routing\\AsseticLoader',
+ 'assetic.cache.class' => 'Assetic\\Cache\\FilesystemCache',
+ 'assetic.twig_extension.class' => 'Symfony\\Bundle\\AsseticBundle\\Twig\\DynamicExtension',
+ 'annotations.reader.class' => 'Doctrine\\Common\\Annotations\\AnnotationReader',
+ 'annotations.configuration_reader.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Configuration\\AnnotationReader',
+ 'annotations.parser.class' => 'Doctrine\\Common\\Annotations\\Parser',
+ 'annotations.controller_parser.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Controller\\ControllerAnnotationParser',
+ 'routing.loader.annot_glob.class' => 'Symfony\\Component\\Routing\\Loader\\AnnotationGlobLoader',
+ 'routing.loader.annot_dir.class' => 'Symfony\\Component\\Routing\\Loader\\AnnotationDirectoryLoader',
+ 'routing.loader.annot_file.class' => 'Symfony\\Component\\Routing\\Loader\\AnnotationFileLoader',
+ 'routing.loader.annot_class.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Routing\\AnnotatedRouteControllerLoader',
+ 'converter.listener.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Controller\\ParamConverterListener',
+ 'converter.manager.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\ParamConverterManager',
+ 'converter.doctrine.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\Request\\ParamConverter\\DoctrineParamConverter',
+ 'view.template_annotation.class' => 'Sensio\\Bundle\\FrameworkExtraBundle\\View\\AnnotationTemplateListener',
+ 'security.secured_services' => array(
+
+ ),
+ 'security.access.method_interceptor.class' => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\Interception\\MethodSecurityInterceptor',
+ 'security.access.run_as_manager.class' => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\RunAsManager',
+ 'security.authentication.provider.run_as.class' => 'JMS\\SecurityExtraBundle\\Security\\Authentication\\Provider\\RunAsAuthenticationProvider',
+ 'security.run_as.key' => 'RunAsToken',
+ 'security.run_as.role_prefix' => 'ROLE_',
+ 'security.access.after_invocation_manager.class' => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\AfterInvocation\\AfterInvocationManager',
+ 'security.access.after_invocation.acl_provider.class' => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\AfterInvocation\\AclAfterInvocationProvider',
+ 'security.extra.controller_listener.class' => 'JMS\\SecurityExtraBundle\\Controller\\ControllerListener',
+ 'security.access.iddqd_voter.class' => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\Voter\\IddqdVoter',
+ 'security.extra.secure_all_services' => false,
+ 'web_profiler.debug.toolbar.class' => 'Symfony\\Bundle\\WebProfilerBundle\\WebDebugToolbarListener',
+ 'symfony.webconfigurator.class' => 'Symfony\\Bundle\\WebConfiguratorBundle\\Configurator',
+ 'data_collector.templates' => array(
+ 'data_collector.config' => array(
+ 0 => 'config',
+ 1 => 'WebProfilerBundle:Collector:config',
+ ),
+ 'data_collector.request' => array(
+ 0 => 'request',
+ 1 => 'WebProfilerBundle:Collector:request',
+ ),
+ 'data_collector.exception' => array(
+ 0 => 'exception',
+ 1 => 'WebProfilerBundle:Collector:exception',
+ ),
+ 'data_collector.events' => array(
+ 0 => 'events',
+ 1 => 'WebProfilerBundle:Collector:events',
+ ),
+ 'data_collector.logger' => array(
+ 0 => 'logger',
+ 1 => 'WebProfilerBundle:Collector:logger',
+ ),
+ 'data_collector.timer' => array(
+ 0 => 'timer',
+ 1 => 'WebProfilerBundle:Collector:timer',
+ ),
+ 'data_collector.memory' => array(
+ 0 => 'memory',
+ 1 => 'WebProfilerBundle:Collector:memory',
+ ),
+ 'data_collector.security' => array(
+ 0 => 'security',
+ 1 => 'SecurityBundle:Collector:security',
+ ),
+ 'swiftmailer.data_collector' => array(
+ 0 => 'swiftmailer',
+ 1 => 'SwiftmailerBundle:Collector:swiftmailer',
+ ),
+ 'data_collector.doctrine' => array(
+ 0 => 'db',
+ 1 => 'DoctrineBundle:Collector:db',
+ ),
+ ),
+ 'kernel.compiled_classes' => array(
+ 0 => 'Symfony\\Component\\Routing\\RouterInterface',
+ 1 => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface',
+ 2 => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
+ 3 => 'Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface',
+ 4 => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
+ 5 => 'Symfony\\Component\\Routing\\Router',
+ 6 => 'Symfony\\Component\\HttpFoundation\\Session',
+ 7 => 'Symfony\\Component\\HttpFoundation\\SessionStorage\\SessionStorageInterface',
+ 9 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\EngineInterface',
+ 10 => 'Symfony\\Component\\Templating\\TemplateNameParserInterface',
+ 11 => 'Symfony\\Component\\Templating\\TemplateNameParser',
+ 12 => 'Symfony\\Component\\Templating\\EngineInterface',
+ 13 => 'Symfony\\Component\\Config\\FileLocatorInterface',
+ 14 => 'Symfony\\Component\\Templating\\TemplateReferenceInterface',
+ 15 => 'Symfony\\Component\\Templating\\TemplateReference',
+ 16 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateReference',
+ 17 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\TemplateNameParser',
+ 18 => 'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\TemplateLocator',
+ 19 => 'Symfony\\Component\\HttpFoundation\\ParameterBag',
+ 20 => 'Symfony\\Component\\HttpFoundation\\HeaderBag',
+ 21 => 'Symfony\\Component\\HttpFoundation\\Request',
+ 22 => 'Symfony\\Component\\HttpFoundation\\Response',
+ 23 => 'Symfony\\Component\\HttpFoundation\\ResponseHeaderBag',
+ 24 => 'Symfony\\Component\\EventDispatcher\\EventDispatcherInterface',
+ 25 => 'Symfony\\Component\\EventDispatcher\\EventDispatcher',
+ 26 => 'Symfony\\Component\\EventDispatcher\\Event',
+ 27 => 'Symfony\\Component\\EventDispatcher\\EventSubscriberInterface',
+ 28 => 'Symfony\\Component\\HttpKernel\\HttpKernel',
+ 29 => 'Symfony\\Component\\HttpKernel\\ResponseListener',
+ 30 => 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver',
+ 31 => 'Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface',
+ 32 => 'Symfony\\Component\\HttpKernel\\Event\\KernelEvent',
+ 33 => 'Symfony\\Component\\HttpKernel\\Event\\FilterControllerEvent',
+ 34 => 'Symfony\\Component\\HttpKernel\\Event\\FilterResponseEvent',
+ 35 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent',
+ 36 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForControllerResultEvent',
+ 37 => 'Symfony\\Component\\HttpKernel\\Event\\GetResponseForExceptionEvent',
+ 38 => 'Symfony\\Component\\HttpKernel\\Events',
+ 39 => 'Symfony\\Bundle\\FrameworkBundle\\RequestListener',
+ 40 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerNameParser',
+ 41 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\ControllerResolver',
+ 42 => 'Symfony\\Bundle\\FrameworkBundle\\Controller\\Controller',
+ 43 => 'Symfony\\Bundle\\FrameworkBundle\\ContainerAwareEventDispatcher',
+ 44 => 'Symfony\\Component\\Security\\Http\\Firewall',
+ 45 => 'Symfony\\Component\\Security\\Http\\FirewallMapInterface',
+ 46 => 'Symfony\\Component\\Security\\Core\\SecurityContext',
+ 47 => 'Symfony\\Component\\Security\\Core\\SecurityContextInterface',
+ 48 => 'Symfony\\Component\\Security\\Core\\User\\UserProviderInterface',
+ 49 => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationProviderManager',
+ 50 => 'Symfony\\Component\\Security\\Core\\Authentication\\AuthenticationManagerInterface',
+ 51 => 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManager',
+ 52 => 'Symfony\\Component\\Security\\Core\\Authorization\\AccessDecisionManagerInterface',
+ 53 => 'Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface',
+ 54 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallMap',
+ 55 => 'Symfony\\Bundle\\SecurityBundle\\Security\\FirewallContext',
+ 56 => 'Symfony\\Component\\HttpFoundation\\RequestMatcher',
+ 57 => 'Symfony\\Component\\HttpFoundation\\RequestMatcherInterface',
+ 58 => 'Twig_Environment',
+ 59 => 'Twig_ExtensionInterface',
+ 60 => 'Twig_Extension',
+ 61 => 'Twig_Extension_Core',
+ 62 => 'Twig_Extension_Escaper',
+ 63 => 'Twig_Extension_Optimizer',
+ 64 => 'Twig_LoaderInterface',
+ 65 => 'Twig_Markup',
+ 66 => 'Twig_TemplateInterface',
+ 67 => 'Twig_Template',
+ 68 => 'Monolog\\Formatter\\FormatterInterface',
+ 69 => 'Monolog\\Formatter\\LineFormatter',
+ 70 => 'Monolog\\Handler\\HandlerInterface',
+ 71 => 'Monolog\\Handler\\AbstractHandler',
+ 72 => 'Monolog\\Handler\\StreamHandler',
+ 73 => 'Monolog\\Handler\\FingersCrossedHandler',
+ 74 => 'Monolog\\Handler\\TestHandler',
+ 75 => 'Monolog\\Logger',
+ 76 => 'Symfony\\Bundle\\MonologBundle\\Logger\\Logger',
+ 77 => 'Symfony\\Bundle\\MonologBundle\\Logger\\DebugHandler',
+ 78 => 'JMS\\SecurityExtraBundle\\Controller\\ControllerListener',
+ 79 => 'JMS\\SecurityExtraBundle\\Mapping\\Driver\\AnnotationParser',
+ 80 => 'JMS\\SecurityExtraBundle\\Mapping\\Driver\\AnnotationConverter',
+ 81 => 'JMS\\SecurityExtraBundle\\Security\\Authorization\\Interception\\MethodInvocation',
+ ),
+ 'kernel.autoload_classes' => array(
+
+ ),
+ 'translation.loaders' => array(
+ 'translation.loader.php' => 'php',
+ 'translation.loader.yml' => 'yml',
+ 'translation.loader.xliff' => 'xliff',
+ ),
+ );
+ }
+}
=== added file 'app/cache/dev/appDevDebugProjectContainer.php.meta'
Binary files app/cache/dev/appDevDebugProjectContainer.php.meta 1970-01-01 00:00:00 +0000 and app/cache/dev/appDevDebugProjectContainer.php.meta 2011-04-24 02:44:25 +0000 differ
=== added file 'app/cache/dev/appDevDebugProjectContainerBuilder.cache'
Binary files app/cache/dev/appDevDebugProjectContainerBuilder.cache 1970-01-01 00:00:00 +0000 and app/cache/dev/appDevDebugProjectContainerBuilder.cache 2011-04-24 02:44:25 +0000 differ
=== added file 'app/cache/dev/appDevDebugProjectContainerCompiler.log'
--- app/cache/dev/appDevDebugProjectContainerCompiler.log 1970-01-01 00:00:00 +0000
+++ app/cache/dev/appDevDebugProjectContainerCompiler.log 2011-04-24 02:44:25 +0000
@@ -0,0 +1,274 @@
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory" (parent: security.user.provider.in_memory).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory_user" (parent: security.user.provider.in_memory.user).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.user.provider.concrete.in_memory_admin" (parent: security.user.provider.in_memory.user).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.profiler" (parent: security.firewall.context).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.wdt" (parent: security.firewall.context).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.login" (parent: security.firewall.context).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.context_listener.0" (parent: security.context_listener).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.logout_listener.secured_area" (parent: security.logout_listener).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.provider.dao.secured_area" (parent: security.authentication.provider.dao).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form" (parent: security.authentication.listener.abstract).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.listener.form.secured_area" (parent: security.authentication.listener.form).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.authentication.form_entry_point.secured_area" (parent: security.authentication.form_entry_point).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.exception_listener.secured_area" (parent: security.exception_listener).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "security.firewall.map.context.secured_area" (parent: security.firewall.context).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.request" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.event" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.profiler" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.router" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.templating" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.security" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass: Resolving inheritance for "monolog.logger.doctrine" (parent: monolog.logger_prototype).
+Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "security.user.entity_manager"; reason: private alias
+Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.dbal.event_manager"; reason: private alias
+Symfony\Component\DependencyInjection\Compiler\RemovePrivateAliasesPass: Removed service "doctrine.orm.default_entity_manager.event_manager"; reason: private alias
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.firewall.context"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.entity"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.in_memory.user"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.user.provider.chain"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout_listener"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.logout.handler.cookie_clearing"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.form_entry_point"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.abstract"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.form"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.x509"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.basic"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.digest"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.dao"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.pre_authenticated"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.exception_listener"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.switchuser_listener"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.listener.rememberme"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.provider.rememberme"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.abstract"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.persistent"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "security.authentication.rememberme.services.simplehash"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\RemoveAbstractDefinitionsPass: Removed service "monolog.logger_prototype"; reason: abstract
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "session" previously pointing to "session.storage.native" to "session.storage".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "templating.engine.php" previously pointing to "templating.loader.filesystem" to "templating.loader".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "assetic.twig_directory_resource.kernel" previously pointing to "templating.loader.filesystem" to "templating.loader".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "templating.cache_warmer.template_paths" previously pointing to "templating.locator.uncached" to "templating.locator".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "twig.loader" previously pointing to "templating.locator.uncached" to "templating.locator".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "templating.loader" previously pointing to "templating.locator.uncached" to "templating.locator".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "web_profiler.debug.toolbar" previously pointing to "templating.engine.twig" to "templating".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.authentication.provider.dao.secured_area" previously pointing to "security.encoder_factory.generic" to "security.encoder_factory".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "security.access.method_interceptor" previously pointing to "monolog.logger" to "logger".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.mailer" previously pointing to "swiftmailer.transport.smtp" to "swiftmailer.transport".
+Symfony\Component\DependencyInjection\Compiler\ReplaceAliasByActualDefinitionPass: Changed reference of service "swiftmailer.data_collector" previously pointing to "swiftmailer.mailer" to "mailer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.field_factory.validator_guesser" to "form.field_factory".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "form.field_factory.doctrine_guesser" to "form.field_factory".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "controller_resolver" to "http_kernel".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.asset_manager_cache_warmer" to "cache_warmer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "cache_warmer.autoload_map" to "cache_warmer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "router.cache_warmer" to "cache_warmer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.proxy_cache_warmer" to "cache_warmer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.xml" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.yml" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.php" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.routing_loader" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_glob" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_dir" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_file" to "routing.resolver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.resolver" to "routing.loader.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader" to "router.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "templating.engine.php" to "templating.helper.form".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.validator_factory" to "validator".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.mapping.loader.loader_chain" to "validator.mapping.class_metadata_factory".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.mapping.loader.annotation_loader" to "validator.mapping.loader.loader_chain".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.mapping.loader.static_method_loader" to "validator.mapping.loader.loader_chain".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.mapping.loader.xml_files_loader" to "validator.mapping.loader.loader_chain".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "validator.mapping.loader.yaml_files_loader" to "validator.mapping.loader.loader_chain".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.provider.dao.secured_area" to "security.authentication.manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.role_hierarchy_voter" to "security.access.decision_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.authenticated_voter" to "security.access.decision_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.role_hierarchy" to "security.access.role_hierarchy_voter".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.firewall.map" to "security.firewall".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.313aab41a20ebd40c91ea456237a6ffce0f855b79e53d9f72c8ed841d4d7b8fc5112d271" to "security.firewall.map".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.017c752fa653c32e6f7d8aaa2f7d7101cac640200f28fcab75c569aff2aed1bb64cfe9c5" to "security.firewall.map".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.f0de051d00ea9bc105cc27967060bf336409e8c54bfc98a85403102e08cb62719a07a429" to "security.firewall.map".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.request_matcher.db385754127e7fcab12a466fcf175d219b99de80b3e6760238e0a93e2fe89b91c0e80c46" to "security.firewall.map".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.retry_entry_point" to "security.channel_listener".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user.provider.concrete.in_memory_user" to "security.user.provider.concrete.in_memory".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user.provider.concrete.in_memory_admin" to "security.user.provider.concrete.in_memory".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout.handler.session" to "security.logout_listener.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.user_checker" to "security.authentication.provider.dao.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.session_strategy" to "security.authentication.listener.form.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.form_entry_point.secured_area" to "security.exception_listener.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.channel_listener" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.context_listener.0" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.logout_listener.secured_area" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.authentication.listener.form.secured_area" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_listener" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.exception_listener.secured_area" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.security" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.trans" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.helpers" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.routing" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.yaml" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "twig.extension.form" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_extension" to "twig".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.mailinvoker" to "swiftmailer.transport.mail".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.replacementfactory" to "swiftmailer.transport.buffer".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "05470b73fbb733331d09ccaeea16de96_1" to "swiftmailer.transport.authhandler".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "05470b73fbb733331d09ccaeea16de96_2" to "swiftmailer.transport.authhandler".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "05470b73fbb733331d09ccaeea16de96_3" to "swiftmailer.transport.authhandler".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.configuration" to "doctrine.dbal.default_connection".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.dbal.default_connection.event_manager" to "doctrine.dbal.default_connection".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_metadata_cache" to "doctrine.orm.default_configuration".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_query_cache" to "doctrine.orm.default_configuration".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_result_cache" to "doctrine.orm.default_configuration".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_metadata_driver" to "doctrine.orm.default_configuration".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.metadata.annotation_reader" to "doctrine.orm.default_annotation_metadata_driver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_annotation_metadata_driver" to "doctrine.orm.default_metadata_driver".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "doctrine.orm.default_configuration" to "doctrine.orm.default_entity_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.frameworkbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.securitybundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.twigbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.monologbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.swiftmailerbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.doctrinebundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.asseticbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.sensioframeworkextrabundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.jmssecurityextrabundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.acmedemobundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.tsepdevsearchbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.tsepdevadminbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.webprofilerbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.symfonywebconfiguratorbundle" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_directory_resource.kernel" to "assetic.asset_manager".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.twig_formula_loader.real" to "assetic.twig_formula_loader".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "assetic.config_cache" to "assetic.twig_formula_loader".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "annotations.cache.array" to "annotations.reader".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "annotations.cache.array" to "annotations.configuration_reader".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.after_invocation_manager" to "security.access.method_interceptor".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access.run_as_manager" to "security.access.method_interceptor".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.authhandler" to "swiftmailer.transport".
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "controller_resolver"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.field_factory.validator_guesser"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "cache_warmer.autoload_map"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.resolver"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.xml"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.yml"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.php"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "router.cache_warmer"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.pdo"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "session.storage.filesystem"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.engine.delegating"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.locator.cached"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.cache_warmer.template_paths"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.cache"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.loader.chain"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.engine.php"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.cache.apc"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.validator_factory"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.loader.loader_chain"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.loader.static_method_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.loader.annotation_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.loader.xml_files_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "validator.mapping.loader.yaml_files_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.session_strategy"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user_checker"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.role_hierarchy"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.authenticated_voter"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.role_hierarchy_voter"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.firewall.map"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.anonymous"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.anonymous"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.retry_entry_point"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.basic_entry_point"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.digest_entry_point"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.channel_listener"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout.handler.session"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_listener"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.rememberme.token.provider.in_memory"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.security"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user.provider.concrete.in_memory_user"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.user.provider.concrete.in_memory_admin"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.313aab41a20ebd40c91ea456237a6ffce0f855b79e53d9f72c8ed841d4d7b8fc5112d271"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.017c752fa653c32e6f7d8aaa2f7d7101cac640200f28fcab75c569aff2aed1bb64cfe9c5"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.f0de051d00ea9bc105cc27967060bf336409e8c54bfc98a85403102e08cb62719a07a429"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.request_matcher.db385754127e7fcab12a466fcf175d219b99de80b3e6760238e0a93e2fe89b91c0e80c46"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.context_listener.0"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.logout_listener.secured_area"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.provider.dao.secured_area"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.listener.form.secured_area"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.authentication.form_entry_point.secured_area"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.exception_listener.secured_area"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.cache_warmer"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.trans"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.helpers"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.routing"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.yaml"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.form"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.text"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "twig.extension.debug"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "05470b73fbb733331d09ccaeea16de96_3"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "05470b73fbb733331d09ccaeea16de96_2"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "05470b73fbb733331d09ccaeea16de96_1"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.sendmail"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.mail"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.failover"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.mailinvoker"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.authhandler"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.replacementfactory"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.null"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.plugin.redirecting"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.plugin.blackhole"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.logger.debug"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.configuration"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.dbal.default_connection.event_manager"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.metadata.annotation_reader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.proxy_cache_warmer"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "form.field_factory.doctrine_guesser"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_configuration"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_annotation_metadata_driver"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_metadata_driver"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_metadata_cache"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_result_cache"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "doctrine.orm.default_query_cache"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.config_cache"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.asset_manager_cache_warmer"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_extension"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_formula_loader.real"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.routing_loader"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.frameworkbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.securitybundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.twigbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.monologbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.swiftmailerbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.doctrinebundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.asseticbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.sensioframeworkextrabundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.jmssecurityextrabundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.acmedemobundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.tsepdevsearchbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.tsepdevadminbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.webprofilerbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.symfonywebconfiguratorbundle"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "assetic.twig_directory_resource.kernel"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.annot_glob"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.annot_dir"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.annot_file"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.run_as_manager"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.after_invocation_manager"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access.after_invocation.acl_provider"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.extra.iddqd_voter"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_class" to "routing.loader.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_class" to "routing.loader.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_class" to "routing.loader.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "routing.loader.annot_class" to "routing.loader.real".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "security.access_map" to "security.firewall.map.context.secured_area".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.buffer" to "swiftmailer.transport".
+Symfony\Component\DependencyInjection\Compiler\InlineServiceDefinitionsPass: Inlined service "swiftmailer.transport.eventdispatcher" to "swiftmailer.transport".
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "templating.debugger"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "security.access_map"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.buffer"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "swiftmailer.transport.eventdispatcher"; reason: unused
+Symfony\Component\DependencyInjection\Compiler\RemoveUnusedDefinitionsPass: Removed service "routing.loader.annot_class"; reason: unused
\ No newline at end of file
=== added file 'app/cache/dev/appdevUrlGenerator.php'
--- app/cache/dev/appdevUrlGenerator.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/appdevUrlGenerator.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,216 @@
+<?php
+
+/**
+ * appdevUrlGenerator
+ *
+ * This class has been auto-generated
+ * by the Symfony Routing Component.
+ */
+class appdevUrlGenerator extends Symfony\Component\Routing\Generator\UrlGenerator
+{
+ static private $declaredRouteNames = array(
+ '_wdt' => true,
+ '_profiler_search' => true,
+ '_profiler_purge' => true,
+ '_profiler_import' => true,
+ '_profiler_export' => true,
+ '_profiler_search_results' => true,
+ '_profiler' => true,
+ '_configurator_home' => true,
+ '_configurator_step' => true,
+ '_configurator_final' => true,
+ 'homepage' => true,
+ '_demo_login' => true,
+ '_security_check' => true,
+ '_demo_logout' => true,
+ 'acme_demo_secured_hello' => true,
+ '_demo_secured_hello' => true,
+ '_demo_secured_hello_admin' => true,
+ '_demo' => true,
+ '_demo_hello' => true,
+ '_demo_contact' => true,
+ );
+
+ /**
+ * Constructor.
+ */
+ public function __construct(array $context = array(), array $defaults = array())
+ {
+ $this->context = $context;
+ $this->defaults = $defaults;
+ }
+
+ public function generate($name, array $parameters = array(), $absolute = false)
+ {
+ if (!isset(self::$declaredRouteNames[$name])) {
+ throw new \InvalidArgumentException(sprintf('Route "%s" does not exist.', $name));
+ }
+
+ $escapedName = str_replace('.', '__', $name);
+
+ list($variables, $defaults, $requirements, $tokens) = $this->{'get'.$escapedName.'RouteInfo'}();
+
+ return $this->doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $absolute);
+ }
+
+ private function get_wdtRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::toolbarAction';
+
+ return array(array ( 'token' => '{token}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{token}', 3 => 'token', ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_wdt', 3 => NULL, ),));
+ }
+
+ private function get_profiler_searchRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::searchAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'search', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_profiler_purgeRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::purgeAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'purge', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_profiler_importRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::importAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'import', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_profiler_exportRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::exportAction';
+
+ return array(array ( 'token' => '{token}',), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '.', 2 => 'txt', 3 => NULL, ), 1 => array ( 0 => 'variable', 1 => '/', 2 => '{token}', 3 => 'token', ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'export', 3 => NULL, ), 3 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_profiler_search_resultsRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::searchResultsAction';
+
+ return array(array ( 'token' => '{token}',), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'results', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'search', 3 => NULL, ), 2 => array ( 0 => 'variable', 1 => '/', 2 => '{token}', 3 => 'token', ), 3 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_profilerRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::panelAction';
+
+ return array(array ( 'token' => '{token}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{token}', 3 => 'token', ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_profiler', 3 => NULL, ),));
+ }
+
+ private function get_configurator_homeRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::checkAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => '', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_configurator', 3 => NULL, ),));
+ }
+
+ private function get_configurator_stepRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::stepAction';
+
+ return array(array ( 'index' => '{index}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{index}', 3 => 'index', ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'step', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => '_configurator', 3 => NULL, ),));
+ }
+
+ private function get_configurator_finalRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::finalAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'final', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => '_configurator', 3 => NULL, ),));
+ }
+
+ private function gethomepageRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'TsepDev\\Bundle\\SearchBundle\\Controller\\PageController::searchAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => '', 3 => NULL, ),));
+ }
+
+ private function get_demo_loginRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::loginAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'login', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_security_checkRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::securityCheckAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'login_check', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demo_logoutRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::logoutAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'logout', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function getacme_demo_secured_helloRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['name'] = 'World';
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::helloAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'hello', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demo_secured_helloRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::helloAction';
+
+ return array(array ( 'name' => '{name}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{name}', 3 => 'name', ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'hello', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 3 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demo_secured_hello_adminRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\SecuredController::helloadminAction';
+
+ return array(array ( 'name' => '{name}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{name}', 3 => 'name', ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'admin', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'hello', 3 => NULL, ), 3 => array ( 0 => 'text', 1 => '/', 2 => 'secured', 3 => NULL, ), 4 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demoRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\DemoController::indexAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => '', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demo_helloRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\DemoController::helloAction';
+
+ return array(array ( 'name' => '{name}',), $defaults, array (), array ( 0 => array ( 0 => 'variable', 1 => '/', 2 => '{name}', 3 => 'name', ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'hello', 3 => NULL, ), 2 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+
+ private function get_demo_contactRouteInfo()
+ {
+ $defaults = $this->defaults;
+ $defaults['_controller'] = 'Acme\\DemoBundle\\Controller\\DemoController::contactAction';
+
+ return array(array (), $defaults, array (), array ( 0 => array ( 0 => 'text', 1 => '/', 2 => 'contact', 3 => NULL, ), 1 => array ( 0 => 'text', 1 => '/', 2 => 'demo', 3 => NULL, ),));
+ }
+}
=== added file 'app/cache/dev/appdevUrlGenerator.php.meta'
Binary files app/cache/dev/appdevUrlGenerator.php.meta 1970-01-01 00:00:00 +0000 and app/cache/dev/appdevUrlGenerator.php.meta 2011-04-24 02:44:25 +0000 differ
=== added file 'app/cache/dev/appdevUrlMatcher.php'
--- app/cache/dev/appdevUrlMatcher.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/appdevUrlMatcher.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,138 @@
+<?php
+
+use Symfony\Component\Routing\Matcher\Exception\MethodNotAllowedException;
+use Symfony\Component\Routing\Matcher\Exception\NotFoundException;
+
+/**
+ * appdevUrlMatcher
+ *
+ * This class has been auto-generated
+ * by the Symfony Routing Component.
+ */
+class appdevUrlMatcher extends Symfony\Bundle\FrameworkBundle\Routing\RedirectableUrlMatcher
+{
+ /**
+ * Constructor.
+ */
+ public function __construct(array $context = array(), array $defaults = array())
+ {
+ $this->context = $context;
+ $this->defaults = $defaults;
+ }
+
+ public function match($pathinfo)
+ {
+ $allow = array();
+
+ // _wdt
+ if (0 === strpos($pathinfo, '/_wdt') && preg_match('#^/_wdt/(?P<token>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::toolbarAction',)), array('_route' => '_wdt'));
+ }
+
+ // _profiler_search
+ if ($pathinfo === '/_profiler/search') {
+ return array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::searchAction', '_route' => '_profiler_search',);
+ }
+
+ // _profiler_purge
+ if ($pathinfo === '/_profiler/purge') {
+ return array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::purgeAction', '_route' => '_profiler_purge',);
+ }
+
+ // _profiler_import
+ if ($pathinfo === '/_profiler/import') {
+ return array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::importAction', '_route' => '_profiler_import',);
+ }
+
+ // _profiler_export
+ if (0 === strpos($pathinfo, '/_profiler/export') && preg_match('#^/_profiler/export/(?P<token>[^/\.]+?)\.txt$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::exportAction',)), array('_route' => '_profiler_export'));
+ }
+
+ // _profiler_search_results
+ if (0 === strpos($pathinfo, '/_profiler') && preg_match('#^/_profiler/(?P<token>[^/\.]+?)/search/results$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::searchResultsAction',)), array('_route' => '_profiler_search_results'));
+ }
+
+ // _profiler
+ if (0 === strpos($pathinfo, '/_profiler') && preg_match('#^/_profiler/(?P<token>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Symfony\\Bundle\\WebProfilerBundle\\Controller\\ProfilerController::panelAction',)), array('_route' => '_profiler'));
+ }
+
+ // _configurator_home
+ if (rtrim($pathinfo, '/') === '/_configurator') {
+ if (substr($pathinfo, -1) !== '/') {
+ return $this->redirect($pathinfo.'/', '_configurator_home');
+ }
+ return array ( '_controller' => 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::checkAction', '_route' => '_configurator_home',);
+ }
+
+ // _configurator_step
+ if (0 === strpos($pathinfo, '/_configurator/step') && preg_match('#^/_configurator/step/(?P<index>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::stepAction',)), array('_route' => '_configurator_step'));
+ }
+
+ // _configurator_final
+ if ($pathinfo === '/_configurator/final') {
+ return array ( '_controller' => 'Symfony\\Bundle\\WebConfiguratorBundle\\Controller\\ConfiguratorController::finalAction', '_route' => '_configurator_final',);
+ }
+
+ // homepage
+ if (rtrim($pathinfo, '/') === '') {
+ if (substr($pathinfo, -1) !== '/') {
+ return $this->redirect($pathinfo.'/', 'homepage');
+ }
+ return array ( '_controller' => 'TsepDev\\Bundle\\SearchBundle\\Controller\\PageController::searchAction', '_route' => 'homepage',);
+ }
+
+ // _demo_login
+ if ($pathinfo === '/demo/secured/login') {
+ return array ( '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::loginAction', '_route' => '_demo_login',);
+ }
+
+ // _security_check
+ if ($pathinfo === '/demo/secured/login_check') {
+ return array ( '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::securityCheckAction', '_route' => '_security_check',);
+ }
+
+ // _demo_logout
+ if ($pathinfo === '/demo/secured/logout') {
+ return array ( '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::logoutAction', '_route' => '_demo_logout',);
+ }
+
+ // acme_demo_secured_hello
+ if ($pathinfo === '/demo/secured/hello') {
+ return array ( 'name' => 'World', '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::helloAction', '_route' => 'acme_demo_secured_hello',);
+ }
+
+ // _demo_secured_hello
+ if (0 === strpos($pathinfo, '/demo/secured/hello') && preg_match('#^/demo/secured/hello/(?P<name>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::helloAction',)), array('_route' => '_demo_secured_hello'));
+ }
+
+ // _demo_secured_hello_admin
+ if (0 === strpos($pathinfo, '/demo/secured/hello/admin') && preg_match('#^/demo/secured/hello/admin/(?P<name>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Acme\\DemoBundle\\Controller\\SecuredController::helloadminAction',)), array('_route' => '_demo_secured_hello_admin'));
+ }
+
+ // _demo
+ if (rtrim($pathinfo, '/') === '/demo') {
+ if (substr($pathinfo, -1) !== '/') {
+ return $this->redirect($pathinfo.'/', '_demo');
+ }
+ return array ( '_controller' => 'Acme\\DemoBundle\\Controller\\DemoController::indexAction', '_route' => '_demo',);
+ }
+
+ // _demo_hello
+ if (0 === strpos($pathinfo, '/demo/hello') && preg_match('#^/demo/hello/(?P<name>[^/\.]+?)$#x', $pathinfo, $matches)) {
+ return array_merge($this->mergeDefaults($matches, array ( '_controller' => 'Acme\\DemoBundle\\Controller\\DemoController::helloAction',)), array('_route' => '_demo_hello'));
+ }
+
+ // _demo_contact
+ if ($pathinfo === '/demo/contact') {
+ return array ( '_controller' => 'Acme\\DemoBundle\\Controller\\DemoController::contactAction', '_route' => '_demo_contact',);
+ }
+
+ throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new NotFoundException();
+ }
+}
=== added file 'app/cache/dev/appdevUrlMatcher.php.meta'
Binary files app/cache/dev/appdevUrlMatcher.php.meta 1970-01-01 00:00:00 +0000 and app/cache/dev/appdevUrlMatcher.php.meta 2011-04-24 02:44:25 +0000 differ
=== added directory 'app/cache/dev/assetic'
=== added directory 'app/cache/dev/assetic/config'
=== added directory 'app/cache/dev/assetic/config/0'
=== added file 'app/cache/dev/assetic/config/0/03879884a82d9b704d3cbe3a044d4150.php'
--- app/cache/dev/assetic/config/0/03879884a82d9b704d3cbe3a044d4150.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/03879884a82d9b704d3cbe3a044d4150.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\base.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/05aeff2e8c00531a0fb635821fc19f11.php'
--- app/cache/dev/assetic/config/0/05aeff2e8c00531a0fb635821fc19f11.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/05aeff2e8c00531a0fb635821fc19f11.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\layout.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/06ec3d16f99c4a99becccda11b48f8a8.php'
--- app/cache/dev/assetic/config/0/06ec3d16f99c4a99becccda11b48f8a8.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/06ec3d16f99c4a99becccda11b48f8a8.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.json.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/078a960e0da2413bf5dd1b2281d219eb.php'
--- app/cache/dev/assetic/config/0/078a960e0da2413bf5dd1b2281d219eb.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/078a960e0da2413bf5dd1b2281d219eb.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\events.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/094e7b2eb92bd10ab3d251f4722fe320.php'
--- app/cache/dev/assetic/config/0/094e7b2eb92bd10ab3d251f4722fe320.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/094e7b2eb92bd10ab3d251f4722fe320.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.atom.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/0afe302cd9b3bf41990ab1b71490286f.php'
--- app/cache/dev/assetic/config/0/0afe302cd9b3bf41990ab1b71490286f.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/0afe302cd9b3bf41990ab1b71490286f.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\bag.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/0dcbd6555f80763b212ebc737e44cb4c.php'
--- app/cache/dev/assetic/config/0/0dcbd6555f80763b212ebc737e44cb4c.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/0dcbd6555f80763b212ebc737e44cb4c.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Secured\layout.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/0e7f4d97df3a80aa285749fb491682e8.php'
--- app/cache/dev/assetic/config/0/0e7f4d97df3a80aa285749fb491682e8.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/0e7f4d97df3a80aa285749fb491682e8.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\Step\csrf.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/0f953d0f5bf3568dbe259947bc811d97.php'
--- app/cache/dev/assetic/config/0/0f953d0f5bf3568dbe259947bc811d97.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/0f953d0f5bf3568dbe259947bc811d97.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\logs.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/0/0fb48390c3fbca70e7c1a1bdb5592cef.php'
--- app/cache/dev/assetic/config/0/0fb48390c3fbca70e7c1a1bdb5592cef.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/0/0fb48390c3fbca70e7c1a1bdb5592cef.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Secured\hello.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/1'
=== added file 'app/cache/dev/assetic/config/1/128cae3c5cd81aa0b9bfb8d658b625b2.php'
--- app/cache/dev/assetic/config/1/128cae3c5cd81aa0b9bfb8d658b625b2.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/128cae3c5cd81aa0b9bfb8d658b625b2.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TsepDev\Bundle\SearchBundle/Resources/views\Indices\search.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/131baff138627b78b6509155101624f3.php'
--- app/cache/dev/assetic/config/1/131baff138627b78b6509155101624f3.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/131baff138627b78b6509155101624f3.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\request.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/142b0f22e2f0fdd75b0e908562886661.php'
--- app/cache/dev/assetic/config/1/142b0f22e2f0fdd75b0e908562886661.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/142b0f22e2f0fdd75b0e908562886661.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TsepDev\Bundle\SearchBundle/Resources/views\layout.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/14f3ecd1b211fe3b59145a6fe6a26efc.php'
--- app/cache/dev/assetic/config/1/14f3ecd1b211fe3b59145a6fe6a26efc.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/14f3ecd1b211fe3b59145a6fe6a26efc.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\config.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/1ce079b0c966bde54a5851c898bf711a.php'
--- app/cache/dev/assetic/config/1/1ce079b0c966bde54a5851c898bf711a.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/1ce079b0c966bde54a5851c898bf711a.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\app/Resources/views\base.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/1f5916ca1f4b7b8dbfb8e8910bd08f3f.php'
--- app/cache/dev/assetic/config/1/1f5916ca1f4b7b8dbfb8e8910bd08f3f.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/1f5916ca1f4b7b8dbfb8e8910bd08f3f.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/1/1fb86625c7fe99a302377b61e5956a09.php'
--- app/cache/dev/assetic/config/1/1fb86625c7fe99a302377b61e5956a09.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/1/1fb86625c7fe99a302377b61e5956a09.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\search.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/2'
=== added file 'app/cache/dev/assetic/config/2/207d9e6ab5c81e596b004d14c54d99b9.php'
--- app/cache/dev/assetic/config/2/207d9e6ab5c81e596b004d14c54d99b9.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/2/207d9e6ab5c81e596b004d14c54d99b9.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.js.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/2/20e30c8e894103953bc74b5a172095d6.php'
--- app/cache/dev/assetic/config/2/20e30c8e894103953bc74b5a172095d6.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/2/20e30c8e894103953bc74b5a172095d6.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Demo\contact.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/2/2558172bd58e5bc51c8bd053669b554d.php'
--- app/cache/dev/assetic/config/2/2558172bd58e5bc51c8bd053669b554d.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/2/2558172bd58e5bc51c8bd053669b554d.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.txt.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/4'
=== added file 'app/cache/dev/assetic/config/4/403d24d8980d53d48823d867eaa13c1f.php'
--- app/cache/dev/assetic/config/4/403d24d8980d53d48823d867eaa13c1f.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/4/403d24d8980d53d48823d867eaa13c1f.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.xml.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/4/41b02ea1dd5130422fc120f63b9932bd.php'
--- app/cache/dev/assetic/config/4/41b02ea1dd5130422fc120f63b9932bd.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/4/41b02ea1dd5130422fc120f63b9932bd.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Secured\helloadmin.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/4/46b6dc38354015a462d9925fbc53f9a3.php'
--- app/cache/dev/assetic/config/4/46b6dc38354015a462d9925fbc53f9a3.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/4/46b6dc38354015a462d9925fbc53f9a3.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\logger.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/4/46bd8c00125f6e6c3cfdc46be48fb48e.php'
--- app/cache/dev/assetic/config/4/46bd8c00125f6e6c3cfdc46be48fb48e.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/4/46bd8c00125f6e6c3cfdc46be48fb48e.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.rdf.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/4/498fa37cc682c424af5191b43629a464.php'
--- app/cache/dev/assetic/config/4/498fa37cc682c424af5191b43629a464.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/4/498fa37cc682c424af5191b43629a464.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\check.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/5'
=== added file 'app/cache/dev/assetic/config/5/567fc39ed6d89499c5d0872a775a125a.php'
--- app/cache/dev/assetic/config/5/567fc39ed6d89499c5d0872a775a125a.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/5/567fc39ed6d89499c5d0872a775a125a.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\steps.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/5/572233b2e1a6f3abae709c3154bbe5ab.php'
--- app/cache/dev/assetic/config/5/572233b2e1a6f3abae709c3154bbe5ab.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/5/572233b2e1a6f3abae709c3154bbe5ab.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\Step\doctrine.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/5/587cd7e235d948e7e0439e339d9c137d.php'
--- app/cache/dev/assetic/config/5/587cd7e235d948e7e0439e339d9c137d.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/5/587cd7e235d948e7e0439e339d9c137d.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception_full.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/5/5f0ab1c2ef5c577d85f90473f1e70736.php'
--- app/cache/dev/assetic/config/5/5f0ab1c2ef5c577d85f90473f1e70736.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/5/5f0ab1c2ef5c577d85f90473f1e70736.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\results.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/6'
=== added file 'app/cache/dev/assetic/config/6/60eaf202fe2bf534ff562adbe972c70c.php'
--- app/cache/dev/assetic/config/6/60eaf202fe2bf534ff562adbe972c70c.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/6/60eaf202fe2bf534ff562adbe972c70c.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\DoctrineBundle/Resources/views\Collector\db.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/6/617ed98ba2f20888eddbde1b055eb566.php'
--- app/cache/dev/assetic/config/6/617ed98ba2f20888eddbde1b055eb566.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/6/617ed98ba2f20888eddbde1b055eb566.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\layout.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/7'
=== added file 'app/cache/dev/assetic/config/7/7209b3d6cf89147bec1f14e79fb9c48c.php'
--- app/cache/dev/assetic/config/7/7209b3d6cf89147bec1f14e79fb9c48c.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/7209b3d6cf89147bec1f14e79fb9c48c.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\trace.txt.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/729d251327108b661708f7b4024b21cc.php'
--- app/cache/dev/assetic/config/7/729d251327108b661708f7b4024b21cc.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/729d251327108b661708f7b4024b21cc.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\toolbar_item.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/7373e800d0fb86362227d4fb6b6fb781.php'
--- app/cache/dev/assetic/config/7/7373e800d0fb86362227d4fb6b6fb781.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/7373e800d0fb86362227d4fb6b6fb781.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TSEP\SearchBundle/Resources/views\Default\index.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/74f09699b0b9d3437f5fc711a7a66654.php'
--- app/cache/dev/assetic/config/7/74f09699b0b9d3437f5fc711a7a66654.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/74f09699b0b9d3437f5fc711a7a66654.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TsepDev\Bundle\SearchBundle/Resources/views\Page\search.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/79b34b5cb173de1eb44dc99932e77706.php'
--- app/cache/dev/assetic/config/7/79b34b5cb173de1eb44dc99932e77706.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/79b34b5cb173de1eb44dc99932e77706.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.xml.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/7a436d85d33a659cee3b4c1d979d7ee2.php'
--- app/cache/dev/assetic/config/7/7a436d85d33a659cee3b4c1d979d7ee2.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/7a436d85d33a659cee3b4c1d979d7ee2.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\timer.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/7/7ae05265acf8eead1a58a79d10bd01a0.php'
--- app/cache/dev/assetic/config/7/7ae05265acf8eead1a58a79d10bd01a0.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/7/7ae05265acf8eead1a58a79d10bd01a0.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\toolbar.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/8'
=== added file 'app/cache/dev/assetic/config/8/8189f0983466bfca0bbdfbbf53ef5f31.php'
--- app/cache/dev/assetic/config/8/8189f0983466bfca0bbdfbbf53ef5f31.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/8189f0983466bfca0bbdfbbf53ef5f31.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\notfound.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/8/86367af991aa66ff601405fd0f10a428.php'
--- app/cache/dev/assetic/config/8/86367af991aa66ff601405fd0f10a428.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/86367af991aa66ff601405fd0f10a428.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\exception.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/8/86b2a1e8929385e45c38006de3af6fe8.php'
--- app/cache/dev/assetic/config/8/86b2a1e8929385e45c38006de3af6fe8.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/86b2a1e8929385e45c38006de3af6fe8.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Welcome\index.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/8/896351c5782437fa6e4f504d0f7de174.php'
--- app/cache/dev/assetic/config/8/896351c5782437fa6e4f504d0f7de174.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/896351c5782437fa6e4f504d0f7de174.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Secured\login.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/8/8dc751b4c186970236d06b8f46db6c5b.php'
--- app/cache/dev/assetic/config/8/8dc751b4c186970236d06b8f46db6c5b.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/8dc751b4c186970236d06b8f46db6c5b.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\layout.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/8/8ff25553e1bfb77ecf25a4e67451f324.php'
--- app/cache/dev/assetic/config/8/8ff25553e1bfb77ecf25a4e67451f324.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/8/8ff25553e1bfb77ecf25a4e67451f324.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\toolbar_redirect.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/9'
=== added file 'app/cache/dev/assetic/config/9/97a07278e04a514ec5a46d2b48bbac56.php'
--- app/cache/dev/assetic/config/9/97a07278e04a514ec5a46d2b48bbac56.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/9/97a07278e04a514ec5a46d2b48bbac56.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\layout.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/a'
=== added file 'app/cache/dev/assetic/config/a/a4d5bb11b6d171e09e26c7e9d1b1e08b.php'
--- app/cache/dev/assetic/config/a/a4d5bb11b6d171e09e26c7e9d1b1e08b.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/a4d5bb11b6d171e09e26c7e9d1b1e08b.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\toolbar_js.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/a64758177efda9443a3cc1678812406c.php'
--- app/cache/dev/assetic/config/a/a64758177efda9443a3cc1678812406c.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/a64758177efda9443a3cc1678812406c.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\trace.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/a8551bb9cf08809868d751b7de019add.php'
--- app/cache/dev/assetic/config/a/a8551bb9cf08809868d751b7de019add.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/a8551bb9cf08809868d751b7de019add.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.txt.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/aa74017f679f1d3d943047408903fe5f.php'
--- app/cache/dev/assetic/config/a/aa74017f679f1d3d943047408903fe5f.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/aa74017f679f1d3d943047408903fe5f.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Collector\memory.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/ab3988806233ae9e6d1bbab5de038537.php'
--- app/cache/dev/assetic/config/a/ab3988806233ae9e6d1bbab5de038537.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/ab3988806233ae9e6d1bbab5de038537.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TsepDev\Bundle\SearchBundle/Resources/views\Default\index.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/aed8c733bbbf54336dc10c8f2e4f2b65.php'
--- app/cache/dev/assetic/config/a/aed8c733bbbf54336dc10c8f2e4f2b65.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/aed8c733bbbf54336dc10c8f2e4f2b65.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.json.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/a/aedae8ce85d4aff42774e1a19b711a6b.php'
--- app/cache/dev/assetic/config/a/aedae8ce85d4aff42774e1a19b711a6b.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/a/aedae8ce85d4aff42774e1a19b711a6b.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\traces.xml.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/c'
=== added file 'app/cache/dev/assetic/config/c/c165414682b8af968680e4b8fc69a047.php'
--- app/cache/dev/assetic/config/c/c165414682b8af968680e4b8fc69a047.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c165414682b8af968680e4b8fc69a047.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TsepDev\Bundle\AdminBundle/Resources/views\Default\index.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/c/c191f442265b50c3c1f20736a47ee9a2.php'
--- app/cache/dev/assetic/config/c/c191f442265b50c3c1f20736a47ee9a2.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c191f442265b50c3c1f20736a47ee9a2.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Demo\hello.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/c/c1c96cde3780b9457b630e352a3ac656.php'
--- app/cache/dev/assetic/config/c/c1c96cde3780b9457b630e352a3ac656.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c1c96cde3780b9457b630e352a3ac656.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.rdf.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/c/c2e67948fa34bbf4dfbbe07aada5c630.php'
--- app/cache/dev/assetic/config/c/c2e67948fa34bbf4dfbbe07aada5c630.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c2e67948fa34bbf4dfbbe07aada5c630.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\traces.txt.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/c/c5a9094b8d133ede02e1f863519bfa9b.php'
--- app/cache/dev/assetic/config/c/c5a9094b8d133ede02e1f863519bfa9b.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c5a9094b8d133ede02e1f863519bfa9b.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/c/c8da098fab75e4bbd96031243ab6740f.php'
--- app/cache/dev/assetic/config/c/c8da098fab75e4bbd96031243ab6740f.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/c/c8da098fab75e4bbd96031243ab6740f.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.css.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/d'
=== added file 'app/cache/dev/assetic/config/d/d50815322b0371eea6706e92358688ad.php'
--- app/cache/dev/assetic/config/d/d50815322b0371eea6706e92358688ad.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/d/d50815322b0371eea6706e92358688ad.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\Acme\DemoBundle/Resources/views\Demo\index.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/d/dd552ee1060b34479ccc2438e7c47c05.php'
--- app/cache/dev/assetic/config/d/dd552ee1060b34479ccc2438e7c47c05.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/d/dd552ee1060b34479ccc2438e7c47c05.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.js.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/e'
=== added file 'app/cache/dev/assetic/config/e/e0533802bffc2fe0800d04518903c7ce.php'
--- app/cache/dev/assetic/config/e/e0533802bffc2fe0800d04518903c7ce.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e0533802bffc2fe0800d04518903c7ce.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\error.atom.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e2c230dd1d9c85e33f41b3c16ac3aa1a.php'
--- app/cache/dev/assetic/config/e/e2c230dd1d9c85e33f41b3c16ac3aa1a.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e2c230dd1d9c85e33f41b3c16ac3aa1a.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\admin.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e3384dde3208959259e26a93e450b3d8.php'
--- app/cache/dev/assetic/config/e/e3384dde3208959259e26a93e450b3d8.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e3384dde3208959259e26a93e450b3d8.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\SecurityBundle/Resources/views\Collector\security.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e5a9eb12dbd2e0649ae1410ed2f35378.php'
--- app/cache/dev/assetic/config/e/e5a9eb12dbd2e0649ae1410ed2f35378.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e5a9eb12dbd2e0649ae1410ed2f35378.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\WebProfilerBundle/Resources/views\Profiler\header.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e6aa71263b065d238155ba4e07db5fcf.php'
--- app/cache/dev/assetic/config/e/e6aa71263b065d238155ba4e07db5fcf.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e6aa71263b065d238155ba4e07db5fcf.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\form.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e6e4bbb131adb47aa061bd9a45965498.php'
--- app/cache/dev/assetic/config/e/e6e4bbb131adb47aa061bd9a45965498.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e6e4bbb131adb47aa061bd9a45965498.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\TwigBundle/Resources/views\form.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/e97206779e98907246b15d6e4681ae13.php'
--- app/cache/dev/assetic/config/e/e97206779e98907246b15d6e4681ae13.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/e97206779e98907246b15d6e4681ae13.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\exception.css.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/eac75a6448ce142057d739644355e836.php'
--- app/cache/dev/assetic/config/e/eac75a6448ce142057d739644355e836.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/eac75a6448ce142057d739644355e836.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\SwiftmailerBundle/Resources/views\Collector\swiftmailer.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/ec22b23aaea2eafe03ece3a2a9eee802.php'
--- app/cache/dev/assetic/config/e/ec22b23aaea2eafe03ece3a2a9eee802.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/ec22b23aaea2eafe03ece3a2a9eee802.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\bundles\Symfony\Bundle\WebConfiguratorBundle/Resources/views\final.html.twig
+return array (
+);
=== added file 'app/cache/dev/assetic/config/e/ee82bffb44075e767cc0763348784a27.php'
--- app/cache/dev/assetic/config/e/ee82bffb44075e767cc0763348784a27.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/e/ee82bffb44075e767cc0763348784a27.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\vendor\symfony\src\Symfony\Bundle\FrameworkBundle/Resources/views\Exception\traces.html.twig
+return array (
+);
=== added directory 'app/cache/dev/assetic/config/f'
=== added file 'app/cache/dev/assetic/config/f/f9befa98d741d50a71dada0ef9ced1db.php'
--- app/cache/dev/assetic/config/f/f9befa98d741d50a71dada0ef9ced1db.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/assetic/config/f/f9befa98d741d50a71dada0ef9ced1db.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,5 @@
+<?php
+
+// C:\Users\Geoffrey\workspace\TSEP\src\TSEP\SearchBundle/Resources/views\Indices\search.html.twig
+return array (
+);
=== added file 'app/cache/dev/classes-36836.php'
--- app/cache/dev/classes-36836.php 1970-01-01 00:00:00 +0000
+++ app/cache/dev/classes-36836.php 2011-04-24 02:44:25 +0000
@@ -0,0 +1,4010 @@
+<?php
+namespace Symfony\Component\Routing
+{
+use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
+use Symfony\Component\Routing\Matcher\UrlMatcherInterface;
+interface RouterInterface extends UrlMatcherInterface, UrlGeneratorInterface
+{
+}
+}
+namespace Symfony\Component\Routing\Matcher
+{
+interface UrlMatcherInterface
+{
+ function match($pathinfo);
+}
+}
+namespace Symfony\Component\Routing\Matcher
+{
+use Symfony\Component\Routing\Matcher\Exception\MethodNotAllowedException;
+use Symfony\Component\Routing\Matcher\Exception\NotFoundException;
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
+class UrlMatcher implements UrlMatcherInterface
+{
+ protected $defaults;
+ protected $context;
+ private $routes;
+ public function __construct(RouteCollection $routes, array $context = array(), array $defaults = array())
+ {
+ $this->routes = $routes;
+ $this->context = $context;
+ $this->defaults = $defaults;
+ }
+ public function setContext(array $context = array())
+ {
+ $this->context = $context;
+ }
+ public function match($pathinfo)
+ {
+ $allow = array();
+ foreach ($this->routes->all() as $name => $route) {
+ $compiledRoute = $route->compile();
+ if ('' !== $compiledRoute->getStaticPrefix() && 0 !== strpos($pathinfo, $compiledRoute->getStaticPrefix())) {
+ continue;
+ }
+ if (!preg_match($compiledRoute->getRegex(), $pathinfo, $matches)) {
+ continue;
+ }
+ if (isset($this->context['method']) && $route->getRequirement('_method') && ($req = explode('|', $route->getRequirement('_method'))) && !in_array(strtolower($this->context['method']), array_map('strtolower', $req))) {
+ $allow = array_merge($allow, $req);
+ continue;
+ }
+ return array_merge($this->mergeDefaults($matches, $route->getDefaults()), array('_route' => $name));
+ }
+ throw 0 < count($allow)
+ ? new MethodNotAllowedException(array_unique(array_map('strtolower', $allow)))
+ : new NotFoundException();
+ }
+ protected function mergeDefaults($params, $defaults)
+ {
+ $parameters = array_merge($this->defaults, $defaults);
+ foreach ($params as $key => $value) {
+ if (!is_int($key)) {
+ $parameters[$key] = urldecode($value);
+ }
+ }
+ return $parameters;
+ }
+}
+}
+namespace Symfony\Component\Routing\Generator
+{
+interface UrlGeneratorInterface
+{
+ function generate($name, array $parameters = array(), $absolute = false);
+}
+}
+namespace Symfony\Component\Routing\Generator
+{
+use Symfony\Component\Routing\Route;
+use Symfony\Component\Routing\RouteCollection;
+class UrlGenerator implements UrlGeneratorInterface
+{
+ protected $defaults;
+ protected $context;
+ private $routes;
+ private $cache;
+ public function __construct(RouteCollection $routes, array $context = array(), array $defaults = array())
+ {
+ $this->routes = $routes;
+ $this->context = $context;
+ $this->defaults = $defaults;
+ $this->cache = array();
+ }
+ public function setContext(array $context = array())
+ {
+ $this->context = $context;
+ }
+ public function generate($name, array $parameters = array(), $absolute = false)
+ {
+ if (null === $route = $this->routes->get($name)) {
+ throw new \InvalidArgumentException(sprintf('Route "%s" does not exist.', $name));
+ }
+ if (!isset($this->cache[$name])) {
+ $this->cache[$name] = $route->compile();
+ }
+ return $this->doGenerate($this->cache[$name]->getVariables(), $route->getDefaults(), $route->getRequirements(), $this->cache[$name]->getTokens(), $parameters, $name, $absolute);
+ }
+ protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $absolute)
+ {
+ $defaults = array_merge($this->defaults, $defaults);
+ $tparams = array_merge($defaults, $parameters);
+ if ($diff = array_diff_key($variables, $tparams)) {
+ throw new \InvalidArgumentException(sprintf('The "%s" route has some missing mandatory parameters (%s).', $name, implode(', ', $diff)));
+ }
+ $url = '';
+ $optional = true;
+ foreach ($tokens as $token) {
+ if ('variable' === $token[0]) {
+ if (false === $optional || !isset($defaults[$token[3]]) || (isset($parameters[$token[3]]) && $parameters[$token[3]] != $defaults[$token[3]])) {
+ if (isset($requirements[$token[3]]) && !preg_match('#^'.$requirements[$token[3]].'$#', $tparams[$token[3]])) {
+ throw new \InvalidArgumentException(sprintf('Parameter "%s" for route "%s" must match "%s" ("%s" given).', $token[3], $name, $requirements[$token[3]], $tparams[$token[3]]));
+ }
+ if (isset($tparams[$token[3]])) {
+ $url = $token[1].str_replace('%2F', '/', urlencode($tparams[$token[3]])).$url;
+ }
+ $optional = false;
+ }
+ } elseif ('text' === $token[0]) {
+ $url = $token[1].$token[2].$url;
+ $optional = false;
+ } else {
+ if ($segment = call_user_func_array(array($this, 'generateFor'.ucfirst(array_shift($token))), array_merge(array($optional, $tparams), $token))) {
+ $url = $segment.$url;
+ $optional = false;
+ }
+ }
+ }
+ if (!$url) {
+ $url = '/';
+ }
+ if ($extra = array_diff_key($parameters, $variables, $defaults)) {
+ $url .= '?'.http_build_query($extra);
+ }
+ $url = (isset($this->context['base_url']) ? $this->context['base_url'] : '').$url;
+ if ($absolute && isset($this->context['host'])) {
+ $isSecure = (isset($this->context['is_secure']) && $this->context['is_secure']);
+ $port = isset($this->context['port']) ? $this->context['port'] : 80;
+ $urlBeginning = 'http'.($isSecure ? 's' : '').'://'.$this->context['host'];
+ if (($isSecure && $port != 443) || (!$isSecure && $port != 80)) {
+ $urlBeginning .= ':'.$port;
+ }
+ $url = $urlBeginning.$url;
+ }
+ return $url;
+ }
+}
+}
+namespace Symfony\Component\Routing
+{
+use Symfony\Component\Config\Loader\LoaderInterface;
+use Symfony\Component\Config\ConfigCache;
+class Router implements RouterInterface
+{
+ private $matcher;
+ private $generator;
+ private $options;
+ private $defaults;
+ private $context;
+ private $loader;
+ private $collection;
+ private $resource;
+ public function __construct(LoaderInterface $loader, $resource, array $options = array(), array $context = array(), array $defaults = array())
+ {
+ $this->loader = $loader;
+ $this->resource = $resource;
+ $this->context = $context;
+ $this->defaults = $defaults;
+ $this->options = array(
+ 'cache_dir' => null,
+ 'debug' => false,
+ 'generator_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
+ 'generator_base_class' => 'Symfony\\Component\\Routing\\Generator\\UrlGenerator',
+ 'generator_dumper_class' => 'Symfony\\Component\\Routing\\Generator\\Dumper\\PhpGeneratorDumper',
+ 'generator_cache_class' => 'ProjectUrlGenerator',
+ 'matcher_class' => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
+ 'matcher_base_class' => 'Symfony\\Component\\Routing\\Matcher\\UrlMatcher',
+ 'matcher_dumper_class' => 'Symfony\\Component\\Routing\\Matcher\\Dumper\\PhpMatcherDumper',
+ 'matcher_cache_class' => 'ProjectUrlMatcher',
+ 'resource_type' => null,
+ );
+ $invalid = array();
+ $isInvalid = false;
+ foreach ($options as $key => $value) {
+ if (array_key_exists($key, $this->options)) {
+ $this->options[$key] = $value;
+ } else {
+ $isInvalid = true;
+ $invalid[] = $key;
+ }
+ }
+ if ($isInvalid) {
+ throw new \InvalidArgumentException(sprintf('The Router does not support the following options: \'%s\'.', implode('\', \'', $invalid)));
+ }
+ }
+ public function getRouteCollection()
+ {
+ if (null === $this->collection) {
+ $this->collection = $this->loader->load($this->resource, $this->options['resource_type']);
+ }
+ return $this->collection;
+ }
+ public function setContext(array $context = array())
+ {
+ $this->getMatcher()->setContext($context);
+ $this->getGenerator()->setContext($context);
+ }
+ public function generate($name, array $parameters = array(), $absolute = false)
+ {
+ return $this->getGenerator()->generate($name, $parameters, $absolute);
+ }
+ public function match($url)
+ {
+ return $this->getMatcher()->match($url);
+ }
+ public function getMatcher()
+ {
+ if (null !== $this->matcher) {
+ return $this->matcher;
+ }
+ if (null === $this->options['cache_dir'] || null === $this->options['matcher_cache_class']) {
+ return $this->matcher = new $this->options['matcher_class']($this->getRouteCollection(), $this->context, $this->defaults);
+ }
+ $class = $this->options['matcher_cache_class'];
+ $cache = new ConfigCache($this->options['cache_dir'].'/'.$class.'.php', $this->options['debug']);
+ if (!$cache->isFresh($class)) {
+ $dumper = new $this->options['matcher_dumper_class']($this->getRouteCollection());
+ $options = array(
+ 'class' => $class,
+ 'base_class' => $this->options['matcher_base_class'],
+ );
+ $cache->write($dumper->dump($options), $this->getRouteCollection()->getResources());
+ }
+ require_once $cache;
+ return $this->matcher = new $class($this->context, $this->defaults);
+ }
+ public function getGenerator()
+ {
+ if (null !== $this->generator) {
+ return $this->generator;
+ }
+ if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
+ return $this->generator = new $this->options['generator_class']($this->getRouteCollection(), $this->context, $this->defaults);
+ }
+ $class = $this->options['generator_cache_class'];
+ $cache = new ConfigCache($this->options['cache_dir'].'/'.$class.'.php', $this->options['debug']);
+ if (!$cache->isFresh($class)) {
+ $dumper = new $this->options['generator_dumper_class']($this->getRouteCollection());
+ $options = array(
+ 'class' => $class,
+ 'base_class' => $this->options['generator_base_class'],
+ );
+ $cache->write($dumper->dump($options), $this->getRouteCollection()->getResources());
+ }
+ require_once $cache;
+ return $this->generator = new $class($this->context, $this->defaults);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+use Symfony\Component\HttpFoundation\SessionStorage\SessionStorageInterface;
+class Session implements \Serializable
+{
+ protected $storage;
+ protected $attributes;
+ protected $oldFlashes;
+ protected $started;
+ protected $defaultLocale;
+ public function __construct(SessionStorageInterface $storage, $defaultLocale = 'en')
+ {
+ $this->storage = $storage;
+ $this->defaultLocale = $defaultLocale;
+ $this->attributes = array('_flash' => array(), '_locale' => $this->getDefaultLocale());
+ $this->started = false;
+ }
+ public function start()
+ {
+ if (true === $this->started) {
+ return;
+ }
+ $this->storage->start();
+ $this->attributes = $this->storage->read('_symfony2');
+ if (!isset($this->attributes['_flash'])) {
+ $this->attributes['_flash'] = array();
+ }
+ if (!isset($this->attributes['_locale'])) {
+ $this->attributes['_locale'] = $this->getDefaultLocale();
+ }
+ $this->oldFlashes = array_flip(array_keys($this->attributes['_flash']));
+ $this->started = true;
+ }
+ public function has($name)
+ {
+ return array_key_exists($name, $this->attributes);
+ }
+ public function get($name, $default = null)
+ {
+ return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default;
+ }
+ public function set($name, $value)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes[$name] = $value;
+ }
+ public function getAttributes()
+ {
+ return $this->attributes;
+ }
+ public function setAttributes(array $attributes)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes = $attributes;
+ }
+ public function remove($name)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ if (array_key_exists($name, $this->attributes)) {
+ unset($this->attributes[$name]);
+ }
+ }
+ public function clear()
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes = array();
+ }
+ public function invalidate()
+ {
+ $this->clear();
+ $this->storage->regenerate();
+ }
+ public function migrate()
+ {
+ $this->storage->regenerate();
+ }
+ public function getId()
+ {
+ return $this->storage->getId();
+ }
+ public function getLocale()
+ {
+ return $this->attributes['_locale'];
+ }
+ public function setLocale($locale)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes['_locale'] = $locale;
+ }
+ public function getFlashes()
+ {
+ return isset($this->attributes['_flash']) ? $this->attributes['_flash'] : array();
+ }
+ public function setFlashes($values)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes['_flash'] = $values;
+ $this->oldFlashes = array();
+ }
+ public function getFlash($name, $default = null)
+ {
+ return array_key_exists($name, $this->attributes['_flash']) ? $this->attributes['_flash'][$name] : $default;
+ }
+ public function setFlash($name, $value)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes['_flash'][$name] = $value;
+ unset($this->oldFlashes[$name]);
+ }
+ public function hasFlash($name)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ return array_key_exists($name, $this->attributes['_flash']);
+ }
+ public function removeFlash($name)
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ unset($this->attributes['_flash'][$name]);
+ }
+ public function clearFlashes()
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ $this->attributes['_flash'] = array();
+ $this->oldFlashes = array();
+ }
+ public function save()
+ {
+ if (false === $this->started) {
+ $this->start();
+ }
+ if (isset($this->attributes['_flash'])) {
+ $this->attributes['_flash'] = array_diff_key($this->attributes['_flash'], $this->oldFlashes);
+ }
+ $this->storage->write('_symfony2', $this->attributes);
+ }
+ public function __destruct()
+ {
+ $this->save();
+ }
+ public function serialize()
+ {
+ return serialize(array($this->storage, $this->defaultLocale));
+ }
+ public function unserialize($serialized)
+ {
+ list($this->storage, $this->defaultLocale) = unserialize($serialized);
+ $this->attributes = array();
+ $this->started = false;
+ }
+ private function getDefaultLocale()
+ {
+ return $this->defaultLocale;
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation\SessionStorage
+{
+interface SessionStorageInterface
+{
+ function start();
+ function getId();
+ function read($key);
+ function remove($key);
+ function write($key, $data);
+ function regenerate($destroy = false);
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Templating
+{
+use Symfony\Component\Templating\EngineInterface as BaseEngineInterface;
+use Symfony\Component\HttpFoundation\Response;
+interface EngineInterface extends BaseEngineInterface
+{
+ function renderResponse($view, array $parameters = array(), Response $response = null);
+}
+}
+namespace Symfony\Component\Templating
+{
+interface TemplateNameParserInterface
+{
+ function parse($name);
+}
+}
+namespace Symfony\Component\Templating
+{
+use Symfony\Component\Templating\TemplateReferenceInterface;
+use Symfony\Component\Templating\TemplateReference;
+class TemplateNameParser implements TemplateNameParserInterface
+{
+ public function parse($name)
+ {
+ if ($name instanceof TemplateReferenceInterface) {
+ return $name;
+ }
+ $engine = null;
+ if (false !== $pos = strrpos($name, '.')) {
+ $engine = substr($name, $pos + 1);
+ }
+ return new TemplateReference($name, $engine);
+ }
+}
+}
+namespace Symfony\Component\Templating
+{
+interface EngineInterface
+{
+ function render($name, array $parameters = array());
+ function exists($name);
+ function supports($name);
+}
+}
+namespace Symfony\Component\Config
+{
+interface FileLocatorInterface
+{
+ function locate($name, $currentPath = null, $first = true);
+}
+}
+namespace Symfony\Component\Templating
+{
+interface TemplateReferenceInterface
+{
+ function all();
+ function set($name, $value);
+ function get($name);
+ function getSignature();
+ function getPath();
+ function getLogicalName();
+}
+}
+namespace Symfony\Component\Templating
+{
+class TemplateReference implements TemplateReferenceInterface
+{
+ protected $parameters;
+ public function __construct($name = null, $engine = null)
+ {
+ $this->parameters = array(
+ 'name' => $name,
+ 'engine' => $engine,
+ );
+ }
+ public function __toString()
+ {
+ return $this->getLogicalName();
+ }
+ public function getSignature()
+ {
+ return md5(serialize($this->parameters));
+ }
+ public function set($name, $value)
+ {
+ if (array_key_exists($name, $this->parameters)) {
+ $this->parameters[$name] = $value;
+ } else {
+ throw new \InvalidArgumentException(sprintf('The template does not support the "%s" parameter.', $name));
+ }
+ return $this;
+ }
+ public function get($name)
+ {
+ if (array_key_exists($name, $this->parameters)) {
+ return $this->parameters[$name];
+ }
+ throw new \InvalidArgumentException(sprintf('The template does not support the "%s" parameter.', $name));
+ }
+ public function all()
+ {
+ return $this->parameters;
+ }
+ public function getPath()
+ {
+ return $this->parameters['name'];
+ }
+ public function getLogicalName()
+ {
+ return $this->parameters['name'];
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Templating
+{
+use Symfony\Component\Templating\TemplateReference as BaseTemplateReference;
+class TemplateReference extends BaseTemplateReference
+{
+ public function __construct($bundle = null, $controller = null, $name = null, $format = null, $engine = null)
+ {
+ $this->parameters = array(
+ 'bundle' => $bundle,
+ 'controller' => $controller,
+ 'name' => $name,
+ 'format' => $format,
+ 'engine' => $engine,
+ );
+ }
+ public function getPath()
+ {
+ $controller = $this->get('controller');
+ $path = (empty($controller) ? '' : $controller.'/').$this->get('name').'.'.$this->get('format').'.'.$this->get('engine');
+ return empty($this->parameters['bundle']) ? 'views/'.$path : '@'.$this->get('bundle').'/Resources/views/'.$path;
+ }
+ public function getLogicalName()
+ {
+ $parts = sprintf('%s:%s:', $this->get('bundle'), $this->get('controller'));
+ $elements = sprintf('%s.%s.%s', $this->get('name'), $this->get('format'), $this->get('engine'));
+ return $parts . $elements;
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Templating
+{
+use Symfony\Component\Templating\TemplateNameParser as BaseTemplateNameParser;
+use Symfony\Component\Templating\TemplateReferenceInterface;
+use Symfony\Component\HttpKernel\KernelInterface;
+class TemplateNameParser extends BaseTemplateNameParser
+{
+ protected $kernel;
+ protected $cache;
+ public function __construct(KernelInterface $kernel)
+ {
+ $this->kernel = $kernel;
+ $this->cache = array();
+ }
+ public function parse($name)
+ {
+ if ($name instanceof TemplateReferenceInterface) {
+ return $name;
+ } else if (isset($this->cache[$name])) {
+ return $this->cache[$name];
+ }
+ $name = str_replace(':/', ':', preg_replace('#/{2,}#', '/', strtr($name, '\\', '/')));
+ if (false !== strpos($name, '..')) {
+ throw new \RuntimeException(sprintf('Template name "%s" contains invalid characters.', $name));
+ }
+ $parts = explode(':', $name);
+ if (3 !== count($parts)) {
+ throw new \InvalidArgumentException(sprintf('Template name "%s" is not valid (format is "bundle:section:template.format.engine").', $name));
+ }
+ $elements = explode('.', $parts[2]);
+ if (3 !== count($elements)) {
+ throw new \InvalidArgumentException(sprintf('Template name "%s" is not valid (format is "bundle:section:template.format.engine").', $name));
+ }
+ $template = new TemplateReference($parts[0], $parts[1], $elements[0], $elements[1], $elements[2]);
+ if ($template->get('bundle')) {
+ try {
+ $this->kernel->getBundle($template->get('bundle'));
+ } catch (\Exception $e) {
+ throw new \InvalidArgumentException(sprintf('Template name "%s" is not valid.', $name), 0, $e);
+ }
+ }
+ return $this->cache[$name] = $template;
+ }
+ public function parseFromFilename($file)
+ {
+ $parts = explode('/', strtr($file, '\\', '/'));
+ $elements = explode('.', array_pop($parts));
+ if (3 !== count($elements)) {
+ return false;
+ }
+ return new TemplateReference('', implode('/', $parts), $elements[0], $elements[1], $elements[2]);
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Templating\Loader
+{
+use Symfony\Component\Config\FileLocatorInterface;
+use Symfony\Component\Templating\TemplateReferenceInterface;
+class TemplateLocator implements FileLocatorInterface
+{
+ protected $locator;
+ protected $path;
+ protected $cache;
+ public function __construct(FileLocatorInterface $locator)
+ {
+ $this->locator = $locator;
+ $this->cache = array();
+ }
+ public function locate($template, $currentPath = null, $first = true)
+ {
+ if (!$template instanceof TemplateReferenceInterface) {
+ throw new \InvalidArgumentException("The template must be an instance of TemplateReferenceInterface.");
+ }
+ $key = $template->getSignature();
+ if (isset($this->cache[$key])) {
+ return $this->cache[$key];
+ }
+ try {
+ return $this->cache[$key] = $this->locator->locate($template->getPath(), $currentPath);
+ } catch (\InvalidArgumentException $e) {
+ throw new \InvalidArgumentException(sprintf('Unable to find template "%s" in "%s".', $template, $this->path), 0, $e);
+ }
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class Response
+{
+ public $headers;
+ protected $content;
+ protected $version;
+ protected $statusCode;
+ protected $statusText;
+ protected $charset;
+ static public $statusTexts = array(
+ 100 => 'Continue',
+ 101 => 'Switching Protocols',
+ 200 => 'OK',
+ 201 => 'Created',
+ 202 => 'Accepted',
+ 203 => 'Non-Authoritative Information',
+ 204 => 'No Content',
+ 205 => 'Reset Content',
+ 206 => 'Partial Content',
+ 300 => 'Multiple Choices',
+ 301 => 'Moved Permanently',
+ 302 => 'Found',
+ 303 => 'See Other',
+ 304 => 'Not Modified',
+ 305 => 'Use Proxy',
+ 307 => 'Temporary Redirect',
+ 400 => 'Bad Request',
+ 401 => 'Unauthorized',
+ 402 => 'Payment Required',
+ 403 => 'Forbidden',
+ 404 => 'Not Found',
+ 405 => 'Method Not Allowed',
+ 406 => 'Not Acceptable',
+ 407 => 'Proxy Authentication Required',
+ 408 => 'Request Timeout',
+ 409 => 'Conflict',
+ 410 => 'Gone',
+ 411 => 'Length Required',
+ 412 => 'Precondition Failed',
+ 413 => 'Request Entity Too Large',
+ 414 => 'Request-URI Too Long',
+ 415 => 'Unsupported Media Type',
+ 416 => 'Requested Range Not Satisfiable',
+ 417 => 'Expectation Failed',
+ 418 => 'I\'m a teapot',
+ 500 => 'Internal Server Error',
+ 501 => 'Not Implemented',
+ 502 => 'Bad Gateway',
+ 503 => 'Service Unavailable',
+ 504 => 'Gateway Timeout',
+ 505 => 'HTTP Version Not Supported',
+ );
+ public function __construct($content = '', $status = 200, $headers = array())
+ {
+ $this->setContent($content);
+ $this->setStatusCode($status);
+ $this->setProtocolVersion('1.0');
+ $this->headers = new ResponseHeaderBag($headers);
+ }
+ public function __toString()
+ {
+ $content = '';
+ if (!$this->headers->has('Content-Type')) {
+ $this->headers->set('Content-Type', 'text/html; charset='.(null === $this->charset ? 'UTF-8' : $this->charset));
+ }
+ $content .= sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\n";
+ foreach ($this->headers->all() as $name => $values) {
+ foreach ($values as $value) {
+ $content .= "$name: $value\n";
+ }
+ }
+ $content .= "\n".$this->getContent();
+ return $content;
+ }
+ public function __clone()
+ {
+ $this->headers = clone $this->headers;
+ }
+ public function sendHeaders()
+ {
+ if (!$this->headers->has('Content-Type')) {
+ $this->headers->set('Content-Type', 'text/html; charset='.(null === $this->charset ? 'UTF-8' : $this->charset));
+ }
+ header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText));
+ foreach ($this->headers->all() as $name => $values) {
+ foreach ($values as $value) {
+ header($name.': '.$value);
+ }
+ }
+ foreach ($this->headers->getCookies() as $cookie) {
+ setcookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly());
+ }
+ }
+ public function sendContent()
+ {
+ echo $this->content;
+ }
+ public function send()
+ {
+ $this->sendHeaders();
+ $this->sendContent();
+ }
+ public function setContent($content)
+ {
+ $this->content = $content;
+ }
+ public function getContent()
+ {
+ return $this->content;
+ }
+ public function setProtocolVersion($version)
+ {
+ $this->version = $version;
+ }
+ public function getProtocolVersion()
+ {
+ return $this->version;
+ }
+ public function setStatusCode($code, $text = null)
+ {
+ $this->statusCode = (int) $code;
+ if ($this->isInvalid()) {
+ throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $code));
+ }
+ $this->statusText = false === $text ? '' : (null === $text ? self::$statusTexts[$this->statusCode] : $text);
+ }
+ public function getStatusCode()
+ {
+ return $this->statusCode;
+ }
+ public function setCharset($charset)
+ {
+ $this->charset = $charset;
+ }
+ public function getCharset()
+ {
+ return $this->charset;
+ }
+ public function isCacheable()
+ {
+ if (!in_array($this->statusCode, array(200, 203, 300, 301, 302, 404, 410))) {
+ return false;
+ }
+ if ($this->headers->hasCacheControlDirective('no-store') || $this->headers->getCacheControlDirective('private')) {
+ return false;
+ }
+ return $this->isValidateable() || $this->isFresh();
+ }
+ public function isFresh()
+ {
+ return $this->getTtl() > 0;
+ }
+ public function isValidateable()
+ {
+ return $this->headers->has('Last-Modified') || $this->headers->has('ETag');
+ }
+ public function setPrivate()
+ {
+ $this->headers->removeCacheControlDirective('public');
+ $this->headers->addCacheControlDirective('private');
+ }
+ public function setPublic()
+ {
+ $this->headers->addCacheControlDirective('public');
+ $this->headers->removeCacheControlDirective('private');
+ }
+ public function mustRevalidate()
+ {
+ return $this->headers->hasCacheControlDirective('must-revalidate') || $this->headers->has('must-proxy-revalidate');
+ }
+ public function getDate()
+ {
+ if (null === $date = $this->headers->getDate('Date')) {
+ $date = new \DateTime(null, new \DateTimeZone('UTC'));
+ $this->headers->set('Date', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ return $date;
+ }
+ public function getAge()
+ {
+ if ($age = $this->headers->get('Age')) {
+ return $age;
+ }
+ return max(time() - $this->getDate()->format('U'), 0);
+ }
+ public function expire()
+ {
+ if ($this->isFresh()) {
+ $this->headers->set('Age', $this->getMaxAge());
+ }
+ }
+ public function getExpires()
+ {
+ return $this->headers->getDate('Expires');
+ }
+ public function setExpires(\DateTime $date = null)
+ {
+ if (null === $date) {
+ $this->headers->remove('Expires');
+ } else {
+ $date = clone $date;
+ $date->setTimezone(new \DateTimeZone('UTC'));
+ $this->headers->set('Expires', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ }
+ public function getMaxAge()
+ {
+ if ($age = $this->headers->getCacheControlDirective('s-maxage')) {
+ return $age;
+ }
+ if ($age = $this->headers->getCacheControlDirective('max-age')) {
+ return $age;
+ }
+ if (null !== $this->getExpires()) {
+ return $this->getExpires()->format('U') - $this->getDate()->format('U');
+ }
+ return null;
+ }
+ public function setMaxAge($value)
+ {
+ $this->headers->addCacheControlDirective('max-age', $value);
+ }
+ public function setSharedMaxAge($value)
+ {
+ $this->setPublic();
+ $this->headers->addCacheControlDirective('s-maxage', $value);
+ }
+ public function getTtl()
+ {
+ if ($maxAge = $this->getMaxAge()) {
+ return $maxAge - $this->getAge();
+ }
+ return null;
+ }
+ public function setTtl($seconds)
+ {
+ $this->setSharedMaxAge($this->getAge() + $seconds);
+ }
+ public function setClientTtl($seconds)
+ {
+ $this->setMaxAge($this->getAge() + $seconds);
+ }
+ public function getLastModified()
+ {
+ return $this->headers->getDate('Last-Modified');
+ }
+ public function setLastModified(\DateTime $date = null)
+ {
+ if (null === $date) {
+ $this->headers->remove('Last-Modified');
+ } else {
+ $date = clone $date;
+ $date->setTimezone(new \DateTimeZone('UTC'));
+ $this->headers->set('Last-Modified', $date->format('D, d M Y H:i:s').' GMT');
+ }
+ }
+ public function getEtag()
+ {
+ return $this->headers->get('ETag');
+ }
+ public function setEtag($etag = null, $weak = false)
+ {
+ if (null === $etag) {
+ $this->headers->remove('Etag');
+ } else {
+ if (0 !== strpos($etag, '"')) {
+ $etag = '"'.$etag.'"';
+ }
+ $this->headers->set('ETag', (true === $weak ? 'W/' : '').$etag);
+ }
+ }
+ public function setCache(array $options)
+ {
+ if ($diff = array_diff(array_keys($options), array('etag', 'last_modified', 'max_age', 's_maxage', 'private', 'public'))) {
+ throw new \InvalidArgumentException(sprintf('Response does not support the following options: "%s".', implode('", "', array_keys($diff))));
+ }
+ if (isset($options['etag'])) {
+ $this->setEtag($options['etag']);
+ }
+ if (isset($options['last_modified'])) {
+ $this->setLastModified($options['last_modified']);
+ }
+ if (isset($options['max_age'])) {
+ $this->setMaxAge($options['max_age']);
+ }
+ if (isset($options['s_maxage'])) {
+ $this->setSharedMaxAge($options['s_maxage']);
+ }
+ if (isset($options['public'])) {
+ if ($options['public']) {
+ $this->setPublic();
+ } else {
+ $this->setPrivate();
+ }
+ }
+ if (isset($options['private'])) {
+ if ($options['private']) {
+ $this->setPrivate();
+ } else {
+ $this->setPublic();
+ }
+ }
+ }
+ public function setNotModified()
+ {
+ $this->setStatusCode(304);
+ $this->setContent(null);
+ foreach (array('Allow', 'Content-Encoding', 'Content-Language', 'Content-Length', 'Content-MD5', 'Content-Type', 'Last-Modified') as $header) {
+ $this->headers->remove($header);
+ }
+ }
+ public function hasVary()
+ {
+ return (Boolean) $this->headers->get('Vary');
+ }
+ public function getVary()
+ {
+ if (!$vary = $this->headers->get('Vary')) {
+ return array();
+ }
+ return is_array($vary) ? $vary : preg_split('/[\s,]+/', $vary);
+ }
+ public function setVary($headers, $replace = true)
+ {
+ $this->headers->set('Vary', $headers, $replace);
+ }
+ public function isNotModified(Request $request)
+ {
+ $lastModified = $request->headers->get('If-Modified-Since');
+ $notModified = false;
+ if ($etags = $request->getEtags()) {
+ $notModified = (in_array($this->getEtag(), $etags) || in_array('*', $etags)) && (!$lastModified || $this->headers->get('Last-Modified') == $lastModified);
+ } elseif ($lastModified) {
+ $notModified = $lastModified == $this->headers->get('Last-Modified');
+ }
+ if ($notModified) {
+ $this->setNotModified();
+ }
+ return $notModified;
+ }
+ public function isInvalid()
+ {
+ return $this->statusCode < 100 || $this->statusCode >= 600;
+ }
+ public function isInformational()
+ {
+ return $this->statusCode >= 100 && $this->statusCode < 200;
+ }
+ public function isSuccessful()
+ {
+ return $this->statusCode >= 200 && $this->statusCode < 300;
+ }
+ public function isRedirection()
+ {
+ return $this->statusCode >= 300 && $this->statusCode < 400;
+ }
+ public function isClientError()
+ {
+ return $this->statusCode >= 400 && $this->statusCode < 500;
+ }
+ public function isServerError()
+ {
+ return $this->statusCode >= 500 && $this->statusCode < 600;
+ }
+ public function isOk()
+ {
+ return 200 === $this->statusCode;
+ }
+ public function isForbidden()
+ {
+ return 403 === $this->statusCode;
+ }
+ public function isNotFound()
+ {
+ return 404 === $this->statusCode;
+ }
+ public function isRedirect()
+ {
+ return in_array($this->statusCode, array(301, 302, 303, 307));
+ }
+ public function isEmpty()
+ {
+ return in_array($this->statusCode, array(201, 204, 304));
+ }
+ public function isRedirected($location)
+ {
+ return $this->isRedirect() && $location == $this->headers->get('Location');
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class ResponseHeaderBag extends HeaderBag
+{
+ protected $computedCacheControl = array();
+ public function __construct(array $headers = array())
+ {
+ parent::__construct($headers);
+ if (!isset($this->headers['cache-control'])) {
+ $this->set('cache-control', '');
+ }
+ }
+ public function replace(array $headers = array())
+ {
+ parent::replace($headers);
+ if (!isset($this->headers['cache-control'])) {
+ $this->set('cache-control', '');
+ }
+ }
+ public function set($key, $values, $replace = true)
+ {
+ parent::set($key, $values, $replace);
+ if (in_array(strtr(strtolower($key), '_', '-'), array('cache-control', 'etag', 'last-modified', 'expires'))) {
+ $computed = $this->computeCacheControlValue();
+ $this->headers['cache-control'] = array($computed);
+ $this->computedCacheControl = $this->parseCacheControl($computed);
+ }
+ }
+ public function remove($key)
+ {
+ parent::remove($key);
+ if ('cache-control' === strtr(strtolower($key), '_', '-')) {
+ $this->computedCacheControl = array();
+ }
+ }
+ public function hasCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->computedCacheControl);
+ }
+ public function getCacheControlDirective($key)
+ {
+ return array_key_exists($key, $this->computedCacheControl) ? $this->computedCacheControl[$key] : null;
+ }
+ public function clearCookie($name, $path = null, $domain = null)
+ {
+ $this->setCookie(new Cookie($name, null, 1, $path, $domain));
+ }
+ protected function computeCacheControlValue()
+ {
+ if (!$this->cacheControl && !$this->has('ETag') && !$this->has('Last-Modified') && !$this->has('Expires')) {
+ return 'no-cache';
+ }
+ if (!$this->cacheControl) {
+ return 'private, must-revalidate';
+ }
+ $header = $this->getCacheControlHeader();
+ if (isset($this->cacheControl['public']) || isset($this->cacheControl['private'])) {
+ return $header;
+ }
+ if (!isset($this->cacheControl['s-maxage'])) {
+ return $header.', private';
+ }
+ return $header;
+ }
+}}
+namespace Symfony\Component\EventDispatcher
+{
+interface EventDispatcherInterface
+{
+ function dispatch($eventName, Event $event = null);
+ function addListener($eventNames, $listener, $priority = 0);
+ function addSubscriber(EventSubscriberInterface $subscriber, $priority = 0);
+ function removeListener($eventNames, $listener);
+ function removeSubscriber(EventSubscriberInterface $subscriber);
+ function getListeners($eventName = null);
+ function hasListeners($eventName = null);
+}
+}
+namespace Symfony\Component\EventDispatcher
+{
+class EventDispatcher implements EventDispatcherInterface
+{
+ private $listeners = array();
+ private $sorted = array();
+ public function dispatch($eventName, Event $event = null)
+ {
+ if (!isset($this->listeners[$eventName])) {
+ return;
+ }
+ if (null === $event) {
+ $event = new Event();
+ }
+ foreach ($this->getListeners($eventName) as $listener) {
+ $this->triggerListener($listener, $eventName, $event);
+ if ($event->isPropagationStopped()) {
+ break;
+ }
+ }
+ }
+ public function getListeners($eventName = null)
+ {
+ if (null !== $eventName) {
+ if (!isset($this->sorted[$eventName])) {
+ $this->sortListeners($eventName);
+ }
+ return $this->sorted[$eventName];
+ }
+ $sorted = array();
+ foreach (array_keys($this->listeners) as $eventName) {
+ if (!isset($this->sorted[$eventName])) {
+ $this->sortListeners($eventName);
+ }
+ if ($this->sorted[$eventName]) {
+ $sorted[$eventName] = $this->sorted[$eventName];
+ }
+ }
+ return $sorted;
+ }
+ public function hasListeners($eventName = null)
+ {
+ return (Boolean) count($this->getListeners($eventName));
+ }
+ public function addListener($eventNames, $listener, $priority = 0)
+ {
+ foreach ((array) $eventNames as $eventName) {
+ if (!isset($this->listeners[$eventName][$priority])) {
+ if (!isset($this->listeners[$eventName])) {
+ $this->listeners[$eventName] = array();
+ }
+ $this->listeners[$eventName][$priority] = new \SplObjectStorage();
+ }
+ $this->listeners[$eventName][$priority]->attach($listener);
+ unset($this->sorted[$eventName]);
+ }
+ }
+ public function removeListener($eventNames, $listener)
+ {
+ foreach ((array) $eventNames as $eventName) {
+ if (!isset($this->listeners[$eventName])) {
+ continue;
+ }
+ foreach (array_keys($this->listeners[$eventName]) as $priority) {
+ if (isset($this->listeners[$eventName][$priority][$listener])) {
+ unset($this->listeners[$eventName][$priority][$listener], $this->sorted[$eventName]);
+ }
+ }
+ }
+ }
+ public function addSubscriber(EventSubscriberInterface $subscriber, $priority = 0)
+ {
+ $this->addListener($subscriber->getSubscribedEvents(), $subscriber, $priority);
+ }
+ public function removeSubscriber(EventSubscriberInterface $subscriber)
+ {
+ $this->removeListener($subscriber->getSubscribedEvents(), $subscriber);
+ }
+ protected function triggerListener($listener, $eventName, Event $event)
+ {
+ if ($listener instanceof \Closure) {
+ $listener->__invoke($event);
+ } else {
+ $listener->$eventName($event);
+ }
+ }
+ private function sortListeners($eventName)
+ {
+ $this->sorted[$eventName] = array();
+ if (isset($this->listeners[$eventName])) {
+ krsort($this->listeners[$eventName]);
+ foreach ($this->listeners[$eventName] as $listeners) {
+ foreach ($listeners as $listener) {
+ $this->sorted[$eventName][] = $listener;
+ }
+ }
+ }
+ }
+}
+}
+namespace Symfony\Component\EventDispatcher
+{
+class Event
+{
+ private $propagationStopped = false;
+ public function isPropagationStopped()
+ {
+ return $this->propagationStopped;
+ }
+ public function stopPropagation()
+ {
+ $this->propagationStopped = true;
+ }
+}
+}
+namespace Symfony\Component\EventDispatcher
+{
+interface EventSubscriberInterface
+{
+ static function getSubscribedEvents();
+}
+}
+namespace Symfony\Component\HttpKernel
+{
+use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
+use Symfony\Component\HttpFoundation\Response;
+class ResponseListener
+{
+ private $charset;
+ public function __construct($charset)
+ {
+ $this->charset = $charset;
+ }
+ public function onCoreResponse(FilterResponseEvent $event)
+ {
+ if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
+ return;
+ }
+ $response = $event->getResponse();
+ if (null === $response->getCharset()) {
+ $response->setCharset($this->charset);
+ }
+ if ($response->headers->has('Content-Type')) {
+ return;
+ }
+ $request = $event->getRequest();
+ $format = $request->getRequestFormat();
+ if ((null !== $format) && $mimeType = $request->getMimeType($format)) {
+ $response->headers->set('Content-Type', $mimeType);
+ }
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\Controller
+{
+use Symfony\Component\HttpKernel\Log\LoggerInterface;
+use Symfony\Component\HttpFoundation\Request;
+class ControllerResolver implements ControllerResolverInterface
+{
+ private $logger;
+ public function __construct(LoggerInterface $logger = null)
+ {
+ $this->logger = $logger;
+ }
+ public function getController(Request $request)
+ {
+ if (!$controller = $request->attributes->get('_controller')) {
+ if (null !== $this->logger) {
+ $this->logger->err('Unable to look for the controller as the "_controller" parameter is missing');
+ }
+ return false;
+ }
+ if (is_array($controller) || method_exists($controller, '__invoke')) {
+ return $controller;
+ }
+ list($controller, $method) = $this->createController($controller);
+ if (!method_exists($controller, $method)) {
+ throw new \InvalidArgumentException(sprintf('Method "%s::%s" does not exist.', get_class($controller), $method));
+ }
+ if (null !== $this->logger) {
+ $this->logger->info(sprintf('Using controller "%s::%s"', get_class($controller), $method));
+ }
+ return array($controller, $method);
+ }
+ public function getArguments(Request $request, $controller)
+ {
+ $attributes = $request->attributes->all();
+ if (is_array($controller)) {
+ $r = new \ReflectionMethod($controller[0], $controller[1]);
+ $repr = sprintf('%s::%s()', get_class($controller[0]), $controller[1]);
+ } elseif (is_object($controller)) {
+ $r = new \ReflectionObject($controller);
+ $r = $r->getMethod('__invoke');
+ $repr = get_class($controller);
+ } else {
+ $r = new \ReflectionFunction($controller);
+ $repr = $controller;
+ }
+ $arguments = array();
+ foreach ($r->getParameters() as $param) {
+ if (array_key_exists($param->getName(), $attributes)) {
+ $arguments[] = $attributes[$param->getName()];
+ } elseif ($param->getClass() && $param->getClass()->isInstance($request)) {
+ $arguments[] = $request;
+ } elseif ($param->isDefaultValueAvailable()) {
+ $arguments[] = $param->getDefaultValue();
+ } else {
+ throw new \RuntimeException(sprintf('Controller "%s" requires that you provide a value for the "$%s" argument (because there is no default value or because there is a non optional argument after this one).', $repr, $param->getName()));
+ }
+ }
+ return $arguments;
+ }
+ protected function createController($controller)
+ {
+ if (false === strpos($controller, '::')) {
+ throw new \InvalidArgumentException(sprintf('Unable to find controller "%s".', $controller));
+ }
+ list($class, $method) = explode('::', $controller);
+ if (!class_exists($class)) {
+ throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
+ }
+ return array(new $class(), $method);
+ }
+}
+}
+namespace Symfony\Component\HttpKernel\Controller
+{
+use Symfony\Component\HttpFoundation\Request;
+interface ControllerResolverInterface
+{
+ function getController(Request $request);
+ function getArguments(Request $request, $controller);
+}
+}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\EventDispatcher\Event;
+class KernelEvent extends Event
+{
+ private $kernel;
+ private $request;
+ private $requestType;
+ public function __construct(HttpKernelInterface $kernel, Request $request, $requestType)
+ {
+ $this->kernel = $kernel;
+ $this->request = $request;
+ $this->requestType = $requestType;
+ }
+ public function getKernel()
+ {
+ return $this->kernel;
+ }
+ public function getRequest()
+ {
+ return $this->request;
+ }
+ public function getRequestType()
+ {
+ return $this->requestType;
+ }
+}}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+class FilterControllerEvent extends KernelEvent
+{
+ private $controller;
+ public function __construct(HttpKernelInterface $kernel, $controller, Request $request, $requestType)
+ {
+ parent::__construct($kernel, $request, $requestType);
+ $this->setController($controller);
+ }
+ public function getController()
+ {
+ return $this->controller;
+ }
+ public function setController($controller)
+ {
+ if (!is_callable($controller)) {
+ throw new \LogicException(sprintf('The controller must be a callable (%s given).', $this->varToString($controller)));
+ }
+ $this->controller = $controller;
+ }
+ private function varToString($var)
+ {
+ if (is_object($var)) {
+ return sprintf('[object](%s)', get_class($var));
+ }
+ if (is_array($var)) {
+ $a = array();
+ foreach ($var as $k => $v) {
+ $a[] = sprintf('%s => %s', $k, $this->varToString($v));
+ }
+ return sprintf("[array](%s)", implode(', ', $a));
+ }
+ if (is_resource($var)) {
+ return '[resource]';
+ }
+ return str_replace("\n", '', var_export((string) $var, true));
+ }
+}}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+class FilterResponseEvent extends KernelEvent
+{
+ private $response;
+ public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, Response $response)
+ {
+ parent::__construct($kernel, $request, $requestType);
+ $this->setResponse($response);
+ }
+ public function getResponse()
+ {
+ return $this->response;
+ }
+ public function setResponse(Response $response)
+ {
+ $this->response = $response;
+ }
+}}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+class GetResponseEvent extends KernelEvent
+{
+ private $response;
+ public function getResponse()
+ {
+ return $this->response;
+ }
+ public function setResponse(Response $response)
+ {
+ $this->response = $response;
+ $this->stopPropagation();
+ }
+ public function hasResponse()
+ {
+ return null !== $this->response;
+ }
+}}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+class GetResponseForControllerResultEvent extends GetResponseEvent
+{
+ private $controllerResult;
+ public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, $controllerResult)
+ {
+ parent::__construct($kernel, $request, $requestType);
+ $this->controllerResult = $controllerResult;
+ }
+ public function getControllerResult()
+ {
+ return $this->controllerResult;
+ }
+}}
+namespace Symfony\Component\HttpKernel\Event
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpFoundation\Request;
+class GetResponseForExceptionEvent extends GetResponseEvent
+{
+ private $exception;
+ public function __construct(HttpKernelInterface $kernel, Request $request, $requestType, \Exception $e)
+ {
+ parent::__construct($kernel, $request, $requestType);
+ $this->setException($e);
+ }
+ public function getException()
+ {
+ return $this->exception;
+ }
+ public function setException(\Exception $exception)
+ {
+ $this->exception = $exception;
+ }
+}}
+namespace Symfony\Component\HttpKernel
+{
+final class Events
+{
+ const onCoreRequest = 'onCoreRequest';
+ const onCoreException = 'onCoreException';
+ const onCoreView = 'onCoreView';
+ const onCoreController = 'onCoreController';
+ const onCoreResponse = 'onCoreResponse';
+}}
+namespace Symfony\Bundle\FrameworkBundle
+{
+use Symfony\Component\HttpKernel\Log\LoggerInterface;
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Event\GetResponseEvent;
+use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Matcher\Exception\MethodNotAllowedException;
+use Symfony\Component\Routing\Matcher\Exception\NotFoundException;
+use Symfony\Component\Routing\RouterInterface;
+class RequestListener
+{
+ protected $router;
+ protected $logger;
+ protected $container;
+ public function __construct(ContainerInterface $container, RouterInterface $router, LoggerInterface $logger = null)
+ {
+ $this->container = $container;
+ $this->router = $router;
+ $this->logger = $logger;
+ }
+ public function onCoreRequest(GetResponseEvent $event)
+ {
+ $request = $event->getRequest();
+ $master = HttpKernelInterface::MASTER_REQUEST === $event->getRequestType();
+ $this->initializeSession($request, $master);
+ $this->initializeRequestAttributes($request, $master);
+ }
+ protected function initializeSession(Request $request, $master)
+ {
+ if (!$master) {
+ return;
+ }
+ if (null === $request->getSession() && $this->container->has('session')) {
+ $request->setSession($this->container->get('session'));
+ }
+ if ($request->hasSession()) {
+ $request->getSession()->start();
+ }
+ }
+ protected function initializeRequestAttributes(Request $request, $master)
+ {
+ if ($master) {
+ $this->router->setContext(array(
+ 'base_url' => $request->getBaseUrl(),
+ 'method' => $request->getMethod(),
+ 'host' => $request->getHost(),
+ 'port' => $request->getPort(),
+ 'is_secure' => $request->isSecure(),
+ ));
+ }
+ if ($request->attributes->has('_controller')) {
+ return;
+ }
+ try {
+ $parameters = $this->router->match($request->getPathInfo());
+ if (null !== $this->logger) {
+ $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], $this->parametersToString($parameters)));
+ }
+ $request->attributes->add($parameters);
+ if ($locale = $request->attributes->get('_locale')) {
+ $request->getSession()->setLocale($locale);
+ }
+ } catch (NotFoundException $e) {
+ $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());
+ if (null !== $this->logger) {
+ $this->logger->err($message);
+ }
+ throw new NotFoundHttpException($message, $e);
+ } catch (MethodNotAllowedException $e) {
+ $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), strtoupper(implode(', ', $e->getAllowedMethods())));
+ if (null !== $this->logger) {
+ $this->logger->err($message);
+ }
+ throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
+ }
+ }
+ private function parametersToString(array $parameters)
+ {
+ $pieces = array();
+ foreach ($parameters as $key => $val) {
+ $pieces[] = sprintf('"%s": "%s"', $key, (is_string($val) ? $val : json_encode($val)));
+ }
+ return implode(', ', $pieces);
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Controller
+{
+use Symfony\Component\HttpKernel\KernelInterface;
+use Symfony\Component\HttpKernel\Log\LoggerInterface;
+class ControllerNameParser
+{
+ protected $kernel;
+ protected $logger;
+ public function __construct(KernelInterface $kernel, LoggerInterface $logger = null)
+ {
+ $this->kernel = $kernel;
+ $this->logger = $logger;
+ }
+ public function parse($controller)
+ {
+ if (3 != count($parts = explode(':', $controller))) {
+ throw new \InvalidArgumentException(sprintf('The "%s" controller is not a valid a:b:c controller string.', $controller));
+ }
+ list($bundle, $controller, $action) = $parts;
+ $class = null;
+ $logs = array();
+ foreach ($this->kernel->getBundle($bundle, false) as $b) {
+ $try = $b->getNamespace().'\\Controller\\'.$controller.'Controller';
+ if (!class_exists($try)) {
+ if (null !== $this->logger) {
+ $logs[] = sprintf('Unable to find controller "%s:%s" - class "%s" does not exist.', $bundle, $controller, $try);
+ }
+ } else {
+ $class = $try;
+ break;
+ }
+ }
+ if (null === $class) {
+ $this->handleControllerNotFoundException($bundle, $controller, $logs);
+ }
+ return $class.'::'.$action.'Action';
+ }
+ private function handleControllerNotFoundException($bundle, $controller, array $logs)
+ {
+ if (null !== $this->logger) {
+ foreach ($logs as $log) {
+ $this->logger->info($log);
+ }
+ }
+ if (1 == count($logs)) {
+ throw new \InvalidArgumentException($logs[0]);
+ }
+ $names = array();
+ foreach ($this->kernel->getBundle($bundle, false) as $b) {
+ $names[] = $b->getName();
+ }
+ $msg = sprintf('Unable to find controller "%s:%s" in bundles %s.', $bundle, $controller, implode(', ', $names));
+ throw new \InvalidArgumentException($msg);
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Controller
+{
+use Symfony\Component\HttpKernel\Log\LoggerInterface;
+use Symfony\Component\HttpKernel\Controller\ControllerResolver as BaseControllerResolver;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser;
+use Symfony\Component\DependencyInjection\ContainerAwareInterface;
+class ControllerResolver extends BaseControllerResolver
+{
+ protected $container;
+ protected $parser;
+ public function __construct(ContainerInterface $container, ControllerNameParser $parser, LoggerInterface $logger = null)
+ {
+ $this->container = $container;
+ $this->parser = $parser;
+ parent::__construct($logger);
+ }
+ protected function createController($controller)
+ {
+ if (false === strpos($controller, '::')) {
+ $count = substr_count($controller, ':');
+ if (2 == $count) {
+ $controller = $this->parser->parse($controller);
+ } elseif (1 == $count) {
+ list($service, $method) = explode(':', $controller);
+ return array($this->container->get($service), $method);
+ } else {
+ throw new \LogicException(sprintf('Unable to parse the controller name "%s".', $controller));
+ }
+ }
+ list($class, $method) = explode('::', $controller);
+ if (!class_exists($class)) {
+ throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
+ }
+ $controller = new $class();
+ if ($controller instanceof ContainerAwareInterface) {
+ $controller->setContainer($this->container);
+ }
+ return array($controller, $method);
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle\Controller
+{
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpFoundation\RedirectResponse;
+use Symfony\Component\DependencyInjection\ContainerAware;
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+class Controller extends ContainerAware
+{
+ public function generateUrl($route, array $parameters = array(), $absolute = false)
+ {
+ return $this->container->get('router')->generate($route, $parameters, $absolute);
+ }
+ public function forward($controller, array $path = array(), array $query = array())
+ {
+ return $this->container->get('http_kernel')->forward($controller, $path, $query);
+ }
+ public function redirect($url, $status = 302)
+ {
+ return new RedirectResponse($url, $status);
+ }
+ public function renderView($view, array $parameters = array())
+ {
+ return $this->container->get('templating')->render($view, $parameters);
+ }
+ public function render($view, array $parameters = array(), Response $response = null)
+ {
+ return $this->container->get('templating')->renderResponse($view, $parameters, $response);
+ }
+ public function createNotFoundException($message = 'Not Found', \Exception $previous = null)
+ {
+ return new NotFoundHttpException($message, $previous);
+ }
+ public function has($id)
+ {
+ return $this->container->has($id);
+ }
+ public function get($id)
+ {
+ return $this->container->get($id);
+ }
+}
+}
+namespace Symfony\Bundle\FrameworkBundle
+{
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
+use Symfony\Component\EventDispatcher\Event;
+class ContainerAwareEventDispatcher extends EventDispatcher
+{
+ private $container;
+ private $listenerIds;
+ public function __construct(ContainerInterface $container)
+ {
+ $this->container = $container;
+ }
+ public function addListenerService($eventNames, $serviceId, $priority = 0)
+ {
+ if (!is_string($serviceId)) {
+ throw new \InvalidArgumentException('Expected a string argument');
+ }
+ foreach ((array) $eventNames as $event) {
+ $this->listenerIds[$event][$serviceId] = $priority;
+ }
+ }
+ public function dispatch($eventName, Event $event = null)
+ {
+ if (isset($this->listenerIds[$eventName])) {
+ foreach ($this->listenerIds[$eventName] as $serviceId => $priority) {
+ $this->addListener($eventName, $this->container->get($serviceId), $priority);
+ }
+ }
+ parent::dispatch($eventName, $event);
+ }
+}
+}
+namespace Symfony\Component\Security\Http
+{
+use Symfony\Component\HttpKernel\HttpKernelInterface;
+use Symfony\Component\HttpKernel\Event\GetResponseEvent;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+class Firewall
+{
+ private $map;
+ private $dispatcher;
+ private $currentListeners;
+ public function __construct(FirewallMapInterface $map, EventDispatcherInterface $dispatcher)
+ {
+ $this->map = $map;
+ $this->dispatcher = $dispatcher;
+ $this->currentListeners = array();
+ }
+ public function onCoreRequest(GetResponseEvent $event)
+ {
+ if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
+ return;
+ }
+ list($listeners, $exception) = $this->map->getListeners($event->getRequest());
+ if (null !== $exception) {
+ $exception->register($this->dispatcher);
+ }
+ foreach ($listeners as $listener) {
+ $response = $listener->handle($event);
+ if ($event->hasResponse()) {
+ break;
+ }
+ }
+ }
+}
+}
+namespace Symfony\Component\Security\Http
+{
+use Symfony\Component\HttpFoundation\Request;
+interface FirewallMapInterface
+{
+ function getListeners(Request $request);
+}}
+namespace Symfony\Component\Security\Core
+{
+use Symfony\Component\Security\Core\User\UserInterface;
+use Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException;
+use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface;
+use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface;
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Acl\Voter\FieldVote;
+class SecurityContext implements SecurityContextInterface
+{
+ private $token;
+ private $accessDecisionManager;
+ private $authenticationManager;
+ private $alwaysAuthenticate;
+ public function __construct(AuthenticationManagerInterface $authenticationManager, AccessDecisionManagerInterface $accessDecisionManager, $alwaysAuthenticate = false)
+ {
+ $this->authenticationManager = $authenticationManager;
+ $this->accessDecisionManager = $accessDecisionManager;
+ $this->alwaysAuthenticate = $alwaysAuthenticate;
+ }
+ public final function isGranted($attributes, $object = null)
+ {
+ if (null === $this->token) {
+ throw new AuthenticationCredentialsNotFoundException('The security context contains no authentication token.');
+ }
+ if ($this->alwaysAuthenticate || !$this->token->isAuthenticated()) {
+ $this->token = $this->authenticationManager->authenticate($this->token);
+ }
+ return $this->accessDecisionManager->decide($this->token, (array) $attributes, $object);
+ }
+ public function getToken()
+ {
+ return $this->token;
+ }
+ public function setToken(TokenInterface $token = null)
+ {
+ $this->token = $token;
+ }
+}
+}
+namespace Symfony\Component\Security\Core
+{
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+interface SecurityContextInterface
+{
+ const ACCESS_DENIED_ERROR = '_security.403_error';
+ const AUTHENTICATION_ERROR = '_security.last_error';
+ const LAST_USERNAME = '_security.last_username';
+ function getToken();
+ function setToken(TokenInterface $token);
+ function isGranted($attributes, $object = null);
+}}
+namespace Symfony\Component\Security\Core\User
+{
+interface UserProviderInterface
+{
+ function loadUserByUsername($username);
+ function loadUser(UserInterface $user);
+ function supportsClass($class);
+}}
+namespace Symfony\Component\Security\Core\Authentication
+{
+use Symfony\Component\Security\Core\Exception\AccountStatusException;
+use Symfony\Component\Security\Core\Exception\AuthenticationException;
+use Symfony\Component\Security\Core\Exception\ProviderNotFoundException;
+use Symfony\Component\Security\Core\Authentication\Provider\AuthenticationProviderInterface;
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+class AuthenticationProviderManager implements AuthenticationManagerInterface
+{
+ private $providers;
+ private $eraseCredentials;
+ public function __construct(array $providers, $eraseCredentials = true)
+ {
+ if (!$providers) {
+ throw new \InvalidArgumentException('You must at least add one authentication provider.');
+ }
+ $this->providers = $providers;
+ $this->eraseCredentials = (Boolean) $eraseCredentials;
+ }
+ public function authenticate(TokenInterface $token)
+ {
+ $lastException = null;
+ $result = null;
+ foreach ($this->providers as $provider) {
+ if (!$provider->supports($token)) {
+ continue;
+ }
+ try {
+ $result = $provider->authenticate($token);
+ if (null !== $result) {
+ break;
+ }
+ } catch (AccountStatusException $e) {
+ $e->setExtraInformation($token);
+ throw $e;
+ } catch (AuthenticationException $e) {
+ $lastException = $e;
+ }
+ }
+ if (null !== $result) {
+ if (true === $this->eraseCredentials) {
+ $result->eraseCredentials();
+ }
+ return $result;
+ }
+ if (null === $lastException) {
+ $lastException = new ProviderNotFoundException(sprintf('No Authentication Provider found for token of class "%s".', get_class($token)));
+ }
+ $lastException->setExtraInformation($token);
+ throw $lastException;
+ }
+}
+}
+namespace Symfony\Component\Security\Core\Authentication
+{
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+use Symfony\Component\Security\Core\Exception\AuthenticationException;
+interface AuthenticationManagerInterface
+{
+ function authenticate(TokenInterface $token);
+}
+}
+namespace Symfony\Component\Security\Core\Authorization
+{
+use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+class AccessDecisionManager implements AccessDecisionManagerInterface
+{
+ private $voters;
+ private $strategy;
+ private $allowIfAllAbstainDecisions;
+ private $allowIfEqualGrantedDeniedDecisions;
+ public function __construct(array $voters, $strategy = 'affirmative', $allowIfAllAbstainDecisions = false, $allowIfEqualGrantedDeniedDecisions = true)
+ {
+ if (!$voters) {
+ throw new \InvalidArgumentException('You must at least add one voter.');
+ }
+ $this->voters = $voters;
+ $this->strategy = 'decide'.ucfirst($strategy);
+ $this->allowIfAllAbstainDecisions = (Boolean) $allowIfAllAbstainDecisions;
+ $this->allowIfEqualGrantedDeniedDecisions = (Boolean) $allowIfEqualGrantedDeniedDecisions;
+ }
+ public function decide(TokenInterface $token, array $attributes, $object = null)
+ {
+ return $this->{$this->strategy}($token, $attributes, $object);
+ }
+ public function supportsAttribute($attribute)
+ {
+ foreach ($this->voters as $voter) {
+ if ($voter->supportsAttribute($attribute)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ public function supportsClass($class)
+ {
+ foreach ($this->voters as $voter) {
+ if ($voter->supportsClass($class)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ private function decideAffirmative(TokenInterface $token, array $attributes, $object = null)
+ {
+ $deny = 0;
+ foreach ($this->voters as $voter) {
+ $result = $voter->vote($token, $object, $attributes);
+ switch ($result) {
+ case VoterInterface::ACCESS_GRANTED:
+ return true;
+ case VoterInterface::ACCESS_DENIED:
+ ++$deny;
+ break;
+ default:
+ break;
+ }
+ }
+ if ($deny > 0) {
+ return false;
+ }
+ return $this->allowIfAllAbstainDecisions;
+ }
+ private function decideConsensus(TokenInterface $token, array $attributes, $object = null)
+ {
+ $grant = 0;
+ $deny = 0;
+ $abstain = 0;
+ foreach ($this->voters as $voter) {
+ $result = $voter->vote($token, $object, $attributes);
+ switch ($result) {
+ case VoterInterface::ACCESS_GRANTED:
+ ++$grant;
+ break;
+ case VoterInterface::ACCESS_DENIED:
+ ++$deny;
+ break;
+ default:
+ ++$abstain;
+ break;
+ }
+ }
+ if ($grant > $deny) {
+ return true;
+ }
+ if ($deny > $grant) {
+ return false;
+ }
+ if ($grant == $deny && $grant != 0) {
+ return $this->allowIfEqualGrantedDeniedDecisions;
+ }
+ return $this->allowIfAllAbstainDecisions;
+ }
+ private function decideUnanimous(TokenInterface $token, array $attributes, $object = null)
+ {
+ $grant = 0;
+ foreach ($attributes as $attribute) {
+ foreach ($this->voters as $voter) {
+ $result = $voter->vote($token, $object, array($attribute));
+ switch ($result) {
+ case VoterInterface::ACCESS_GRANTED:
+ ++$grant;
+ break;
+ case VoterInterface::ACCESS_DENIED:
+ return false;
+ default:
+ break;
+ }
+ }
+ }
+ if ($grant > 0) {
+ return true;
+ }
+ return $this->allowIfAllAbstainDecisions;
+ }
+}
+}
+namespace Symfony\Component\Security\Core\Authorization
+{
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+interface AccessDecisionManagerInterface
+{
+ function decide(TokenInterface $token, array $attributes, $object = null);
+ function supportsAttribute($attribute);
+ function supportsClass($class);
+}
+}
+namespace Symfony\Component\Security\Core\Authorization\Voter
+{
+use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
+interface VoterInterface
+{
+ const ACCESS_GRANTED = 1;
+ const ACCESS_ABSTAIN = 0;
+ const ACCESS_DENIED = -1;
+ function supportsAttribute($attribute);
+ function supportsClass($class);
+ function vote(TokenInterface $token, $object, array $attributes);
+}
+}
+namespace Symfony\Bundle\SecurityBundle\Security
+{
+use Symfony\Component\Security\Http\FirewallMapInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+class FirewallMap implements FirewallMapInterface
+{
+ protected $container;
+ protected $map;
+ public function __construct(ContainerInterface $container, array $map)
+ {
+ $this->container = $container;
+ $this->map = $map;
+ }
+ public function getListeners(Request $request)
+ {
+ foreach ($this->map as $contextId => $requestMatcher) {
+ if (null === $requestMatcher || $requestMatcher->matches($request)) {
+ return $this->container->get($contextId)->getContext();
+ }
+ }
+ return array(array(), null);
+ }
+}}
+namespace Symfony\Bundle\SecurityBundle\Security
+{
+use Symfony\Component\Security\Http\Firewall\ExceptionListener;
+class FirewallContext
+{
+ private $listeners;
+ private $exceptionListener;
+ public function __construct(array $listeners, ExceptionListener $exceptionListener = null)
+ {
+ $this->listeners = $listeners;
+ $this->exceptionListener = $exceptionListener;
+ }
+ public function getContext()
+ {
+ return array($this->listeners, $this->exceptionListener);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+class RequestMatcher implements RequestMatcherInterface
+{
+ protected $path;
+ protected $host;
+ protected $methods;
+ protected $ip;
+ protected $attributes;
+ public function __construct($path = null, $host = null, $methods = null, $ip = null, array $attributes = array())
+ {
+ $this->path = $path;
+ $this->host = $host;
+ $this->methods = $methods;
+ $this->ip = $ip;
+ $this->attributes = $attributes;
+ }
+ public function matchHost($regexp)
+ {
+ $this->host = $regexp;
+ }
+ public function matchPath($regexp)
+ {
+ $this->path = $regexp;
+ }
+ public function matchIp($ip)
+ {
+ $this->ip = $ip;
+ }
+ public function matchMethod($method)
+ {
+ $this->methods = array_map(
+ function ($m)
+ {
+ return strtolower($m);
+ },
+ is_array($method) ? $method : array($method)
+ );
+ }
+ public function matchAttribute($key, $regexp)
+ {
+ $this->attributes[$key] = $regexp;
+ }
+ public function matches(Request $request)
+ {
+ if (null !== $this->methods && !in_array(strtolower($request->getMethod()), $this->methods)) {
+ return false;
+ }
+ foreach ($this->attributes as $key => $pattern) {
+ if (!preg_match('#'.str_replace('#', '\\#', $pattern).'#', $request->attributes->get($key))) {
+ return false;
+ }
+ }
+ if (null !== $this->path && !preg_match('#'.str_replace('#', '\\#', $this->path).'#', $request->getPathInfo())) {
+ return false;
+ }
+ if (null !== $this->host && !preg_match('#'.str_replace('#', '\\#', $this->host).'#', $request->getHost())) {
+ return false;
+ }
+ if (null !== $this->ip && !$this->checkIp($request->getClientIp())) {
+ return false;
+ }
+ return true;
+ }
+ protected function checkIp($ip)
+ {
+ if (false !== strpos($this->ip, '/')) {
+ list($address, $netmask) = explode('/', $this->ip);
+ if ($netmask < 1 || $netmask > 32) {
+ return false;
+ }
+ } else {
+ $address = $this->ip;
+ $netmask = 32;
+ }
+ return 0 === substr_compare(sprintf('%032b', ip2long($ip)), sprintf('%032b', ip2long($address)), 0, $netmask);
+ }
+}
+}
+namespace Symfony\Component\HttpFoundation
+{
+interface RequestMatcherInterface
+{
+ function matches(Request $request);
+}
+}
+namespace
+{
+class Twig_Environment
+{
+ const VERSION = '1.0.0-RC2';
+ protected $charset;
+ protected $loader;
+ protected $debug;
+ protected $autoReload;
+ protected $cache;
+ protected $lexer;
+ protected $parser;
+ protected $compiler;
+ protected $baseTemplateClass;
+ protected $extensions;
+ protected $parsers;
+ protected $visitors;
+ protected $filters;
+ protected $tests;
+ protected $functions;
+ protected $globals;
+ protected $runtimeInitialized;
+ protected $loadedTemplates;
+ protected $strictVariables;
+ protected $unaryOperators;
+ protected $binaryOperators;
+ protected $templateClassPrefix = '__TwigTemplate_';
+ protected $functionCallbacks;
+ protected $filterCallbacks;
+ public function __construct(Twig_LoaderInterface $loader = null, $options = array())
+ {
+ if (null !== $loader) {
+ $this->setLoader($loader);
+ }
+ $options = array_merge(array(
+ 'debug' => false,
+ 'charset' => 'UTF-8',
+ 'base_template_class' => 'Twig_Template',
+ 'strict_variables' => false,
+ 'autoescape' => true,
+ 'cache' => false,
+ 'auto_reload' => null,
+ 'optimizations' => -1,
+ ), $options);
+ $this->debug = (bool) $options['debug'];
+ $this->charset = $options['charset'];
+ $this->baseTemplateClass = $options['base_template_class'];
+ $this->autoReload = null === $options['auto_reload'] ? $this->debug : (bool) $options['auto_reload'];
+ $this->extensions = array(
+ 'core' => new Twig_Extension_Core(),
+ 'escaper' => new Twig_Extension_Escaper((bool) $options['autoescape']),
+ 'optimizer' => new Twig_Extension_Optimizer($options['optimizations']),
+ );
+ $this->strictVariables = (bool) $options['strict_variables'];
+ $this->runtimeInitialized = false;
+ $this->setCache($options['cache']);
+ $this->functionCallbacks = array();
+ $this->filterCallbacks = array();
+ }
+ public function getBaseTemplateClass()
+ {
+ return $this->baseTemplateClass;
+ }
+ public function setBaseTemplateClass($class)
+ {
+ $this->baseTemplateClass = $class;
+ }
+ public function enableDebug()
+ {
+ $this->debug = true;
+ }
+ public function disableDebug()
+ {
+ $this->debug = false;
+ }
+ public function isDebug()
+ {
+ return $this->debug;
+ }
+ public function enableAutoReload()
+ {
+ $this->autoReload = true;
+ }
+ public function disableAutoReload()
+ {
+ $this->autoReload = false;
+ }
+ public function isAutoReload()
+ {
+ return $this->autoReload;
+ }
+ public function enableStrictVariables()
+ {
+ $this->strictVariables = true;
+ }
+ public function disableStrictVariables()
+ {
+ $this->strictVariables = false;
+ }
+ public function isStrictVariables()
+ {
+ return $this->strictVariables;
+ }
+ public function getCache()
+ {
+ return $this->cache;
+ }
+ public function setCache($cache)
+ {
+ $this->cache = $cache ? $cache : false;
+ }
+ public function getCacheFilename($name)
+ {
+ if (false === $this->cache) {
+ return false;
+ }
+ $class = substr($this->getTemplateClass($name), strlen($this->templateClassPrefix));
+ return $this->getCache().'/'.substr($class, 0, 2).'/'.substr($class, 2, 2).'/'.substr($class, 4).'.php';
+ }
+ public function getTemplateClass($name)
+ {
+ return $this->templateClassPrefix.md5($this->loader->getCacheKey($name));
+ }
+ public function getTemplateClassPrefix()
+ {
+ return $this->templateClassPrefix;
+ }
+ public function render($name, array $context = array())
+ {
+ return $this->loadTemplate($name)->render($context);
+ }
+ public function loadTemplate($name)
+ {
+ $cls = $this->getTemplateClass($name);
+ if (isset($this->loadedTemplates[$cls])) {
+ return $this->loadedTemplates[$cls];
+ }
+ if (!class_exists($cls, false)) {
+ if (false === $cache = $this->getCacheFilename($name)) {
+ eval('?>'.$this->compileSource($this->loader->getSource($name), $name));
+ } else {
+ if (!file_exists($cache) || ($this->isAutoReload() && !$this->loader->isFresh($name, filemtime($cache)))) {
+ $this->writeCacheFile($cache, $this->compileSource($this->loader->getSource($name), $name));
+ }
+ require_once $cache;
+ }
+ }
+ if (!$this->runtimeInitialized) {
+ $this->initRuntime();
+ }
+ return $this->loadedTemplates[$cls] = new $cls($this);
+ }
+ public function clearTemplateCache()
+ {
+ $this->loadedTemplates = array();
+ }
+ public function clearCacheFiles()
+ {
+ if (false === $this->cache) {
+ return;
+ }
+ foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->cache), RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
+ if ($file->isFile()) {
+ @unlink($file->getPathname());
+ }
+ }
+ }
+ public function getLexer()
+ {
+ if (null === $this->lexer) {
+ $this->lexer = new Twig_Lexer($this);
+ }
+ return $this->lexer;
+ }
+ public function setLexer(Twig_LexerInterface $lexer)
+ {
+ $this->lexer = $lexer;
+ }
+ public function tokenize($source, $name = null)
+ {
+ return $this->getLexer()->tokenize($source, $name);
+ }
+ public function getParser()
+ {
+ if (null === $this->parser) {
+ $this->parser = new Twig_Parser($this);
+ }
+ return $this->parser;
+ }
+ public function setParser(Twig_ParserInterface $parser)
+ {
+ $this->parser = $parser;
+ }
+ public function parse(Twig_TokenStream $tokens)
+ {
+ return $this->getParser()->parse($tokens);
+ }
+ public function getCompiler()
+ {
+ if (null === $this->compiler) {
+ $this->compiler = new Twig_Compiler($this);
+ }
+ return $this->compiler;
+ }
+ public function setCompiler(Twig_CompilerInterface $compiler)
+ {
+ $this->compiler = $compiler;
+ }
+ public function compile(Twig_NodeInterface $node)
+ {
+ return $this->getCompiler()->compile($node)->getSource();
+ }
+ public function compileSource($source, $name = null)
+ {
+ return $this->compile($this->parse($this->tokenize($source, $name)));
+ }
+ public function setLoader(Twig_LoaderInterface $loader)
+ {
+ $this->loader = $loader;
+ }
+ public function getLoader()
+ {
+ return $this->loader;
+ }
+ public function setCharset($charset)
+ {
+ $this->charset = $charset;
+ }
+ public function getCharset()
+ {
+ return $this->charset;
+ }
+ public function initRuntime()
+ {
+ $this->runtimeInitialized = true;
+ foreach ($this->getExtensions() as $extension) {
+ $extension->initRuntime($this);
+ }
+ }
+ public function hasExtension($name)
+ {
+ return isset($this->extensions[$name]);
+ }
+ public function getExtension($name)
+ {
+ if (!isset($this->extensions[$name])) {
+ throw new Twig_Error_Runtime(sprintf('The "%s" extension is not enabled.', $name));
+ }
+ return $this->extensions[$name];
+ }
+ public function addExtension(Twig_ExtensionInterface $extension)
+ {
+ $this->extensions[$extension->getName()] = $extension;
+ }
+ public function removeExtension($name)
+ {
+ unset($this->extensions[$name]);
+ }
+ public function setExtensions(array $extensions)
+ {
+ foreach ($extensions as $extension) {
+ $this->addExtension($extension);
+ }
+ }
+ public function getExtensions()
+ {
+ return $this->extensions;
+ }
+ public function addTokenParser(Twig_TokenParserInterface $parser)
+ {
+ if (null === $this->parsers) {
+ $this->getTokenParsers();
+ }
+ $this->parsers->addTokenParser($parser);
+ }
+ public function getTokenParsers()
+ {
+ if (null === $this->parsers) {
+ $this->parsers = new Twig_TokenParserBroker;
+ foreach ($this->getExtensions() as $extension) {
+ $parsers = $extension->getTokenParsers();
+ foreach($parsers as $parser) {
+ if ($parser instanceof Twig_TokenParserInterface) {
+ $this->parsers->addTokenParser($parser);
+ } else if ($parser instanceof Twig_TokenParserBrokerInterface) {
+ $this->parsers->addTokenParserBroker($parser);
+ } else {
+ throw new Twig_Error_Runtime('getTokenParsers() must return an array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances');
+ }
+ }
+ }
+ }
+ return $this->parsers;
+ }
+ public function addNodeVisitor(Twig_NodeVisitorInterface $visitor)
+ {
+ if (null === $this->visitors) {
+ $this->getNodeVisitors();
+ }
+ $this->visitors[] = $visitor;
+ }
+ public function getNodeVisitors()
+ {
+ if (null === $this->visitors) {
+ $this->visitors = array();
+ foreach ($this->getExtensions() as $extension) {
+ $this->visitors = array_merge($this->visitors, $extension->getNodeVisitors());
+ }
+ }
+ return $this->visitors;
+ }
+ public function addFilter($name, Twig_FilterInterface $filter)
+ {
+ if (null === $this->filters) {
+ $this->loadFilters();
+ }
+ $this->filters[$name] = $filter;
+ }
+ public function getFilter($name)
+ {
+ if (null === $this->filters) {
+ $this->loadFilters();
+ }
+ if (isset($this->filters[$name])) {
+ return $this->filters[$name];
+ }
+ foreach ($this->filterCallbacks as $callback) {
+ if (false !== $filter = call_user_func($callback, $name)) {
+ return $filter;
+ }
+ }
+ return false;
+ }
+ public function registerUndefinedFilterCallback($callable)
+ {
+ $this->filterCallbacks[] = $callable;
+ }
+ protected function loadFilters()
+ {
+ $this->filters = array();
+ foreach ($this->getExtensions() as $extension) {
+ $this->filters = array_merge($this->filters, $extension->getFilters());
+ }
+ }
+ public function addTest($name, Twig_TestInterface $test)
+ {
+ if (null === $this->tests) {
+ $this->getTests();
+ }
+ $this->tests[$name] = $test;
+ }
+ public function getTests()
+ {
+ if (null === $this->tests) {
+ $this->tests = array();
+ foreach ($this->getExtensions() as $extension) {
+ $this->tests = array_merge($this->tests, $extension->getTests());
+ }
+ }
+ return $this->tests;
+ }
+ public function addFunction($name, Twig_FunctionInterface $function)
+ {
+ if (null === $this->functions) {
+ $this->loadFunctions();
+ }
+ $this->functions[$name] = $function;
+ }
+ public function getFunction($name)
+ {
+ if (null === $this->functions) {
+ $this->loadFunctions();
+ }
+ if (isset($this->functions[$name])) {
+ return $this->functions[$name];
+ }
+ foreach ($this->functionCallbacks as $callback) {
+ if (false !== $function = call_user_func($callback, $name)) {
+ return $function;
+ }
+ }
+ return false;
+ }
+ public function registerUndefinedFunctionCallback($callable)
+ {
+ $this->functionCallbacks[] = $callable;
+ }
+ protected function loadFunctions() {
+ $this->functions = array();
+ foreach ($this->getExtensions() as $extension) {
+ $this->functions = array_merge($this->functions, $extension->getFunctions());
+ }
+ }
+ public function addGlobal($name, $value)
+ {
+ if (null === $this->globals) {
+ $this->getGlobals();
+ }
+ $this->globals[$name] = $value;
+ }
+ public function getGlobals()
+ {
+ if (null === $this->globals) {
+ $this->globals = array();
+ foreach ($this->getExtensions() as $extension) {
+ $this->globals = array_merge($this->globals, $extension->getGlobals());
+ }
+ }
+ return $this->globals;
+ }
+ public function getUnaryOperators()
+ {
+ if (null === $this->unaryOperators) {
+ $this->initOperators();
+ }
+ return $this->unaryOperators;
+ }
+ public function getBinaryOperators()
+ {
+ if (null === $this->binaryOperators) {
+ $this->initOperators();
+ }
+ return $this->binaryOperators;
+ }
+ protected function initOperators()
+ {
+ $this->unaryOperators = array();
+ $this->binaryOperators = array();
+ foreach ($this->getExtensions() as $extension) {
+ $operators = $extension->getOperators();
+ if (!$operators) {
+ continue;
+ }
+ if (2 !== count($operators)) {
+ throw new InvalidArgumentException(sprintf('"%s::getOperators()" does not return a valid operators array.', get_class($extension)));
+ }
+ $this->unaryOperators = array_merge($this->unaryOperators, $operators[0]);
+ $this->binaryOperators = array_merge($this->binaryOperators, $operators[1]);
+ }
+ }
+ protected function writeCacheFile($file, $content)
+ {
+ if (!is_dir(dirname($file))) {
+ mkdir(dirname($file), 0777, true);
+ }
+ $tmpFile = tempnam(dirname($file), basename($file));
+ if (false !== @file_put_contents($tmpFile, $content)) {
+ if (@rename($tmpFile, $file) || (@copy($tmpFile, $file) && unlink($tmpFile))) {
+ chmod($file, 0644);
+ return;
+ }
+ }
+ throw new Twig_Error_Runtime(sprintf('Failed to write cache file "%s".', $file));
+ }
+}
+}
+namespace
+{
+interface Twig_ExtensionInterface
+{
+ function initRuntime(Twig_Environment $environment);
+ function getTokenParsers();
+ function getNodeVisitors();
+ function getFilters();
+ function getTests();
+ function getFunctions();
+ function getOperators();
+ function getGlobals();
+ function getName();
+}
+}
+namespace
+{
+abstract class Twig_Extension implements Twig_ExtensionInterface
+{
+ public function initRuntime(Twig_Environment $environment)
+ {
+ }
+ public function getTokenParsers()
+ {
+ return array();
+ }
+ public function getNodeVisitors()
+ {
+ return array();
+ }
+ public function getFilters()
+ {
+ return array();
+ }
+ public function getTests()
+ {
+ return array();
+ }
+ public function getFunctions()
+ {
+ return array();
+ }
+ public function getOperators()
+ {
+ return array();
+ }
+ public function getGlobals()
+ {
+ return array();
+ }
+}
+}
+namespace
+{
+class Twig_Extension_Core extends Twig_Extension
+{
+ public function getTokenParsers()
+ {
+ return array(
+ new Twig_TokenParser_For(),
+ new Twig_TokenParser_If(),
+ new Twig_TokenParser_Extends(),
+ new Twig_TokenParser_Include(),
+ new Twig_TokenParser_Block(),
+ new Twig_TokenParser_Filter(),
+ new Twig_TokenParser_Macro(),
+ new Twig_TokenParser_Import(),
+ new Twig_TokenParser_From(),
+ new Twig_TokenParser_Set(),
+ new Twig_TokenParser_Spaceless(),
+ );
+ }
+ public function getFilters()
+ {
+ $filters = array(
+ 'date' => new Twig_Filter_Function('twig_date_format_filter'),
+ 'format' => new Twig_Filter_Function('sprintf'),
+ 'replace' => new Twig_Filter_Function('twig_strtr'),
+ 'url_encode' => new Twig_Filter_Function('twig_urlencode_filter'),
+ 'json_encode' => new Twig_Filter_Function('json_encode'),
+ 'title' => new Twig_Filter_Function('twig_title_string_filter', array('needs_environment' => true)),
+ 'capitalize' => new Twig_Filter_Function('twig_capitalize_string_filter', array('needs_environment' => true)),
+ 'upper' => new Twig_Filter_Function('strtoupper'),
+ 'lower' => new Twig_Filter_Function('strtolower'),
+ 'striptags' => new Twig_Filter_Function('strip_tags'),
+ 'join' => new Twig_Filter_Function('twig_join_filter'),
+ 'reverse' => new Twig_Filter_Function('twig_reverse_filter'),
+ 'length' => new Twig_Filter_Function('twig_length_filter', array('needs_environment' => true)),
+ 'sort' => new Twig_Filter_Function('twig_sort_filter'),
+ 'merge' => new Twig_Filter_Function('twig_array_merge'),
+ 'default' => new Twig_Filter_Function('twig_default_filter'),
+ 'keys' => new Twig_Filter_Function('twig_get_array_keys_filter'),
+ 'escape' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe')),
+ 'e' => new Twig_Filter_Function('twig_escape_filter', array('needs_environment' => true, 'is_safe_callback' => 'twig_escape_filter_is_safe')),
+ );
+ if (function_exists('mb_get_info')) {
+ $filters['upper'] = new Twig_Filter_Function('twig_upper_filter', array('needs_environment' => true));
+ $filters['lower'] = new Twig_Filter_Function('twig_lower_filter', array('needs_environment' => true));
+ }
+ return $filters;
+ }
+ public function getFunctions()
+ {
+ return array(
+ 'range' => new Twig_Function_Method($this, 'getRange'),
+ 'constant' => new Twig_Function_Method($this, 'getConstant'),
+ 'cycle' => new Twig_Function_Method($this, 'getCycle'),
+ );
+ }
+ public function getRange($start, $end, $step = 1)
+ {
+ return range($start, $end, $step);
+ }
+ public function getConstant($value)
+ {
+ return constant($value);
+ }
+ public function getCycle($values, $i)
+ {
+ if (!is_array($values) && !$values instanceof ArrayAccess) {
+ return $values;
+ }
+ return $values[$i % count($values)];
+ }
+ public function getTests()
+ {
+ return array(
+ 'even' => new Twig_Test_Function('twig_test_even'),
+ 'odd' => new Twig_Test_Function('twig_test_odd'),
+ 'defined' => new Twig_Test_Function('twig_test_defined'),
+ 'sameas' => new Twig_Test_Function('twig_test_sameas'),
+ 'none' => new Twig_Test_Function('twig_test_none'),
+ 'divisibleby' => new Twig_Test_Function('twig_test_divisibleby'),
+ 'constant' => new Twig_Test_Function('twig_test_constant'),
+ 'empty' => new Twig_Test_Function('twig_test_empty'),
+ );
+ }
+ public function getOperators()
+ {
+ return array(
+ array(
+ 'not' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Not'),
+ '-' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Neg'),
+ '+' => array('precedence' => 50, 'class' => 'Twig_Node_Expression_Unary_Pos'),
+ ),
+ array(
+ 'or' => array('precedence' => 10, 'class' => 'Twig_Node_Expression_Binary_Or', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ 'and' => array('precedence' => 15, 'class' => 'Twig_Node_Expression_Binary_And', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '==' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Equal', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '!=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_NotEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '<' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Less', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '>' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_Greater', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '>=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_GreaterEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '<=' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_LessEqual', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ 'not in' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_NotIn', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ 'in' => array('precedence' => 20, 'class' => 'Twig_Node_Expression_Binary_In', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '+' => array('precedence' => 30, 'class' => 'Twig_Node_Expression_Binary_Add', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '-' => array('precedence' => 30, 'class' => 'Twig_Node_Expression_Binary_Sub', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '~' => array('precedence' => 40, 'class' => 'Twig_Node_Expression_Binary_Concat', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '*' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Mul', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '/' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Div', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '//' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_FloorDiv', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '%' => array('precedence' => 60, 'class' => 'Twig_Node_Expression_Binary_Mod', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ 'is' => array('precedence' => 100, 'callable' => array($this, 'parseTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ 'is not' => array('precedence' => 100, 'callable' => array($this, 'parseNotTestExpression'), 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '..' => array('precedence' => 110, 'class' => 'Twig_Node_Expression_Binary_Range', 'associativity' => Twig_ExpressionParser::OPERATOR_LEFT),
+ '**' => array('precedence' => 200, 'class' => 'Twig_Node_Expression_Binary_Power', 'associativity' => Twig_ExpressionParser::OPERATOR_RIGHT),
+ ),
+ );
+ }
+ public function parseNotTestExpression(Twig_Parser $parser, $node)
+ {
+ return new Twig_Node_Expression_Unary_Not($this->parseTestExpression($parser, $node), $parser->getCurrentToken()->getLine());
+ }
+ public function parseTestExpression(Twig_Parser $parser, $node)
+ {
+ $stream = $parser->getStream();
+ $name = $stream->expect(Twig_Token::NAME_TYPE);
+ $arguments = null;
+ if ($stream->test(Twig_Token::PUNCTUATION_TYPE, '(')) {
+ $arguments = $parser->getExpressionParser()->parseArguments();
+ }
+ return new Twig_Node_Expression_Test($node, $name->getValue(), $arguments, $parser->getCurrentToken()->getLine());
+ }
+ public function getName()
+ {
+ return 'core';
+ }
+}
+function twig_date_format_filter($date, $format = 'F j, Y H:i')
+{
+ if (!$date instanceof DateTime) {
+ $date = new DateTime((ctype_digit($date) ? '@' : '').$date);
+ }
+ return $date->format($format);
+}
+function twig_urlencode_filter($url, $raw = false)
+{
+ if ($raw) {
+ return rawurlencode($url);
+ }
+ return urlencode($url);
+}
+function twig_array_merge($arr1, $arr2)
+{
+ if (!is_array($arr1) || !is_array($arr2)) {
+ throw new Twig_Error_Runtime('The merge filter only work with arrays or hashes.');
+ }
+ return array_merge($arr1, $arr2);
+}
+function twig_join_filter($value, $glue = '')
+{
+ return implode($glue, (array) $value);
+}
+function twig_default_filter($value, $default = '')
+{
+ return twig_test_empty($value) ? $default : $value;
+}
+function twig_get_array_keys_filter($array)
+{
+ if (is_object($array) && $array instanceof Traversable) {
+ return array_keys(iterator_to_array($array));
+ }
+ if (!is_array($array)) {
+ return array();
+ }
+ return array_keys($array);
+}
+function twig_reverse_filter($array)
+{
+ if (is_object($array) && $array instanceof Traversable) {
+ return array_reverse(iterator_to_array($array));
+ }
+ if (!is_array($array)) {
+ return array();
+ }
+ return array_reverse($array);
+}
+function twig_sort_filter($array)
+{
+ asort($array);
+ return $array;
+}
+function twig_in_filter($value, $compare)
+{
+ if (is_array($compare)) {
+ return in_array($value, $compare);
+ } elseif (is_string($compare)) {
+ return false !== strpos($compare, (string) $value);
+ } elseif (is_object($compare) && $compare instanceof Traversable) {
+ return in_array($value, iterator_to_array($compare, false));
+ }
+ return false;
+}
+function twig_strtr($pattern, $replacements)
+{
+ return str_replace(array_keys($replacements), array_values($replacements), $pattern);
+}
+function twig_escape_filter(Twig_Environment $env, $string, $type = 'html', $charset = null)
+{
+ if (is_object($string) && $string instanceof Twig_Markup) {
+ return $string;
+ }
+ if (!is_string($string) && !(is_object($string) && method_exists($string, '__toString'))) {
+ return $string;
+ }
+ if (null === $charset) {
+ $charset = $env->getCharset();
+ }
+ switch ($type) {
+ case 'js':
+ if ('UTF-8' != $charset) {
+ $string = _twig_convert_encoding($string, 'UTF-8', $charset);
+ }
+ if (null === $string = preg_replace_callback('#[^\p{L}\p{N} ]#u', '_twig_escape_js_callback', $string)) {
+ throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.');
+ }
+ if ('UTF-8' != $charset) {
+ $string = _twig_convert_encoding($string, $charset, 'UTF-8');
+ }
+ return $string;
+ case 'html':
+ return htmlspecialchars($string, ENT_QUOTES, $charset);
+ default:
+ throw new Twig_Error_Runtime(sprintf('Invalid escape type "%s".', $type));
+ }
+}
+function twig_escape_filter_is_safe(Twig_Node $filterArgs)
+{
+ foreach ($filterArgs as $arg) {
+ if ($arg instanceof Twig_Node_Expression_Constant) {
+ return array($arg->getAttribute('value'));
+ } else {
+ return array();
+ }
+ break;
+ }
+ return array('html');
+}
+if (function_exists('iconv')) {
+ function _twig_convert_encoding($string, $to, $from)
+ {
+ return iconv($from, $to, $string);
+ }
+} elseif (function_exists('mb_convert_encoding')) {
+ function _twig_convert_encoding($string, $to, $from)
+ {
+ return mb_convert_encoding($string, $to, $from);
+ }
+} else {
+ function _twig_convert_encoding($string, $to, $from)
+ {
+ throw new Twig_Error_Runtime('No suitable convert encoding function (use UTF-8 as your encoding or install the iconv or mbstring extension).');
+ }
+}
+function _twig_escape_js_callback($matches)
+{
+ $char = $matches[0];
+ if (!isset($char[1])) {
+ return '\\x'.substr('00'.bin2hex($char), -2);
+ }
+ $char = _twig_convert_encoding($char, 'UTF-16BE', 'UTF-8');
+ return '\\u'.substr('0000'.bin2hex($char), -4);
+}
+if (function_exists('mb_get_info')) {
+ function twig_length_filter(Twig_Environment $env, $thing)
+ {
+ return is_scalar($thing) ? mb_strlen($thing, $env->getCharset()) : count($thing);
+ }
+ function twig_upper_filter(Twig_Environment $env, $string)
+ {
+ if (null !== ($charset = $env->getCharset())) {
+ return mb_strtoupper($string, $charset);
+ }
+ return strtoupper($string);
+ }
+ function twig_lower_filter(Twig_Environment $env, $string)
+ {
+ if (null !== ($charset = $env->getCharset())) {
+ return mb_strtolower($string, $charset);
+ }
+ return strtolower($string);
+ }
+ function twig_title_string_filter(Twig_Environment $env, $string)
+ {
+ if (null !== ($charset = $env->getCharset())) {
+ return mb_convert_case($string, MB_CASE_TITLE, $charset);
+ }
+ return ucwords(strtolower($string));
+ }
+ function twig_capitalize_string_filter(Twig_Environment $env, $string)
+ {
+ if (null !== ($charset = $env->getCharset())) {
+ return mb_strtoupper(mb_substr($string, 0, 1, $charset), $charset).
+ mb_strtolower(mb_substr($string, 1, mb_strlen($string, $charset), $charset), $charset);
+ }
+ return ucfirst(strtolower($string));
+ }
+}
+else
+{
+ function twig_length_filter(Twig_Environment $env, $thing)
+ {
+ return is_scalar($thing) ? strlen($thing) : count($thing);
+ }
+ function twig_title_string_filter(Twig_Environment $env, $string)
+ {
+ return ucwords(strtolower($string));
+ }
+ function twig_capitalize_string_filter(Twig_Environment $env, $string)
+ {
+ return ucfirst(strtolower($string));
+ }
+}
+function twig_ensure_traversable($seq)
+{
+ if (is_array($seq) || (is_object($seq) && $seq instanceof Traversable)) {
+ return $seq;
+ } else {
+ return array();
+ }
+}
+function twig_test_sameas($value, $test)
+{
+ return $value === $test;
+}
+function twig_test_none($value)
+{
+ return null === $value;
+}
+function twig_test_divisibleby($value, $num)
+{
+ return 0 == $value % $num;
+}
+function twig_test_even($value)
+{
+ return $value % 2 == 0;
+}
+function twig_test_odd($value)
+{
+ return $value % 2 == 1;
+}
+function twig_test_constant($value, $constant)
+{
+ return constant($constant) === $value;
+}
+function twig_test_defined($name, $context)
+{
+ return array_key_exists($name, $context);
+}
+function twig_test_empty($value)
+{
+ return null === $value || false === $value || '' === (string) $value;
+}
+}
+namespace
+{
+class Twig_Extension_Escaper extends Twig_Extension
+{
+ protected $autoescape;
+ public function __construct($autoescape = true)
+ {
+ $this->autoescape = $autoescape;
+ }
+ public function getTokenParsers()
+ {
+ return array(new Twig_TokenParser_AutoEscape());
+ }
+ public function getNodeVisitors()
+ {
+ return array(new Twig_NodeVisitor_Escaper());
+ }
+ public function getFilters()
+ {
+ return array(
+ 'raw' => new Twig_Filter_Function('twig_raw_filter', array('is_safe' => array('all'))),
+ );
+ }
+ public function isGlobal()
+ {
+ return $this->autoescape;
+ }
+ public function getName()
+ {
+ return 'escaper';
+ }
+}
+function twig_raw_filter($string)
+{
+ return $string;
+}
+}
+namespace
+{
+class Twig_Extension_Optimizer extends Twig_Extension
+{
+ protected $optimizers;
+ public function __construct($optimizers = -1)
+ {
+ $this->optimizers = $optimizers;
+ }
+ public function getNodeVisitors()
+ {
+ return array(new Twig_NodeVisitor_Optimizer($this->optimizers));
+ }
+ public function getName()
+ {
+ return 'optimizer';
+ }
+}
+}
+namespace
+{
+interface Twig_LoaderInterface
+{
+ function getSource($name);
+ function getCacheKey($name);
+ function isFresh($name, $time);
+}
+}
+namespace
+{
+class Twig_Markup
+{
+ protected $content;
+ public function __construct($content)
+ {
+ $this->content = (string) $content;
+ }
+ public function __toString()
+ {
+ return $this->content;
+ }
+}
+}
+namespace
+{
+interface Twig_TemplateInterface
+{
+ const ANY_CALL = 'any';
+ const ARRAY_CALL = 'array';
+ const METHOD_CALL = 'method';
+ function render(array $context);
+ function display(array $context, array $blocks = array());
+ function getEnvironment();
+}
+}
+namespace
+{
+abstract class Twig_Template implements Twig_TemplateInterface
+{
+ static protected $cache = array();
+ protected $env;
+ protected $blocks;
+ public function __construct(Twig_Environment $env)
+ {
+ $this->env = $env;
+ $this->blocks = array();
+ }
+ public function getTemplateName()
+ {
+ return null;
+ }
+ public function getEnvironment()
+ {
+ return $this->env;
+ }
+ public function getParent(array $context)
+ {
+ return false;
+ }
+ public function displayParentBlock($name, array $context, array $blocks = array())
+ {
+ if (false !== $parent = $this->getParent($context)) {
+ $parent->displayBlock($name, $context, $blocks);
+ } else {
+ throw new Twig_Error_Runtime('This template has no parent', -1, $this->getTemplateName());
+ }
+ }
+ public function displayBlock($name, array $context, array $blocks = array())
+ {
+ if (isset($blocks[$name])) {
+ $b = $blocks;
+ unset($b[$name]);
+ call_user_func($blocks[$name], $context, $b);
+ } elseif (isset($this->blocks[$name])) {
+ call_user_func($this->blocks[$name], $context, $blocks);
+ } elseif (false !== $parent = $this->getParent($context)) {
+ $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks));
+ }
+ }
+ public function renderParentBlock($name, array $context, array $blocks = array())
+ {
+ ob_start();
+ $this->displayParentBlock($name, $context, $blocks);
+ return new Twig_Markup(ob_get_clean());
+ }
+ public function renderBlock($name, array $context, array $blocks = array())
+ {
+ ob_start();
+ $this->displayBlock($name, $context, $blocks);
+ return new Twig_Markup(ob_get_clean());
+ }
+ public function hasBlock($name)
+ {
+ return isset($this->blocks[$name]);
+ }
+ public function getBlockNames()
+ {
+ return array_keys($this->blocks);
+ }
+ public function display(array $context, array $blocks = array())
+ {
+ try {
+ $this->doDisplay($context, $blocks);
+ } catch (Twig_Error $e) {
+ throw $e;
+ } catch (Exception $e) {
+ throw new Twig_Error_Runtime(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, null, $e);
+ }
+ }
+ public function render(array $context)
+ {
+ ob_start();
+ try {
+ $this->display($context);
+ } catch (Exception $e) {
+ $count = 100;
+ while (ob_get_level() && --$count) {
+ ob_end_clean();
+ }
+ throw $e;
+ }
+ return ob_get_clean();
+ }
+ abstract protected function doDisplay(array $context, array $blocks = array());
+ protected function getContext($context, $item)
+ {
+ if (!array_key_exists($item, $context)) {
+ throw new Twig_Error_Runtime(sprintf('Variable "%s" does not exist', $item));
+ }
+ return $context[$item];
+ }
+ protected function getAttribute($object, $item, array $arguments = array(), $type = Twig_TemplateInterface::ANY_CALL, $noStrictCheck = false)
+ {
+ if (Twig_TemplateInterface::METHOD_CALL !== $type) {
+ if ((is_array($object) || is_object($object) && $object instanceof ArrayAccess) && isset($object[$item])) {
+ return $object[$item];
+ }
+ if (Twig_TemplateInterface::ARRAY_CALL === $type) {
+ if (!$this->env->isStrictVariables() || $noStrictCheck) {
+ return null;
+ }
+ if (is_object($object)) {
+ throw new Twig_Error_Runtime(sprintf('Key "%s" in object (with ArrayAccess) of type "%s" does not exist', $item, get_class($object)));
+ } else {
+ throw new Twig_Error_Runtime(sprintf('Key "%s" for array with keys "%s" does not exist', $item, implode(', ', array_keys($object))));
+ }
+ }
+ }
+ if (!is_object($object)) {
+ if (!$this->env->isStrictVariables() || $noStrictCheck) {
+ return null;
+ }
+ throw new Twig_Error_Runtime(sprintf('Item "%s" for "%s" does not exist', $item, $object));
+ }
+ $class = get_class($object);
+ if (!isset(self::$cache[$class])) {
+ $r = new ReflectionClass($class);
+ self::$cache[$class] = array('methods' => array(), 'properties' => array());
+ foreach ($r->getMethods(ReflectionMethod::IS_PUBLIC) as $method) {
+ self::$cache[$class]['methods'][strtolower($method->getName())] = true;
+ }
+