| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Catalyst: где правильно писать модель? |
| Автор: Logo 24.1.2011, 16:00 |
| Где в Catalyst нужно записывать свои методы для таблиц DBIx::Class, в lib/MyApp/Schema/Result/Table.pm после строк DO NOT MODIFY THIS OR ANYTHING ABOVE!, или в lib/MyApp/Model/ModelName/Table.pm? |
| Автор: Logo 27.1.2011, 15:09 |
| Быть может, есть какие нибудь известные приложения на Catalyst, котоыре можно было бы посмотреть? |
| Автор: xoma 27.1.2011, 16:52 | ||
Вот это http://mojomojo.org/ ? https://github.com/marcusramberg/mojomojo - код... |
| Автор: Logo 28.1.2011, 13:32 | ||||
| Посмотрел, там пишется в Shema, и еще как то отключена контрольная сумма, мешающая изменять автоматически сгенерированную часть. Но тогда зачем Catalyst bless'ит все объекты DBIx::Class::Row в MyApp::Model::MyDB::Table? И самое главное как тогда поставить триггер на определенное поле, или создать расширеное поле? Оба примера из http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Cookbook.pod#OVERLOADING_METHODS не работают.
пишет при обращении к полю No next::method 'around' found for MyApp::Model::MyDB::Object at /usr/share/perl/5.10/mro.pm line 26.
Просто не работает, без сообщений об ошибках. |
| Автор: vivu 13.2.2011, 13:27 |
| Можно и там и там. В первом случае lib/MyApp/Schema/Result/Table.pm после строк DO NOT MODIFY THIS OR ANYTHING ABOVE! Лучше записывать что-то относящееся непосредственно к таблице. Например: работу с флагами, манипуляции с данными таблицы и пр. Второй случай имеет смысл использовать, если нужно повесить какую-то жирную логику. Фактически, это уже будет обособленная от основной модели модель. ...надеюсь я понятно объяснил |