Ну я 7 часов читал весь модуль выгрузки с самого начала и до самого конца и в итоге в файле OrderImport.php модуля sale нашёл то, что мне нужно. Поставлю лайкусик за весёлые мемы.
То что нужно, Большое спасибо! Есть еще один вопрос по почте России, если не знаете, тогда отдельный вопрос сделаю) Можно ли как-нибудь из админки отправлять заказы в личный кабинет Почты России, как это сделано в СДЭК?
Я тут на хабре минусы прочитал:
- актуальность данных важна и быстро меняется
- объем данных не позволяет построить статику
- построение статики слишком долгое для вас
Андрей, в игноре. kafkiansky, да я хотел коммит из середины переместить в отдельную ветку и убрать из мастера, но понял что лучше оставить так как есть и на будущее просто при каждом большом изменении буду делать отдельную ветку.
dmitriy, с middleware еще предстоит познакомиться в деталях. В популярных системах он довольно прозрачно работает.
Спасибо, посмотрю.
Логирования ошибок апача или nginx? Я для сложной логики можно будет подгрузить любой Logger.
Я не планировал в PHP шаблонах выстраивать какую-то сложную логику) Ну а блоки можно обычным инклудом делать. Единственное переопределение шаблонов тяжело реализовать (хоть и можно свой класс View реализовать).
Работа с консолью, тут я согласен. К примеру сложно будет реализовать вопрос-ответ в консоле.
По модульности всё равно не понял. Достаточно же писать функциональные части независимыми. В ядре на данный момент имеется только 4 класса, которые сильно связаны из-за того решаемых задач.
Управление доступом на основе ролей нету, с этим согласен, нужно будет реализовать.
Спасибо за разъяснение. Я теперь примерно понял, что мне нужно лучше изучить. А именно: PSR-7, PSR-3, Middleware, PHP-CLI, способы реализации ACL.
Flying, Да, я знаю о них из Symfony. Но очень часто ставятся задачи реализовать одноуровневый роутер.
/{alias} когда легче всего было бы сделать роутер - /company/{alias}
Антон Р., Вам бы надо оптимизировать скрипт загрузки маршрутов из БД. Потому что вы всю таблицу выгружаете целиком при каждом запросе, это лишнее. А если там 60к маршрутов (если к примеру это интернет-магазин). То сайт просто будет висеть.
Антон Р., да в будущем я планирую создать таблицу с маршрутами и с meta данными, но это уже в рабочем проекте. А тут пример со статичными, потому что статичные маршруты будут в любом проекте.
dmitriy,
- по поводу request я решил не запариваться и работать с глобальными переменными. Если потребуется, я могу установить через компоузер request от symfony (или любой другой).
- обработчики ошибок мне не нужны, т.к. во время программирования я сразу буду видеть, где происходит ошибка и из-за чего. Пока что структура очень проста и не требует обработки. Если появятся узкие места, конечно я добавлю ексепшены
- шаблонизатор я принципиально не использую, php и так нормальный шаблонизатор.
- с render согласен. Ер мне достаточно написать один метод renderBuf который будет сохранять в переменную, а потом я могу спокойно отправлять письмом.
- работа с консолью можно построить через GET. или таким же макаром создать контроллер который будет отвечать чисто на консольные команды. Это изи.
- для модульности стоит компоузер, можно поставить всё что угодно. Можно в проекте сделать папку со своими компонентами.
- минус о работе с правами доступа вообще не понял. один раз настроил сервер, и больше не паришься.
в вашем случае ядро прям слишком банальное и простое которое может написать любой студент на коленке
Чем меньше опыта у человека, тем сложнее у него выходит проект. Показатель простоты - здесь наоборот в плюсе)) По себе знаю. Когда я был студентом, я даже не задумывался о такой вещи как ядро.
Flying, А поздно не будет? Меня в частности беспокоит не слишком ли жесткая связанность в ядре между Config, Router, Factory, Kernel.
Router, Factory имеют доступ к Kernel, для возможности взаимодействия разных компонентов. К примеру, если я захочу маршруты брать из БД, тогда я в Router'е через kernel могу получить доступ к Factory и подтянуть от туда соединение с БД. Мне кажется это слишком замудрённым.
Антон Р., это каркас сайта, на котором можно будет построить любой сайт, используя пакеты composer.
Ядро состоит из:
Config - конфигурационный класс
Router - маршрутный класс
Factory - фабрика для строительства объектов часто используемых классов (базы данных, логеров, мейлеров)
Kernel - центральный класс