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).