@sgidlev

Как структурировать проект на Symfony по принципу package-by-feature?

Приветствую.

Хочу попробовать сделать структуру нового приложения и хочу попробовать подход в организации папок package-by-feature.

Где хранить Kernel.php, как быть с миграцииями и тестами. Но вообще хочется посмотреть на что-то уже реализованное.

Может кто-то привести примеры структуры проекта на Симфони по принципу package-by-feature?

Я пока остановился на такой структуре:
.docker/
bin/
config/
migrations/
public/
src/
    Kernel.php
    API/
        Yandex/
        WebMoney/
    Cart/
        Console/
            UpdateCartCommand.php
        Controller/
            CartController.php
        Entity/
             Cart.php
        Repository/
            CartRepository.php
    Infrastructure/  
    Order/
        Console/
        Controller/
        Entity/
        Repository/
templates/
tests/
translations/
var/
vendor/
  • Вопрос задан
  • 378 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Архитектура вообще не относится никак к фреймворку.

Из примеров могу посоветовать пример проекта Дмитрия Елисеева на slim. И ещё есть доклад от Валентина Удальцова про архитектуру на Symfony.

1. Kernel хранить в src, если он один.
2. Миграции можно src/Data/Migration Или src/Migration
3. Тесты, если общие (функциональные), то в /tests, а если unit, то в папку, где фича src/Feature/Test

Из вашей структуры я бы вынес Console и Controllers в одну папку на уровне с Feature.

Так же сервисы я бы тоже не делал всё в одном services.yaml, а выносил бы в config/services/feature.yaml Или в каждую фичу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы