Генераторы сущностей в разработке применяются на постоянно практике. Код, который мы пишем, особенно под фреймворки насыщен стандартными конструкциями, без которых ну никак не обойтись. Ну и безусловно лень, не будем забывать про лень.
Буквально утром вчера меня посетила мысль, которую я озвучил в тематическом чатике касательно OpenCart – а что если написать генератор, который будет создавать базовую структуру будущего модуля? Ведь OpenCart тоже движется в направлении что-то типа «ecommerce framework» и стандартных конструкций в любом модуле более чем достаточно. Это и условия вывода полей, хлебные крошки, кнопки отмены и сохранения. И все это ОЧЕНЬ скучно кодить.
В общем, пару дней назад я с коллегой форкнули аналогичную разработку, которой к сожалению более чем 2 года и дописали ее до современного состояния, результат труда можно лицезреть на Гитахбе: https://github.com/iMateo/generator-opencart-module.
Ссылка прилагается для багов, развитию и конечно форков. Генератор распространяется по лицензии Apache 2.0.
Если интересно, то генератор работает на базе популярной консольной утилиты Yeoman. Про этот продукт можно написать отдельную статью, а то и несколько.
Как создать скелет модуля OpenCart?
Генератор проще всего использовать через менеджер пакетов npm
. Сооветственно, Вам понадобится установленный node.js
.
Для этого устанавливаем глобально пакеты Yeoman и сам генератор:
npm install -g yo npm install -g generator-opencart-module-ru
После успешной установки можно приступать к использованию генератора. Достаточно запустить:
yo opencart-module-ru
Генератор модулей может буквально за мгновение создать структуру будущего модуля для OpenCart 1.5, OpenCart 2.0-2.2 и даже [itg-tooltip tooltip-content=»<p>Кстати, именно из-за версии 2.3 мы и решили переписать исходный проект. Как вы знаете, в версии 2.3 изменена структура языковых папок (было english стало например en-gb), а так же углублены на уровень вниз модули, над ними появилась папка extension.</p>»]OpenCart 2.3[/itg-tooltip].
Демо:
А как на счет версии OpenCart 3.0.2.0 ? Для нее такого генератора нету?
Под 3.х еще нет, но планируется