Catalyst::Model & Catalyst::Component

Catalyst::Model 


Реализует те же методы что и Catalyst::Component


Catalyst::Component - базовый класс


Универсальный базовый класс для компонентов Catalyst (Model/View/Controller)

Предоставляет методы new() для создания компонента, config() настройка, и метод process() для обработки выполнения.

Вызов $self->config внутри компонента, крайне не рекомендуется.


Методы


new($app, $arguments)
Вызванный с помощью COMPONENT для инициализации компонента, возвратит объект расположенный в хеше компонента приложения.

COMPONENT
my $component_instance = $component->COMPONENT($app, $arguments);

Если метод представлен, он вызывается Catalyst во время setup_components с помощью класса приложения как $app и вхождение конфига на приложения для этого компонента  (для примера, в случае MyApp::Controller::Foo это будет MyApp->config('Controller::Foo' => \%conf)

Аргументы ожидаются как хеш ссылок и соединяются вместе с __PACKAGE__->config хеш ссылок до вызова ->new для создания компонента.

Вы можете переписать это с помощью такой конструкции:
sub COMPONENT {
    my ($class, $app, $args) = @_;
    $args = $class->merge_config_hashes($class->config, $args);
    return $class->new($app, $args);
}

$c->config 
$c->config($hashref)
$c->config($key, $value, ...)
Аксессор для доступ к хешу конфига этого компонента. Значения конфига могут быть установлены как пара ключ-значение, или вы можете указать ссылку на хеш. В любом случае конфигурации будут объединены с существующими. Каждый компонент Catalyst имеет свой хеш конфига.

$c->process()
Этот метод по умолчанию, который вызывает Catalyst в диспетчере. К примеру, Views реализуют это действие для генерации содержимого ответа когда вы переадресует к ним. По умолчанию - это абстрактный метод.

$c->merge_config_hashes( $hashref, $hashref )
Объединяет два хеша вместе, рекурсивно, отдавая приоритет расположенным справа. Синоним для метода в Catalyst::Utils

$c->expand_modules( $setup_component_config )
Возвращает список дополнительных компонентов созданных этим компонентом. По умолчанию просто ищет список внутренних пакетов этого компонента.


Дополнительные методы


ACCEPT_CONTEXT($c, @args)
Компоненты Catalyst обычно иницииализируются во время запуска сервера, или как класс или как экземпляр. Однако некоторые компоненты требуют информацию о текущем запросе. Для этого они могут реализовать ACCEPT_CONTEXT метод.
Если имеет место этот метод, он вызывается в течении $c->comp/controller/model/view с текущим $c и дополнительными аргументами (например $c->model('Foo', qw/bar baz/) будет означать, что экземпляр вашей MyApp::Model::Foo, ACCEPT_CONTEXT будет вызван с ($c, 'bar', 'baz') и возвратит значение этого метода в вызвавший код в приложении, лучше чем сам компонент.