Hi folks!
Для своих проектов обычно использую пакетный генератор классов моделей для всех таблиц в БД. Переделал его под Yii2 на скорую руку. Скачать можно тут https://www.dropbox.com/s/tzhayobekm1o1 ... WithDB.zip
Его НЕОБХОДИМО модифицировать под себя. Предполагается что консольный контроллер расположен в \app\commands\developer - иначе нужно менять неймспейсы. Также в шаблон класса модели я добавил генерацию метода relations() как в Yii 1.x, чтобы знать какие именно связи имеет модель (список связей), возвращает массив формата ['relationName'=>'relationType'], где relationType HAS_ONE или HAS_MANY.
Также можно указать свои имена классов для таблиц, чтобы получить то, что нужно. При генерации модели складываются в каталог \app\models\_generated. Я его использую в основном либо при добавлении новой таблицы (генерация модели одним кликом), либо когда в БД что-то меняю, удаляю/добавляю поля, этот генератор позволяет быстро создать код, с которого уже можно копипастить изменившиеся значения вроде магических комментов полей моделей и т.д.
Пакетный генератор классов моделей
- Stepan Selyuk
- Сообщения: 198
- Зарегистрирован: 2010.02.03, 05:51
- Откуда: Cyprus, Limassol
- Контактная информация:
Пакетный генератор классов моделей
Сначала невидимое, затем видимое. И так у всех программистов :)
- Stepan Selyuk
- Сообщения: 198
- Зарегистрирован: 2010.02.03, 05:51
- Откуда: Cyprus, Limassol
- Контактная информация:
Re: Пакетный генератор классов моделей
Да и сам Gii я немного рефакторил бы, некоторые вещи вынес бы в изменяемые методы, вроде какой CodeFile использовать, или метод для генерации i18n строки. Не у всех же Yii:t(). Я например использую __('message',...) вообще без категорий. Так как они генерируются автоматически по относительному пути к файлу, и используются в БД в качестве индекса для поиска сообщения (и подгрузки сразу всех сообщений категории), наряду с хешем сообщения. Поэтому и пришлось целиком вырывать методы с Gii, чтобы изменить пару копеек. Я к тому, что Gii получается модуль сам в себе, без особой возможности наследования и расширения.
Сначала невидимое, затем видимое. И так у всех программистов :)
-
- Сообщения: 1268
- Зарегистрирован: 2013.07.17, 17:37
Re: Пакетный генератор классов моделей
можно указать свои шаблоны и генераторы
- Stepan Selyuk
- Сообщения: 198
- Зарегистрирован: 2010.02.03, 05:51
- Откуда: Cyprus, Limassol
- Контактная информация:
Re: Пакетный генератор классов моделей
Разумеется можно. Но как без костылей использовать технологии Gii из консольного контроллера например? Если даже при генерации файлов (при создании файлов и каталогов) проверяются переменные непосредственно установленные в классе модуля и разумеется мой консольный контроллер вообще ничего не знает о модуле Gii, а лишь запускает наследованный генератор от Gii-генератора моделей... А если бы была еще пара методов в генераторе вроде getPermissionsMaskForFiles() и getPermissionsMaskForDirs(), то я бы просто их заменил в наследнике.
Сначала невидимое, затем видимое. И так у всех программистов :)
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Пакетный генератор классов моделей
Консоль для Gii планируется из коробки.
Нравится Yii? Давайте сделаем его лучше!.