Решён
Где найти примеры качественной архитектуры на PHP?

Старый Пыховик PHP
708
4

Пишу на PHP уже года три, но все это время в основном копировал чужой код и дорабатывал под задачи. Дошел до момента, когда понял что архитектура у меня - полная каша. MVC вроде понимаю, про DDD читал, но в голове не складывается как это все выглядит в реальном большом проекте.

Хочу найти примеры нормально написанного PHP - не учебные туториалы с одним контроллером, а реальные проекты или хотя бы скелеты, где видно как организованы слои, как строятся зависимости, как отделяют бизнес-логику от инфраструктуры.

Small-open-source-проекты на GitHub смотрел, но там обычно либо совсем игрушечный код, либо такой монстр как Magento что непонятно с какого конца смотреть. Посоветуйте что-нибудь конкретное.

Решение
47
Участник • 1 ответ

Для понимания архитектуры в PHP конкретно рекомендую следующий набор ресурсов, который сам в свое время проработал.

Первое - репозиторий spatie/laravel-event-sourcing. Это не просто демка, это боевая библиотека с продуманным разделением на агрегаты, проекции и реакторы. Читать именно исходный код src/, там все прозрачно.

Второе - курсы и материалы от Matthias Noback. У него есть книга "Advanced Web Application Architecture" и куча бесплатных статей на matthiasnoback.nl. Он разбирает именно PHP-специфику: как не протащить Doctrine Entity в бизнес-слой, как строить порты и адаптеры.

Третье - для Symfony-стека смотри демо-приложение symfony/demo на GitHub. Академически правильное, написано кор-командой, покрыто тестами.

Последнее - проект codeliner/php-ddd-cargo-sample. Это порт классического примера из книги Эванса по DDD на PHP. Немного устарел по синтаксису, но структура образцовая.

Аватар F1_Analytics

Matthias Noback - огонь, подтверждаю. Его статья про application services и domain services у меня вообще перевернула понимание слоев.

Аватар Старый Пыховик

Спасибо огромное, именно такого списка и не хватало. Пошел копать symfony/demo.

9
Участник • 1 ответ

Смотри на apiplatform/api-platform на GitHub - там symfony под капотом, но архитектура очень показательная. Для чистого DDD - пробуй искать "php ddd skeleton" или "hexagonal architecture php" на гитхабе, отфильтруй по звездам.

6
Участник • 3 ответа

Честно скажу - хорошей архитектуры на PHP в опенсорсе почти нет. Не потому что PHP плохой, а потому что весь энтерпрайз PHP-код закрыт в корпоративных репах.

Что реально есть в открытом доступе: Magento (слишком сложный и специфичный), Laravel (хорошо для CRUD, плохо для сложной доменной логики), отдельные бандлы Symfony.

Мой совет - переключись на Java или .NET опенсорс. Там культура публикации боевых проектов сильно выше, и ты увидишь как РЕАЛЬНО выглядит гексагональная архитектура в продакшне. Потом перенесешь паттерны обратно в PHP. Звучит странно, но это реально работающий путь.

0
Участник • 4 ответа

В 2010 году мы писали на Zend Framework 1 и архитектура там была вполне себе. Разделение на модули, сервисный слой, все дела. Сейчас, конечно, Zend уже Laminas называется, но принципы те же. Старые проекты на ZF1 на GitHub до сих пор можно найти, и там есть чему поучиться. Люди думали об архитектуре задолго до того как слово "гексагональная" стало модным.

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.