Catalyst::ScriptRunner

Модуль отвечает за загрузку и запуск скриптов в пространстве имен приложения (например, MyApp::Script::Server), или в пространстве имен Catalyst (например, Catalyst::Script::Server).

 

Методы

find_script_class($appname, $script_name)

На основании переданных данных, ищет и пытается загрузить класс для скрипта. Сначала он попытается найти и загрузить класс «$appname::Script::$script_name» , если попытка окончится неудачно, попробует загрузить «Catalyst::Script::$script_name». Возвращает имя класса.

Т.е. если вызов метода выглядит так:

то будет выполняться поиск — сначала MyApp::Script::Server, затем Catalyst::Script::Server.

 

run ($application_class, $scriptclass)

Метод принимает на вход два параметра:

  • класс приложения (например, MyApp);
  • класс скрипта (чаще всего один из Server/FastCGI/CGI/Create/Test, или др.).

Используя find_script_class(), метод run() подгружает найденный класс, создает новый объект загруженного класса и вызывает метод run() уже для него.

Т.е. в каждом модуле Catalyst::Script::* или MyApp::Script::* должен быть реализован метод run() , либо унаследован от какого-нибудь базового класса. Например, Catalyst::Script::CGI «наследует» метод run из Catalyst::ScriptRole.