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

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

Ashterix

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

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

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

Відповідники приблизні: де прямого аналога немає, у примітці сказано, що робити натомість.

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