При использовании стороннего роутера, проект в index.php начинается так:
use Klein\Klein;
require_once __DIR__ . '/vendor/autoload.php';
$klein = new Klein();
$klein->respond('POST', '/packages', function (Request $request) {
$server = new Server();
return $server->serve($request->paramsPost()->all());
});
$klein->dispatch();
1. Нужно создать сессию даже для неавторизованного пользователя и загрузить некоторые настройки проекта. Где лучше это сделать? Корректно ли вызвать класс сразу после создания роутера:
$klein = new Klein();
$session = new Session();
$settings = new Settings();
2. Нигде не проверяется сущеcтвование класса перед созданием. Может класса Server не существует. Будет ошибка. Можно ли сделать так:
function checkClass($class){
if (class_exists($class)) {
return new $class;
} else {
...
}
}
$klein->respond('GET', '/[:controller]', function ($request) {
$obj = checkClass(ucfirst($request->controller).'Controller');
$act = $obj->runDefault();
return $act;
});
Здесь
https://github.com/nahidex/Employee-Leave-Manageme... вообще зафигачили все классы сразу:
use Klein\Klein as Route;
$bag = new Pimple\Container; // container
$route = new Route();
$home = new Home($bag); //controller
$dashboard = new Dashboard($bag); // controller
$user = new User();
$role = new Role();
$leave = new LeaveController($bag);
А если у меня их 30 штук и не все понадобятся, я так и должен портянку такую писать?