Gii - идеология
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Gii - идеология
Собственно меня смущает вот этот момент:
https://github.com/yiisoft/yii2/commit/ ... 7b24357661
Почему код Gii нельзя юзать?
А если я хочу чтобы автогенерились phpDoc для атрибутов?
Если я изменю код после Gii то я уже не смогу его перегенерировать, чтобы добавить новые атрибуты или убрать старые, после миграций.
По мне так самый здравый подход - это иметь в проекте автогенерируемый слой который мапит базу данных. Это может быть маппинг таблиц, или AR - не важно. Главное, что все изменения базы подхватываются кодом, а программист пишет только миграции.
Нет, конечно, я могу написать парсер который мне будет прописывать в мои модели phpDoc'и для поддержки обновления базы (Собственно для первой версии такая штука мною и написана). Но, нафига козе боян, если можно отнаследоваться от gii модели?
В общем хочу знать ваши мысли или рекомендации.
https://github.com/yiisoft/yii2/commit/ ... 7b24357661
Почему код Gii нельзя юзать?
А если я хочу чтобы автогенерились phpDoc для атрибутов?
Если я изменю код после Gii то я уже не смогу его перегенерировать, чтобы добавить новые атрибуты или убрать старые, после миграций.
По мне так самый здравый подход - это иметь в проекте автогенерируемый слой который мапит базу данных. Это может быть маппинг таблиц, или AR - не важно. Главное, что все изменения базы подхватываются кодом, а программист пишет только миграции.
Нет, конечно, я могу написать парсер который мне будет прописывать в мои модели phpDoc'и для поддержки обновления базы (Собственно для первой версии такая штука мною и написана). Но, нафига козе боян, если можно отнаследоваться от gii модели?
В общем хочу знать ваши мысли или рекомендации.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Gii - идеология
Не обязательно всегда перегенерировать. Там diff есть.
По базе не получается сгенерить много чего, например, база ничего не знает о валидации кредитных карт или возраста. Плюс сценарии так и так руками писать.
По базе не получается сгенерить много чего, например, база ничего не знает о валидации кредитных карт или возраста. Плюс сценарии так и так руками писать.
Нравится Yii? Давайте сделаем его лучше!.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Gii - идеология
1) diff есть. А еще есть 150 моделей, и что мне diff руками тыкать и копипастить?
2) Вообще не проблема, ну не может и бог с ним, сами напишем и сценарии и rules, и вообще всю бизнеслогику.
Но почему наследоваться-то не рекомендуется?
пусть gii делает минимум, но пусть он это делает сам.
Извините, не понимаю подхода, давайте еще раз ))
2) Вообще не проблема, ну не может и бог с ним, сами напишем и сценарии и rules, и вообще всю бизнеслогику.
Но почему наследоваться-то не рекомендуется?
пусть gii делает минимум, но пусть он это делает сам.
Извините, не понимаю подхода, давайте еще раз ))
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Gii - идеология
1) И все 150 постоянно меняются? У нас около 120. Меняется 1—2 модели раз в пол года.
2) Наследуйтесь, никто не мешает. Просто перекрыть придётся почти всё. Смысла просто нет.
2) Наследуйтесь, никто не мешает. Просто перекрыть придётся почти всё. Смысла просто нет.
Нравится Yii? Давайте сделаем его лучше!.
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Gii - идеология
Проблема знакома. У нас так было. Есть 60 таблиц, из которых менялись все. В итоге я плюнул на все это дело, взял phpparser + часть кода из gii + наработки по генерации документации для моделей (не помню автора) и сделал свой генератор-дополнятор моделей. До ума так и не довел(код местами костыльный), но оно сделала свою работу и дописала нужные поля в модель и документацию, при этом оставив весь мой код нетронутым. Однако один побочный эффект был - форматирование немного исказилось. Если очень надо, то могу поделиться, но, предупреждаю - код заточен под нужды нашего проекта и генерирует/обновляет модели с учетом особенностей нашего проекта(неймспейсы и так далее).
Re: Gii - идеология
Буду очень благодарен, сам сейчас столкнулся с подобной проблемой, к сожалению пока мозгов не хватает решить самому( Так что с удовольствием бы посмотрел как подобное делается.
Стучитесь да откроется Вам, Молитесь да услышаны будете!
P.S.: Yii Jabber Conference: yii@conference.jabber.ru
P.S.: Yii Jabber Conference: yii@conference.jabber.ru
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Gii - идеология
Правда писал под 1-ю версию, но, думаю вы там сможете адаптировать уже. Если сможете довести до ума и потом выложить то буду очень признателен. Зависит от doc-block-generator.
- Вложения
-
- modelGen.zip
- Генератор/обновлятор моделей
- (14.5 КБ) 226 скачиваний
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Gii - идеология
Ну вот тогда и моя реализация до кучи: https://github.com/nizsheanez/DocBlockGenerator
Тоже для первой версии. Для второй ничего нет.
Тоже для первой версии. Для второй ничего нет.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Gii - идеология
Вообще по уму такие штуки распиливать на 2 компонента отдельных.
1) Читатель - Выковыривает что и где не хватает.
2) Писатель - Получает все эти данные и по ним генерирует phpDoc
В таком подходе всякие штуки для документации и прочего также могут быть компонентами типа "Писатель"
1) Читатель - Выковыривает что и где не хватает.
2) Писатель - Получает все эти данные и по ним генерирует phpDoc
В таком подходе всякие штуки для документации и прочего также могут быть компонентами типа "Писатель"
-
- Сообщения: 1428
- Зарегистрирован: 2009.08.20, 22:54
- Откуда: Молдова, Бельцы
- Контактная информация:
Re: Gii - идеология
Мой вариант использует https://github.com/nizsheanez/DocBlockGenerator , но, помимо обновления доков он так же дополняет правила валидации, связи и названия столбцов.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Gii - идеология
Ну нифигасе!