Задать вопрос
@66demon666
Сетевой админ, АТС-админ

Как спроектировать фреймворк?

Здравствуйте! Пишу небольшой фреймворк для себя в образовательных целях. Сделал базу - разбор маршрута, вызов метода. И уже на этом этапе затык - например, захочу я впихнуть туда что-то вроде Pipeline (цепочка обязанностей) для обработки запроса (middleware если проще). Как спроектировать фреймворк так, чтобы в будущем не надо было лопатить весь код включая ядро чтобы внести новые элементы? Я понимаю про SOLID там, но если следовать правилу единой ответсвенности, то файлов будет просто целая гора, и это непосредственно в фреймворке. Также встает вопрос, например, у меня сейчас маршрутизация а-ля микрофреймворк, чтобы прикрутить MVC надо реализовывать поиск контроллера и вызов метода. Должен ли этим заниматься отдельный класс?
  • Вопрос задан
  • 722 просмотра
Подписаться 6 Простой 3 комментария
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
php666
@php666
PHP-макака
Я понимаю про SOLID там, но если следовать правилу единой ответсвенности, то файлов будет просто целая гора,
да. так оно и и будет

Также встает вопрос, например, у меня сейчас маршрутизация а-ля микрофреймворк, чтобы прикрутить MVC надо реализовывать поиск контроллера и вызов метода. Должен ли этим заниматься отдельный класс?
не надо спрашивать такие вопросы. Если ты что-то пишешь, то должен быть уверен в правильности своей архитектуры. Иначе ты на каждый чих будешь вопрос задавать.

Пишу небольшой фреймворк для себя в образовательных целях
в целом идея абсолютно глупая, вредная и приведет тебя только к выгоранию. Ибо по сути ты будешь бесплатно работать, что-то делать, а толку не будет. Я сам писал фреймворк несколько лет в свободное время, написал, но лучше тебе потратить это всё на изучение того, что сейчас есть и сделать конечный продукт - будет больше пользы. Плюс опыт работы на актуальном инструменте в карму.

Любой фреймворк сейчас - это совокупность из десятков кубиков, каждый из которых разрабатывался и тестировался десятками, а то и сотнями людей, лучших профессионалов в своей области. Попытки в 21 году написать свой фреймворк, всё равно, что в одиночку спроектировать автомобиль, ЛУЧШЕ, чем мировые аналоги. Аналогия примерно такая же, т.е. это НЕВОЗМОЖНО.

Не занимайся ерундой.
Ответ написан
anton_reut
@anton_reut
Начинающий веб-разработчик
Как спроектировать фреймворк так, чтобы в будущем не надо было лопатить весь код включая ядро чтобы внести новые элементы?

Я понимаю про SOLID там...

Не понимаешь, раз такие вопросы есть.
Ответ написан
Комментировать
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Фреймворк от начала и до конца (с пайплайнами, мидлварями и контейнером):
https://youtube.com/playlist?list=PLE20id3DjfFnio1...
Ответ написан
Alex_Wells
@Alex_Wells
PHP/Kotlin
Если не можешь разобраться на 100% почему и что где использовано в https://github.com/phpstan/phpstan-src/tree/master... (хотя бы в этом неймспейсе), то забудь, хорошо не получится.

Смешные видосики смотреть не стоит. Обьяснить, как действительно сделать хорошо, не имея опыта и не зная почему кто-то делает так, как делает (как то команда phpstan) - невозможно.
Ответ написан
Сначала нужно изучить и научиться практически применять: алгоритмы и структуры данных, паттерны проектирования. И пытаться проектировать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы