示例#1
0
 public function getCsrfToken($regenerate = false)
 {
     /** @var Session $session */
     $session = $this->di->share('session');
     $token = $session->get('csrf');
     if (!$token || $regenerate) {
         $token = $this->generateRandomNumber(32, false);
         $session->set('csrf', $token);
     }
     return $token;
 }
示例#2
0
 public function run()
 {
     $router = $this->injector->getInstance(Router::class);
     $controllerName = ucfirst(strtolower($router->getController())) . 'Controller';
     try {
         $controller = $this->injector->getInstance($controllerName);
     } catch (DependencyInjection_Exception $ex) {
         exit('Erreur 404');
     } catch (Exception $ex) {
         exit('Erreur 500');
     }
     $actionName = strtolower($router->getAction()) . 'Action';
     if (!method_exists($controller, $actionName)) {
         exit('Erreur 404');
     }
     $controller->{$actionName}();
 }
示例#3
0
 /**
  * Retrieves a service instance
  *
  * @param   string      $service        - The service name
  * @return  mixed
  */
 public static function get($service)
 {
     return self::$services->get($service);
 }
 /**
  * @covers DependencyInjection::normalizeClassName
  * @todo   Implement testNormalizeClassName().
  */
 public function testNormalizeClassName()
 {
     $this->assertEquals(A::class, DependencyInjection::normalizeClassName(A::class));
     $this->assertEquals('A', DependencyInjection::normalizeClassName('\\A'));
 }
示例#5
0
文件: Form.php 项目: ootori/aulait
 public function getCsrfToken()
 {
     return $this->di->share('security')->getCsrfToken();
 }
 public function createInstance(DependencyInjection $injector, ReflectionClass $class)
 {
     if (!$class->isInstantiable()) {
         throw new DependencyInjection_Exception('The class ' . $class->name . ' is not instantiable');
     }
     $constructor = $class->getConstructor();
     if ($constructor === null) {
         //Pas de constructeur => créé tout simplement l'instance
         return $class->newInstanceWithoutConstructor();
     }
     //S'il y a une constructeur essaye de récupérer les arguments
     $args = [];
     foreach ($constructor->getParameters() as $param) {
         if ($param->getClass() === null) {
             //Pas de classe définie
             if ($param->isDefaultValueAvailable()) {
                 //essaye de mettre la valeur par défaut
                 $args[] = $param->getDefaultValue();
             } else {
                 if (!$param->allowsNull()) {
                     //Pas de valeur par défaut, essaye de mettre null
                     throw new DependencyInjection_Exception('The parameter ' . $param->name . ' of ' . $class->name . ' constructor don\'t have a default value');
                 }
                 $args[] = null;
             }
         } else {
             //Une classe est disponible, utilise l'injecteur
             $args[] = $injector->getInstance($param->getClass()->name);
         }
     }
     //Créé l'instance avec les arguments récupérés
     return $class->newInstanceArgs($args);
 }
 public function createInstance(\DependencyInjection $injector, \ReflectionClass $class)
 {
     $config = $injector->getInstance(Config::class)->database;
     return new Database($config->dsn, $config->username, $config->password);
 }