Какие проекты на Laravel с открытым исходным кодом имеют правильную архитектуру?

Какие проекты на Laravel с открытым исходным кодом (не расширения) имеют правильную архитектуру? Дайте пожалуйста ссылки. Интернет магазины bagisto, Avored - имеют правильную архитектуру?
  • Вопрос задан
  • 1656 просмотров
Решения вопроса 3
Alex_Wells
@Alex_Wells
PHP/Kotlin
Не надо вам репозитории. Тем более в такой говно-реализации, как у автора.

Ни в коем случае не следуйте бест практисам, если не понимаете, зачем они и не можете это аргументировать, потому что:
- не понимая смысла бест практиса - вы не сможете правильно его реализовать
- не понимая смысл - вы максимум сможете следовать примеру, а в любой нестандартной ситуации встанете в ступор с вопросами типа: "а как тут сделать?"

На маленьком проекте - следуйте рекомендациям документации. Дальше это можно будет рефакторить (причем автоматически), если поймете, где у вас проблемы, что вам не нравится и как можно сделать лучше.

Но до того времени - не суйтесь. Сделаете только хуже - как с репозиторями, например. Да, иногда есть смысл в их использовании, но вы и сами поймете когда они вам будут нужны.
Ответ написан
@jazzus
Код должен быть такой, чтобы открыл файл и понял логику. Без документаций и комментариев. Такое у меня получается делать только с большим количеством файлов. Т.е. по-максимуму задействовать функционал Лары (там уже куча своих классов) – это в первую очередь. Остальное в своих классах. Основные простыни у меня в моделях т.к. все запросы через scope(чтобы быстро компоновать новые запросы из скоупов-частей). Решаю использованием трейтов – убираю туда скопы по темам, чтобы быстро получить доступ к группе связанных запросов и быстро их править или составить новый. Некоторые такие трейты использую в разных моделях. Например скоупы ofActive/ofApproved можно дофига где использовать. Также делаю репозитории и сервисы. Не потому что надо, а потому что мне так удобней. Т.е. книг совершенная архитектура не читал, пару раз загуглил, но там люди не особо убедительно объясняют (либо я не догоняю), поэтому делаю как нравится мне. Цель -простота и наглядность логики. Чтобы запускалась не страница кода, а класс. Все изолировано и с проверкой аргументов. И есть возможность быстро поменять логику (по методу кирпичиков). Сервис классы - логика, проверить, запустить, исполнить итд. Репозитории чтобы сформировать массив данных для фронта. Коллекции, наборы роутов, текстов и т.д. Обычно создаю базовую репу от которой наследуются остальные, т.к. много общих данных. Минимум абстракций и автоматизаций, конкретные понятные прямые действия с минимумом if. Короче много файлов, в каждом минимум кода, все поделено. Но это мой непрофессиональный опыт т.к. профильные вузы не заканчивал, в гугле не работал, занимаюсь своими проектами и ответом нужно пользоваться с осторожностью.
Ответ написан
@andrei_pro
Изучайте код других, популярных библиотек, концепций. Пробуйте где-то внедрять, только с опытом практики вы поймете все детали и натренируете мышление к пониманию где и почему это можно и нужно применить.

Вот вам примеры для изучения:
awesome-laravel
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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