Catalyst::ScriptRunner

By | 24.11.2015

Модуль отвечает за загрузку и запуск скриптов в пространстве имен приложения (например, 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.