Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Catalyst::Authentication 
:(
    Опции темы
NuINu
Дата 20.3.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 5
Всего: 6



Цитата(gcc @  20.3.2009,  07:46 Найти цитируемый пост)
NuINu, можете подсказать зачем сделан Privat? зачем его используют кроме как в root.pm?

это тоже самое что приватный метод?? 

не могу здесь блеснуть какими то глубокими знаниями, тем более что сейчас занимаюсь OpenGL

ну давай попытаюсь выдать хоть какую то идею. может это подтолкнет тебя к правильному пониманию, в крайнем случае у ребят с Москов.пм. можно спросить. они каталистники smile

Первым делом адресую тебя к Catalyst::Manual::Intro

там описывается все что связанно с диспетчеризацией сообщений.
в том числе и типы действий.

итак акция(действие) как оно поределено: An action is a subroutine with a special attribute.

т.е метод с неким атрибутом. что уже делает его отличным от обычных методов класса.
как скрытых так и нет.

Именно этот "некий атрибут" делает из метода - Action(действие) которое в последствии окружение каталиста становиться способным воспринимать в контектсте данного контроллера. Т.е класс имеющего помимо обычных методов, еще и методы-действия.

данные методы-действия добавляются в список методов которые будут потом проверяться при диспетчиризации запроса пользователя и диспетчиризации событий вызванных не пользователем а другими методами-действиями.

так вот методы-действия класса Private отличаются только тем(от других методов действий) что не могут быть непосредственно вызваны пользователями(в качестве урла их нельзя указать).
зато их можно использовать при вызове фукнций деспетчеризации каталиста, таких как форвард.

собственно пример как это делать там есть: 
Код

           sub hello : Global {
               my ( $self, $c ) = @_;
               $c->stash->{message} = 'Hello World!';
               $c->forward('show_message');
           }

           sub show_message : Private {
               my ( $self, $c ) = @_;
               $c->res->body( $c->stash->{message} );
           }



обычные же методы класса не доступны для диспетчиризации событий через систему каталиста. тем более недоступны методы с двума подчеркиваниями.
PM MAIL   Вверх
gcc
Дата 20.3.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



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

мне показалсоь что это что-то другое


PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 20.3.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



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

мне показалсоь что это что-то другое


PM WWW ICQ Skype GTalk Jabber   Вверх
shootnix
Дата 15.6.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 3.9.2005
Где: Казахстан

Репутация: 2
Всего: 2



У меня проблема та же, что и в сабже. Не подскажете, как вы ее решили? 

пишу так:

Код

use Catalyst qw/-Debug ConfigLoader Static::Simple
                Session
                Session::Store::DBI
                Session::State::Cookie
                
                Authentication/;


При вызове метода из плугина выдает вот это:
Код

Caught exception in MyApp::Controller::Root->login "Can't call method "dbh" on an undefined value at /usr/local/share/perl/5.10.0/Catalyst/Authentication/Store/DBI.pm line 115."


Вижу, что грабли с коннектом к базе, но сама модель у меня DBI и настроена. Куда копать?

UPD
Вопрос снимается, нашел косяк, покопавшись в исхониках — имя модели задано жестко DBI, у меня другое было smile

Это сообщение отредактировал(а) shootnix - 15.6.2009, 16:42
PM WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0717 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.