Допиливание конструктора

Вопросы, связанные с разработкой пакетов Limb3

Модератор: phpBB2 - administrators

Допиливание конструктора

Сообщение idler » Ср янв 27, 2010 3:57 am

Жил да был в инкубаторе конструктор....
Вот чего хотелось бы от него в первую очередь:

  • СВОИ шаблоны опционально
  • Безопасная перегенерация моделей , например, если добавились/изменились связи в БД

Я этим потихонечку займусь...
Есть еще какие пожелания к конструктору?

Под безопасной генерацией моделей имеется ввиду вот что:
Генерим src/model/_base/lmbProduct.class.php и src/model/Product.class.php
Изменились связи в БД - генерим еще раз:
src/model/_base/lmbProduct.class.php - точно перезапишется
src/model/Product.class.php - точно НЕ перезапишется
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение Slevin » Ср янв 27, 2010 10:22 am

СВОИ шаблоны опционально

а это уже реализовано
Аватара пользователя
Slevin
LIMB Newbie
 
Сообщения: 35
Зарегистрирован: Чт фев 21, 2008 3:20 pm

Re: Допиливание конструктора

Сообщение idler » Ср янв 27, 2010 11:05 pm

ага. только хочется через settings/constructor.conf.php путь указывать
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение idler » Чт янв 28, 2010 2:12 am

В общем diff показывать на расммотрение не буду - он объемен.
Сразу коммичу:
Committed revision 8107.

В пакете появилась директория settings, где лежит constructor.conf.php, если его положить в PROJECT_ROOT/settings/ можно задать директорию со своими шаблонами.

Теперь генериться две модели src/model/_base/Product.class.php и наследник-пустышка src/model/Product.class.php
Базовая модель ПЕРЕПИСЫВАЕТСЯ при каждой перегенерации

Добавил в шаблон базовой модели protected $_default_sort_params = array('id'=>'asc');
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение Forumsky » Чт янв 28, 2010 2:47 pm

базовая модель почему не генерится!!

смысл базовой модели я так понимаю в безопасной перегенерации кода, чтоб наработки в наследнике сохранялись?
Аватара пользователя
Forumsky
LIMB Addicted
 
Сообщения: 542
Зарегистрирован: Пт янв 18, 2008 10:46 pm
Откуда: Молдова, Кишинёв

Re: Допиливание конструктора

Сообщение Forumsky » Чт янв 28, 2010 3:41 pm

Немного разобрался в чём там дело...

idler, какая логика работы? Думаю отправлять в продакшн лишнее наследование в моделях из-за удобства разработки не совсем верно. Для разработки удобно, вопросов нет. Вижу тут такие варианты:

  • Использовать генерацию базовых моделей только на этапе разработки, потом всё магическим способом склеивается в один файл. В базовой же только опции и их по идее не очень сложно будет авто-дописать в основной файл
  • Сделать такую работу конструктора по умолчанию и перестать экономить на спичках -- подумаешь наследование и подключение ещё одного файла
Аватара пользователя
Forumsky
LIMB Addicted
 
Сообщения: 542
Зарегистрирован: Пт янв 18, 2008 10:46 pm
Откуда: Молдова, Кишинёв

Re: Допиливание конструктора

Сообщение korchasa » Чт янв 28, 2010 5:34 pm

idler писал(а):В пакете появилась директория settings, где лежит constructor.conf.php, если его положить в PROJECT_ROOT/settings/ можно задать директорию со своими шаблонами.

А через параметр вызова можно ее задать?

idler писал(а):Теперь генериться две модели src/model/_base/Product.class.php и наследник-пустышка src/model/Product.class.php

Базовая модель ПЕРЕПИСЫВАЕТСЯ при каждой перегенерации[/quote]
Решение сколько генерировать моделей должно быть явным. Через конфиг и через параметр вызова. Конфиг вообще должен быть сборником параметров по умолчанию, каждый из которых можно перекрыть в вызове.
Аватара пользователя
korchasa
LIMB Developer
 
Сообщения: 936
Зарегистрирован: Чт май 10, 2007 3:47 am

Re: Допиливание конструктора

Сообщение idler » Чт янв 28, 2010 7:55 pm

Идея честно взята с Doctrine и Propel.
Мне показалось удобным отделить генеренный код от самописного. Но подумать об опциональности стоит .

Не генериться базовая модель? Может не докоммитил - вечером (ночером) дома посмотрю.

> Конфиг вообще должен быть сборником параметров по умолчанию.
Что , кроме расположения шаблонов туда можем вынести еще?
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение korchasa » Чт янв 28, 2010 8:57 pm

idler писал(а):Идея честно взята с Doctrine и Propel.
Мне показалось удобным отделить генеренный код от самописного. Но подумать об опциональности стоит .

