Как стать автором
Обновить

Комментарии 5

Возможно, в обозримом будущем, когда M2 полностью перейдет на декларативную схему и отпадет надобность писать патчи, это будет супер удобно. Но будет ли это и когда случится, вопрос остается открытым.


Вполне себе решенный вопрос, Magento 2.1 уже не поддерживается, а Мадженто 2.2 будет поддерживаться до декабря 2019 года, т.е. остался последний патч релиз 2.2.10 который выйдет в ближайший месяц.

magento.com/sites/default/files/magento-software-lifecycle-policy.pdf

Так что можете восприниматься, что М2 уже фактически полностью перешла на декларативную схему. Вопрос остается только с кастомизациями и экстеншенам, но с момента EOF 2.2 и они подтянутся.

Пока в декларативной схеме смущает только написание патчей для работы с EAV. Хотя возможно уже есть механизмы которые позволяют добавлять атрибуты при помощи декларативной схеме, и я о них просто не знаю.

Меня не так смущает то что атрибуты нужно устанавливать через патчи, а то, что сами патчи это отдельные классы. Вот например ситуация: Я установил новый аттрибут для карегории (то есть создал новый класс InstallCategoryAttribute), этот патч был задеплоений на дев сервер и во время тестирования оказалось, что я как-то не правильно установил данный атрибут. Ок, я делаю UpdateCategoryAttribute снова это все идет на дев сервер — и тут оказывается опять что-то не так с моим атрибутом. И вот тут не понятно как его снова проапдейтить плавильно, UpdateCategoryAttribute2?
Ну самый плохой вариант с patch_list удалить запись и переписать патч. Ну а вообще думаю UpdateCategoryAttribute + ChangeDescription нормальный вариант .
— Отсутствие возможности добавлять атрибуты в продукт-категорию через декларативную схему
А что в более ранних версиях можно было?
Нельзя было создавать атрибуты в InstallSchema скриптах, нужно было в InstallData.
Выходит что патчи это прямой наследник InstallData. И декларативная схема как была тут ни при чём, так и осталась.
— Если модуль универсальный для версий 2.1, 2.2, 2.3 придется писать и декларативную схему и инсталл скрипты.
Нет, не нужно писать и то, и другое, достаточно написать проверки, к примеру проверка версии модуля.
Необходимость написания патчей для работы с core'вскими таблицами.
Это делать можно в своем модуле, для данных — патчи.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.