Вход Регистрация
Файл: Neiron/Kernel/Neiron.php
Строк: 132
<?php
/**
 * PHP 5x framework с открытым иходным кодом
 */
namespace NeironKernel;

use 
NeironAPIKernelApplicationInterface;
use 
NeironAPIKernelRequestInterface;
use 
NeironKernelDIContainer;
use 
NeironAPIKernelDIContainerInterface;

/**
 * Базовый класс framework'a
 * @author KpuTuK
 * @version 1.0.0
 * @package Neiron framework
 * @category Kernel
 * @link
 */
class Neiron extends DIContainer implements ApplicationInterface
    
DIContainerInterface
{
    
/**
     * Версия frameworka
     */
    
const VERSION '1.0.0';
    
/**
     * Dependicy Inection контейнер
     * @var array
     */
    
public $container;
    
/**
     * Конструктор класса
     * @param array $options Массив настроек (опционально)
     */
    
public function __construct(array $options = array())
    {
        
parent::__construct($this->setup($options));
        
$this['routing'] = new Routing($this['routes']);
        
$this['cookie'] = new Cookies();
        
$this['request'] = new Request($this, new RequestControllerResolver());
        
$this['response'] = new Response(
            new 
ResponseResponseHeaders(array(), $this['request'])
        );
    }
    
/**
     * Настраивает значения по умолчанию для настроек
     * @param array $options Массив настроек
     */
    
private function setup(array $options = array())
    {
        if (!isset(
$options['routes'])) {
            
$options['routes'] = array();
        }
        return 
$options;
    }
    
/**
     * Добавляет обработчик роута по паттерну вызываемого методом GET
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    
public function get($name$pattern$handler)
    {
        
$this['routing']->addRoute(
            
$name$pattern$handlerRequestInterface::METH_GET
        
);
    }
    
/**
     * Добавляет обработчик роута по паттерну вызываемого методом POST
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    
public function post($name$pattern$handler)
    {
        
$this['routing']->addRoute(
            
$name$pattern$handlerRequestInterface::METH_POST
        
);
    }
    
/**
     * Добавляет обработчик роута по паттерну вызываемого методом PUT
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    
public function put($name$pattern$handler)
    {
        
$this['routing']->addRoute(
                
$name$pattern$handlerRequestInterface::METH_PUT
        
);
    }
    
/**
     * Добавляет обработчик роута по паттерну вызываемого методом PUT
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    
public function delete($name$pattern$handler)
    {
        
$this['routing']->addRoute(
                
$name$pattern$handlerRequestInterface::METH_DELETE
        
);
    }
    
/**
     * Запускает приложение
     */
    
public function run()
    {
        echo 
$this['request']->create()->execute()->body();
    }
}
Онлайн: 0
Реклама