Файл: 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, $handler, RequestInterface::METH_GET
        );
    }
    /**
     * Добавляет обработчик роута по паттерну вызываемого методом POST
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    public function post($name, $pattern, $handler)
    {
        $this['routing']->addRoute(
            $name, $pattern, $handler, RequestInterface::METH_POST
        );
    }
    /**
     * Добавляет обработчик роута по паттерну вызываемого методом PUT
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    public function put($name, $pattern, $handler)
    {
        $this['routing']->addRoute(
                $name, $pattern, $handler, RequestInterface::METH_PUT
        );
    }
    /**
     * Добавляет обработчик роута по паттерну вызываемого методом PUT
     * @param sring $name Имя роута
     * @param string $pattern Паттерн обработки роута
     * @param mixed $handler Обработчик роута
     */
    public function delete($name, $pattern, $handler)
    {
        $this['routing']->addRoute(
                $name, $pattern, $handler, RequestInterface::METH_DELETE
        );
    }
    /**
     * Запускает приложение
     */
    public function run()
    {
        echo $this['request']->create()->execute()->body();
    }
}