![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
gcc |
|
||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
вот начал смотреть контроллеры исходники...
сделал несколько моделей нашел модуль Catalyst::Controller::FormBuilder, решил сделать свой аналогичный, мне он не понравился тем что там надо тэги другие вставлять, и не опнял на счет фильтрации что делать вот посмотрел исходники 2 файла с этого модуля, скажите что объединяет этих двух файлов? http://cpansearch.perl.org/src/JCAMACHO/Ca.../FormBuilder.pm http://x0.org.ua/perl/Action.pm 1) что означает:
2) и что означет 2 подчеркивания:
3) и не понятно написано это:
что хотели этим сделать? 4) не понял это особенно под конец:
5) как написать конструктор в контроллере чтобы он вот так my $form = $self->formbuilder; инициализировался сам? Это сообщение отредактировал(а) gcc - 20.4.2009, 09:52 |
||||||||
|
|||||||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, подскажу по некоторым вопросам
1. make_accessor возвращает ссылку на функцию, которая сохраняется под именем $method в таблице имен модуля с именем $class. Действие аналогично простому определению функции с именем $method в классе с именем $class, но делается не на этапе компиляции, а на этапе выполнения. no strict 'refs' необходим т.к. используется символическая ссылка (т.е. не по адресу, а по имени). 2. Обычно с подчеркивания начинаются имена приватных методов класса (это просто договоренность, с технической стороны разницы никакой нет). Что обозначают 2 подчеркивания я сказать затрудняюсь. 3. могу предположить следующее
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
gcc |
|
||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ginnie, спасибо не много понял...
зачем там пишется это?
скорее всего для этого
но что оно дает? ======================================== в Catalyst::Action если я правильно понял сделан для того чтобы "прицепить" к объекту $c методы (только не пнтяно зачем) http://x0.org.ua/perl/Action.pm
от куда это взялось my ( $controller, $c ) = @_; ? что такое $controller? посмотрел еще Catalyst::Dispatcher но там не написаны примеры вот я написал класс, что мне в него добавить что это был контроллер?
Это сообщение отредактировал(а) gcc - 21.4.2009, 03:26 |
||||||||
|
|||||||||
gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
еще нашел метода, часто пишет в коде
http://cpansearch.perl.org/src/DCARDWELL/C.../TextLinkAds.pm
http://search.cpan.org/~flora/Catalyst-Run...st/Component.pm что-то я не понял или не правильно перевел, но смысл так и не понял... Это сообщение отредактировал(а) gcc - 21.4.2009, 07:07 |
||||
|
|||||
gcc |
|
||||||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ginnie, а что происходит после этого *{"$class\::$method"} = $class->make_accessor($method); ? вот еще нашел не понял:
зачем это сделано?
http://cpansearch.perl.org/src/ALEXP/Catal.../Model/Proxy.pm
http://cpansearch.perl.org/src/ISHIGAKI/Ca...el/Jifty/DBI.pm Это сообщение отредактировал(а) gcc - 21.4.2009, 07:40 |
||||||||||
|
|||||||||||
ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
gcc, вот пример, в котором выводится таблица имен пакета Test до и после выполнения *{'Test::new_func'} = sub { return; };
т.е. в пакет Test динамически добавилась новая функция, которую далее можно вызывать при помощи Test::new_func(). Аналогично при использовании объектов в класс добавляются необходимые новые функции (например, аксессоры). -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |