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

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

Ashterix

docs(articles): explain the project trees with tables instead of a dense list

uk/articles/magento-to-symfony/basics/structure.md +25 −3

107 107 :::
108 108 ::::
109 109
110 − - **Magento:** обов'язкові лише `registration.php` і `etc/module.xml`, решта тек модуля з'являється, коли вона потрібна. `app/etc/config.php` — список увімкнених модулів, `env.php` — БД, кеш і ключі середовища, `generated/` — згенеровані Factory, Proxy й Interceptor.
111 − - **Symfony:** `symfony/skeleton` створює `bin/`, `config/` (`bundles.php`, `preload.php`, `routes.yaml`, `services.yaml`, `packages/cache.yaml`, `packages/framework.yaml`), `public/index.php`, `src/Kernel.php` і `src/Controller/`, `.env` і `.env.dev` з `APP_SECRET`. Інше додають пакети (Flex-рецепти: `doctrine.yaml`, `migrations/`, `src/Entity/`, `templates/`, `.env.test`) і команди MakerBundle (`make:message`, `make:listener`, `make:voter`). `Dto/` — домовленість проєкту, а `.env.local` створюєте самі, і він не комітиться.
110 + ## Що в дереві Magento
112 111
113 − Джерела: [структура проєкту Symfony](https://symfony.com/doc/current/page_creation.html#checking-out-the-project-structure), [рецепт framework-bundle](https://github.com/symfony/recipes/tree/main/symfony/framework-bundle/7.4), [структура модуля Adobe Commerce](https://developer.adobe.com/commerce/php/development/build/component-file-structure).
112 + | Шлях | Що це |
113 + |---|---|
114 + | `registration.php`, `etc/module.xml` | Обов'язкові файли модуля. Решта тек з'являється, коли вона потрібна. |
115 + | `app/etc/config.php` | Список увімкнених модулів. |
116 + | `app/etc/env.php` | БД, кеш і ключі середовища. |
117 + | `generated/` | Згенеровані Factory, Proxy й Interceptor. |
114 118
119 + ## Звідки береться дерево Symfony
120 +
121 + | Шлях | Звідки |
122 + |---|---|
123 + | `bin/`, `config/`, `public/index.php`, `src/Kernel.php`, `src/Controller/` | `symfony/skeleton` |
124 + | `.env`, `.env.dev` з `APP_SECRET` | рецепт `framework-bundle` |
125 + | `config/packages/doctrine.yaml`, `migrations/`, `src/Entity/`, `src/Repository/` | `composer require orm` |
126 + | `templates/` | `composer require twig` |
127 + | `tests/`, `.env.test` | `composer require --dev symfony/test-pack` |
128 + | `src/Message/`, `src/MessageHandler/` | `make:message` |
129 + | `src/EventListener/` | `make:listener` |
130 + | `src/Security/Voter/` | `make:voter` |
131 + | `src/Dto/` | домовленість проєкту |
132 + | `.env.local` | створюєте самі, не комітиться |
133 +
134 +
115 135 Розкладка `src/` за технічними шарами (Controller, Entity…) — лише стартовий шаблон. Для великого проєкту можна групувати за доменами (`src/Faq/…`, `src/Catalog/…`), фреймворк це не обмежує: `services.yaml` реєструє все в `src/`, а Doctrine шукає сутності там, де ви вкажете в `doctrine.yaml`.
136 +
137 + Джерела: [структура проєкту Symfony](https://symfony.com/doc/current/page_creation.html#checking-out-the-project-structure), [рецепт framework-bundle](https://github.com/symfony/recipes/tree/main/symfony/framework-bundle/7.4), [структура модуля Adobe Commerce](https://developer.adobe.com/commerce/php/development/build/component-file-structure).