Словник термінів

← Словник термінів

Ashterix

docs(articles): From Magento to Symfony, a requalification guide grouped into sections

uk/articles/magento-to-symfony/basics/glossary.md новий файл +56 −0

1 + # Словник термінів
2 +
3 + Відповідники приблизні: де прямого аналога немає, у примітці сказано, що робити натомість.
4 +
5 + | Magento 2 | Symfony | Примітка |
6 + |---|---|---|
7 + | Модуль: app/code/Vendor/Module, registration.php, module.xml | Namespace у src/; Bundle — лише для повторного використання | У застосунку бандли не пишуть. Код розкладають за доменами: src/Faq, src/Checkout. |
8 + | module.xml <sequence> | config/bundles.php | Порядок бандлів рідко має значення. Flex дописує їх сам. |
9 + | Розширення з Marketplace | Бандл через Composer + Flex-рецепт | Рецепт створює конфіг у config/packages і змінні в .env. |
10 + | ObjectManager | Service Container | Компілюється в PHP-клас у var/cache. Брати сервіси з контейнера в коді не можна, лише через конструктор. |
11 + | di.xml | config/services.yaml + атрибути | Автовайринг і автоконфігурація: більшість класів не потребує жодного рядка конфігу. |
12 + | <preference> | alias, #[AsAlias] | Якщо реалізація одна, alias створюється автоматично. |
13 + | virtualType | Окремий сервіс з власним id | Плюс іменований автовайринг: LoggerInterface $faqLogger. |
14 + | <type><arguments> | arguments, bind, #[Autowire] | Скаляри, параметри, env, інші сервіси. |
15 + | shared="false" | shared: false | За замовчуванням сервіси спільні, як і в Magento. |
16 + | Згенерована Factory | new для сутностей; власна фабрика для сервісів | Генерації фабрик немає. Сутність Doctrine створюють через new. |
17 + | Згенерований Proxy | lazy: true, #[Autowire(lazy: true)] | Ліниві сервіси без окремого класу в коді. |
18 + | Plugin before/after/around | Декоратор #[AsDecorator] або подія | Працює на рівні сервісу та інтерфейсу, а не будь-якого методу. |
19 + | Масив об'єктів у di.xml (pool, list) | Теги + #[AutowireIterator] / #[AutowireLocator] | Реалізації реєструються самі через #[AutoconfigureTag]. |
20 + | setup:di:compile | Компіляція контейнера, cache:warmup | У dev перебудовується сама при зміні файлів. |
21 + | app/etc/env.php | .env, .env.local, змінні середовища | Справжні змінні середовища мають пріоритет над файлами. |
22 + | app/etc/config.php (модулі) | config/bundles.php | Можна вмикати бандл лише для середовища: ['dev' => true]. |
23 + | core_config_data, system.xml, ScopeConfig | Параметри, %env()%; своя таблиця за потреби | Адмін-налаштувань зі скоупами немає. |
24 + | Режими developer / production | APP_ENV=dev / prod / test + APP_DEBUG | Окремий конфіг для середовища: when@prod у YAML. |
25 + | Area: frontend, adminhtml, webapi_rest | Firewall + префікс маршрутів | Окремого «area» немає. Для CLI — просто команда. |
26 + | routes.xml + Controller/Index/Index.php | #[Route] на методі контролера | Один клас може мати кілька дій. Можна робити invokable-контролер на дію. |
27 + | ResultFactory: Page, Json, Redirect | Response, JsonResponse, RedirectResponse, $this->json() | Контролер повертає Response. |
28 + | RequestInterface::getParam() | Request, #[MapQueryParameter], #[MapRequestPayload] | Аргументи контролера заповнюються автоматично. |
29 + | UrlInterface::getUrl() | UrlGeneratorInterface | URL генерують за іменем маршруту. |
30 + | URL rewrites, таблиця url_rewrite | Маршрути зі slug | Таблиці переписувань немає. SEO-URL — частина маршруту. |
31 + | events.xml + ObserverInterface | #[AsEventListener], EventSubscriberInterface | Є пріоритети і зупинка поширення. |
32 + | Ім'я події-рядок + масив даних | Клас події; FQCN як ім'я | Типізовані дані замість DataObject. |
33 + | Model + ResourceModel + Collection | Entity + EntityManager + Repository | Data Mapper замість Active Record. |
34 + | Repository + SearchCriteria | ServiceEntityRepository + QueryBuilder | Запити пишуть явними методами репозиторію. |
35 + | $model->save() | persist() + flush() | flush() записує всі зміни, а не одну сутність. |
36 + | _beforeSave / _afterSave | Doctrine lifecycle events, #[AsEntityListener] | Окремий диспетчер подій Doctrine. |
37 + | db_schema.xml + whitelist | Атрибути мапінгу + Doctrine Migrations | Міграції імперативні та версіоновані. diff генерується з мапінгу. |
38 + | Schema / Data patches | Migrations (схема), Fixtures (тестові дані) | Довідникові дані для prod теж кладуть у міграцію. |
39 + | EAV | Колонки, JSON-колонки, окремі таблиці | Аналога немає, і зазвичай він не потрібен. |
40 + | ResourceConnection, AdapterInterface | Doctrine DBAL Connection | Для сирого SQL і масових операцій. |
41 + | i18n/*.csv, __() | Translation: XLIFF/YAML, TranslatorInterface | translation:extract збирає ключі. |
42 + | Валідація в сервісі | Validator: #[Assert\...] на DTO, #[MapRequestPayload] | Порушення повертаються клієнту як 422 зі списком помилок. |
43 + | acl.xml, ADMIN_RESOURCE | Ролі, access_control, Voter, #[IsGranted] | Voter вирішує доступ до конкретного об'єкта. |
44 + | Customer / admin session | Firewall, user provider, authenticator | Компонент Security. |
45 + | Integration tokens, OAuth | access_token authenticator, JWT-бандл | Наприклад, lexik/jwt-authentication-bundle. |
46 + | webapi.xml + service contracts | Контролери + Serializer або API Platform | Деталі — у розділі [API і серіалізація](../data/api.md). |
47 + | Api/Data інтерфейси | DTO (readonly-класи) | #[MapRequestPayload] гідратує DTO з тіла запиту, Serializer — відповідь. |
48 + | /swagger | OpenAPI: API Platform або NelmioApiDocBundle | Збирається з маршрутів, типів і атрибутів. |
49 + | GraphQL: schema.graphqls + resolvers | API Platform GraphQL, overblog/graphql-bundle | Окремі бандли. |
50 + | communication.xml + queue_*.xml | Messenger: повідомлення + обробник + routing | Один клас-DTO, один обробник, рядок у messenger.yaml. |
51 + | crontab.xml | Scheduler: #[AsCronTask]; або системний cron + команда | Scheduler працює через воркер Messenger. |
52 + | Cache types + теги | Cache pools + TagAwareCacheInterface | Пулів може бути скільки завгодно. |
53 + | Full Page Cache, Varnish | HTTP-кеш: заголовки, HttpCache, Varnish + FOSHttpCacheBundle | FPC «з коробки» немає, є стандартний HTTP-кеш. |
54 + | Logger через virtualType з handlers | Канали Monolog у monolog.yaml | Автовайринг за іменем: $faqLogger. |
55 + | Integration tests, @magentoDataFixture | KernelTestCase, WebTestCase, Foundry | Тести бачать приватні сервіси через static::getContainer(). |
56 + | Indexers, mview | Немає; Messenger, події Doctrine, cron | Денормалізацію будуєте явно. |