Файл: 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();
}
}