Пример #1
0
 public static function run($node)
 {
     // is template node?
     if (is_object($node) && property_exists($node, '@template')) {
         $template = Template::name($node->{'@template'});
         foreach ($node as $inputName => $inputValue) {
             if ('@template' !== $inputName) {
                 $template->input($inputName, self::run($inputValue));
             }
         }
         return $template;
     }
     // is service node?
     if (is_object($node) && property_exists($node, '@service')) {
         $service = Service::name($node->{'@service'});
         if (property_exists($node, '@params')) {
             foreach ($node->{'@params'} as $inputValue) {
                 $service->input(self::run($inputValue));
             }
         }
         return $service->execute();
     }
     // is route parameter node?
     if (is_string($node) && 1 === preg_match('/^\\[(\\w+)\\]$/', $node, $matches)) {
         return Kernel::arg(lcfirst($matches[1]));
     }
     // something else?
     return $node;
 }
Пример #2
0
 /**
  * @param $name
  * @param $password
  * @return User|null
  * @throws Exception
  */
 public function auth($name, $password)
 {
     $id = $this->getIdByName($name);
     if (!$id) {
         throw new Exception("User with name {$name} not found");
     }
     $User = Kernel::getRepository(EntityType::USER)->loadById($id);
     if (password_verify($password, $User->get(User::FIELD_PASSWORD))) {
         return $User;
     }
     return null;
 }
Пример #3
0
 /**
  * @return FeedProvider
  */
 protected function getFeedProvider()
 {
     return Kernel::getInstance()->getFeedProvider();
 }
Пример #4
0
 /**
  * @return AbstractRepository
  */
 protected function getPostRepository()
 {
     return Kernel::getInstance()->getOrmProvider()->getRepositoryByType(EntityType::POST);
 }
Пример #5
0
     header('Content-Type: application/json');
     break;
 case 'register':
     $Redis = Kernel::getInstance()->getConnectionFactory()->getRedis('default');
     $UserAuthorizer = new \User\UserAuthorizer($Redis);
     try {
         $User = $UserAuthorizer->registerUser($_GET['email'], $_GET['name'], $_GET['password']);
         $_SESSION['user_id'] = $User->getId();
         $content = ['register' => true];
     } catch (Exception $Ex) {
         $content = ['register' => false, 'message' => $Ex->getMessage()];
     }
     header('Content-Type: application/json');
     break;
 case 'login':
     $Redis = Kernel::getInstance()->getConnectionFactory()->getRedis('default');
     $UserAuthorizer = new \User\UserAuthorizer($Redis);
     $User = $UserAuthorizer->auth($_GET['name'], $_GET['password']);
     if ($User) {
         $_SESSION['user_id'] = $User->getId();
         $content = ['auth' => true];
     } else {
         $content = ['auth' => false];
     }
     header('Content-Type: application/json');
     break;
 default:
     $TemplateRender = new TemplateRender();
     $data = ['isAuth' => $isAuth];
     if ($isAuth) {
         $data['user'] = $User->export();
Пример #6
0
<?php

use Config\ConfigLoader;
use Connection\ConnectionFactory;
use Kernel\Environment;
use Kernel\Kernel;
use Orm\Provider\OrmProviderArray;
use Orm\Provider\OrmProviderRedis;
require_once __DIR__ . '/path.php';
require_once PATH_VENDOR . '/autoload.php';
$Environment = new Environment(Environment::TEST);
$ConfigLoader = new ConfigLoader($Environment);
$ConnectionFactory = new ConnectionFactory($ConfigLoader);
$OrmProvider = new OrmProviderArray();
$Kernel = new Kernel();
$Kernel->setEnvironment($Environment);
$Kernel->setConfigLoader($ConfigLoader);
$Kernel->setConnectionFactory($ConnectionFactory);
$Kernel->setOrmProvider($OrmProvider);
Kernel::setInstance($Kernel);
return $Kernel;
Пример #7
0
 private function createRedis()
 {
     return \Kernel\Kernel::getInstance()->getConnectionFactory()->getRedis('default');
 }
Пример #8
0
 /**
  * @return AbstractRepository
  */
 public function getRepository()
 {
     return Kernel::getInstance()->getOrmProvider()->getRepositoryByType($this->getType());
 }
Пример #9
0
 protected function getRepositoryByType($type)
 {
     return Kernel::getInstance()->getOrmProvider()->getRepositoryByType($type);
 }