Структура проєкту

← Структура проєкту

Ashterix

docs(articles): Magento and Symfony examples side by side, request lifecycle as a Mermaid diagram

uk/articles/magento-to-symfony/basics/structure.md +22 −7

Структура проєкту

Новий проєкт: symfony new faq --webapp (Symfony CLI) або composer create-project symfony/skeleton faq для мінімального набору. Flex додає пакети разом із конфігом: composer require orm створить config/packages/doctrine.yaml і змінну DATABASE_URL.

Magento · дерево модуля

app/
  code/Vendor/Faq/
    registration.php
    etc/module.xml  di.xml  events.xml
    etc/frontend/routes.xml
    etc/adminhtml/system.xml  menu.xml
    etc/acl.xml  webapi.xml  crontab.xml
    etc/db_schema.xml
    Api/  Api/Data/
    Model/  Model/ResourceModel/
    Controller/  Block/  ViewModel/
    view/frontend/layout/  templates/  web/
  etc/env.php  config.php
bin/magento
generated/
pub/index.php  pub/static/
var/  vendor/

Symfony · дерево застосунку

bin/console
config/
  bundles.php
  packages/      doctrine.yaml  security.yaml
                 messenger.yaml  monolog.yaml …
  routes.yaml
  services.yaml
migrations/
public/index.php
src/
  Kernel.php
  Controller/  Entity/  Repository/
  Dto/  Message/  MessageHandler/
  EventListener/  Security/
translations/
tests/
var/cache/  var/log/
vendor/
.env  .env.local  .env.test

Magento · дерево модуля

app/
  code/Vendor/Faq/
    registration.php
    etc
        module.xml  
        di.xml  
        events.xml
    etc
        frontend
            routes.xml
        adminhtml
            system.xml  
            menu.xml
        acl.xml  
        webapi.xml  
        crontab.xml
        db_schema.xml
    Api 
        Data
    Model/  Model/ResourceModel/
    Controller/  Block/  ViewModel/
    view/frontend/layout/  templates/  web/
  etc/env.php  config.php
bin/magento
generated/
pub/index.php  pub/static/
var/  vendor/

Symfony · дерево застосунку

bin/console
config/
  bundles.php
  packages/      doctrine.yaml  security.yaml
                 messenger.yaml  monolog.yaml …
  routes.yaml
  services.yaml
migrations/
public/index.php
src/
  Kernel.php
  Controller/  Entity/  Repository/
  Dto/  Message/  MessageHandler/
  EventListener/  Security/
translations/
tests/
var/cache/  var/log/
vendor/
.env  .env.local  .env.test

Розкладка src/ за технічними шарами (Controller, Entity…) — лише стартовий шаблон. Для великого проєкту можна групувати за доменами (src/Faq/…, src/Catalog/…), фреймворк це не обмежує: services.yaml реєструє все в src/, а Doctrine шукає сутності там, де ви вкажете в doctrine.yaml.