- по поводу request я решил не запариваться и работать с глобальными переменными. Если потребуется, я могу установить через компоузер request от symfony (или любой другой).
- обработчики ошибок мне не нужны, т.к. во время программирования я сразу буду видеть, где происходит ошибка и из-за чего. Пока что структура очень проста и не требует обработки. Если появятся узкие места, конечно я добавлю ексепшены
- шаблонизатор я принципиально не использую, php и так нормальный шаблонизатор.
- работа с консолью можно построить через GET. или таким же макаром создать контроллер который будет отвечать чисто на консольные команды. Это изи.
- для модульности стоит компоузер, можно поставить всё что угодно. Можно в проекте сделать папку со своими компонентами.
- минус о работе с правами доступа вообще не понял. один раз настроил сервер, и больше не паришься.
//bootstrap.php
// DI конейнер
$container = new League\Container\Container;
//автоинъекция зависимостей
$container->delegate(new League\Container\ReflectionContainer);
//все классы реализующие LoggerAwareInterface будут иметь логгер
$container
->inflector('LoggerAwareInterface')
->invokeMethod('setLogger', ['Monolog\Logger'])
;
//формируем logger
$container->share('Monolog\Logger',function(){
$logger = new \Monolog\Logger('systemLogger');
$logger->pushHandler(new StreamHandler('php://stderr'));
return $logger;
});
//app.php
//логика подключения контроллеров, (обычно реализация с роутингом)
$container->get(Controller::class)->index();
//controller.php
Class Controller impliments LoggerAwareInterface{
use LoggerAwareTrait;
function __construct(){
$this->logger = new Psr\NullLogger;
}
public function index(){
$this->logger->debug("test");
}
}
OpenSSH_7.4p1 Debian-10+deb9u6, OpenSSL 1.0.2s 28 May 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 84.201.172.*** [84.201.172.***] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
key_load_public: invalid format
....