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

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

Ashterix

docs(articles): SEO titles, intros and a section preview image for From Magento to Symfony

uk/articles/magento-to-symfony/basics/structure.md +4 −0

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

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

Magento · дерево проєкту з модулем

<magento-root>/
├── app/
│   ├── code/
│   │   └── Vendor/
│   │       └── Faq/
│   │           ├── registration.php
│   │           ├── composer.json
│   │           ├── Api/
│   │           │   └── Data/
│   │           ├── Block/
│   │           ├── Controller/
│   │           ├── Model/
│   │           │   └── ResourceModel/
│   │           ├── Observer/
│   │           ├── Plugin/
│   │           ├── Setup/
│   │           ├── ViewModel/
│   │           ├── etc/
│   │           │   ├── module.xml
│   │           │   ├── di.xml
│   │           │   ├── events.xml
│   │           │   ├── acl.xml
│   │           │   ├── webapi.xml
│   │           │   ├── crontab.xml
│   │           │   ├── db_schema.xml
│   │           │   ├── frontend/
│   │           │   │   └── routes.xml
│   │           │   └── adminhtml/
│   │           │       ├── menu.xml
│   │           │       └── system.xml
│   │           ├── i18n/
│   │           └── view/
│   │               └── frontend/
│   │                   ├── layout/
│   │                   ├── templates/
│   │                   └── web/
│   └── etc/
│       ├── config.php
│       └── env.php
├── bin/
│   └── magento
├── generated/
├── pub/
│   ├── index.php
│   └── static/
├── var/
└── vendor/

Symfony · дерево класичного WEB застосунку

<project>/
├── bin/
│   └── console
├── config/
│   ├── bundles.php
│   ├── preload.php
│   ├── routes.yaml
│   ├── services.yaml
│   ├── packages/
│   │   ├── cache.yaml
│   │   ├── framework.yaml
│   │   ├── doctrine.yaml
│   │   ├── messenger.yaml
│   │   ├── monolog.yaml
│   │   └── security.yaml
│   └── routes/
│       └── framework.yaml
├── migrations/
├── public/
│   └── index.php
├── src/
│   ├── Kernel.php
│   ├── Controller/
│   ├── Entity/
│   ├── Repository/
│   ├── EventListener/
│   ├── Message/
│   ├── MessageHandler/
│   ├── Security/
│   └── Dto/
├── templates/
├── translations/
├── tests/
├── var/
│   ├── cache/
│   └── log/
├── vendor/
├── .env
├── .env.dev
├── .env.test
├── .env.local
├── composer.json
└── symfony.lock

Що в дереві Magento

Шлях Що це
registration.php, etc/module.xml Обов'язкові файли модуля. Решта тек з'являється, коли вона потрібна.
app/etc/config.php Список увімкнених модулів.
app/etc/env.php БД, кеш і ключі середовища.
generated/ Згенеровані Factory, Proxy й Interceptor.

Звідки береться дерево Symfony

Шлях Звідки
bin/, config/, public/index.php, src/Kernel.php, src/Controller/ symfony/skeleton
.env, .env.dev з APP_SECRET рецепт framework-bundle
config/packages/doctrine.yaml, migrations/, src/Entity/, src/Repository/ composer require orm
templates/ composer require twig
tests/, .env.test composer require --dev symfony/test-pack
src/Message/, src/MessageHandler/ make:message
src/EventListener/ make:listener
src/Security/Voter/ make:voter
src/Dto/ домовленість проєкту
.env.local створюєте самі, не комітиться

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