Ее точно надо сделать. Я этот конструктор в таком виде и задумывал. Мы не доктрина, у нас явно объявлять все свойства и сеттеры/геттеры не надо ;)
idler писал(а):Что , кроме расположения шаблонов туда можем вынести еще?

Тебе виднее. То, что пришлось бы указывать каждый раз.
Аватара пользователя
korchasa
LIMB Developer
 
Сообщения: 936
Зарегистрирован: Чт май 10, 2007 3:47 am

Re: Допиливание конструктора

Сообщение Forumsky » Чт янв 28, 2010 10:07 pm

Не генериться базовая модель? Может не докоммитил - вечером (ночером) дома посмотрю.

Проблема скорее логического характера. Ты в cli/entity.inc.php создал отдельный таск для генерации базовой модели, а я честно пользовался простым create желая получить результат. А результат такой, что генерируемая модель наследуется от класса, который надо генерировать отдельным таском...
Аватара пользователя
Forumsky
LIMB Addicted
 
Сообщения: 542
Зарегистрирован: Пт янв 18, 2008 10:46 pm
Откуда: Молдова, Кишинёв

Re: Допиливание конструктора

Сообщение idler » Пт янв 29, 2010 2:05 am

спасибо за хинт
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение idler » Пт янв 29, 2010 2:12 am

Fixed: rev 8112.
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

Re: Допиливание конструктора

Сообщение Forumsky » Пн фев 15, 2010 7:52 pm

:!: Кто пользуется свежим конструктором -- не забывайте обновить файлы из constructor/cli в project/cli
Аватара пользователя
Forumsky
LIMB Addicted
 
Сообщения: 542
Зарегистрирован: Пт янв 18, 2008 10:46 pm
Откуда: Молдова, Кишинёв

Re: Допиливание конструктора

Сообщение Forumsky » Ср фев 17, 2010 1:23 pm

Что то у меня переписывается и базовая и пользовательская модель. Непорядок.

idler, у тебя свежая копия работает без проблем?

p.s. пользуюсь $php entity.php create entity
Аватара пользователя
Forumsky
LIMB Addicted
 
Сообщения: 542
Зарегистрирован: Пт янв 18, 2008 10:46 pm
Откуда: Молдова, Кишинёв

Re: Допиливание конструктора

Сообщение idler » Чт фев 18, 2010 3:35 am

У меня не переписывается. Обновился, удалил cli/ в корне проекта, скопировал заново:


max@max:~/www/con.my$ ls -laR src/model/
src/model/:
итого 16
drwxrwxrwx 3 max max 4096 Янв 29 01:46 .
drwxr-xr-x 4 max max 4096 Янв 29 01:46 ..
drwxrwxrwx 2 max max 4096 Янв 29 01:46 _base
-rw-rw-r-- 1 max max 122 Янв 29 01:46 Product.class.php

src/model/_base:
итого 12
drwxrwxrwx 2 max max 4096 Янв 29 01:46 .
drwxrwxrwx 3 max max 4096 Янв 29 01:46 ..
-rw-rw-r-- 1 max max 988 Янв 29 01:46 lmbProduct.class.php
max@max:~/www/con.my$ php cli/entity.php create product
************************ Running task 'init_constructor' ************************
Constructor initialized...
************************* 'init_constructor' done (0.03 sec.)*************************
************************ Running task 'parse_table_argument' ************************
DATABASE: amigo
************************* 'parse_table_argument' done (0.13 sec.)*************************
************************ Running task 'create' ************************
CONSTRUCTOR: lmbBaseModelConstructor on table product
CONSTRUCTOR: lmbModelConstructor on table product
CONSTRUCTOR: lmbFrontStuffConstructor on table product
CONSTRUCTOR: lmbAdminControllerConstructor on table product
CONSTRUCTOR: lmbAdminTemplatesConstructor on table product
************************* 'create' done (0.75 sec.)*************************
************************ All done (0.92 sec.)************************
max@max:~/www/con.my$ ls -laR src/model/
src/model/:
итого 16
drwxrwxrwx 3 max max 4096 Янв 29 01:46 .
drwxr-xr-x 4 max max 4096 Янв 29 01:46 ..
drwxrwxrwx 2 max max 4096 Фев 18 03:10 _base
-rw-rw-r-- 1 max max 122 Янв 29 01:46 Product.class.php

src/model/_base:
итого 12
drwxrwxrwx 2 max max 4096 Фев 18 03:10 .
drwxrwxrwx 3 max max 4096 Янв 29 01:46 ..
-rw-rw-r-- 1 max max 665 Фев 18 03:10 lmbProduct.class.php
max@max:~/www/con.my$
Аватара пользователя
idler
LIMB Addicted
 
Сообщения: 353
Зарегистрирован: Вт ноя 27, 2007 2:34 pm
Откуда: Russia/Moscow

След.

Вернуться в Limb3 разработка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron