Catalyst

Перейти к навигацииПерейти к поиску
Catalyst
Логотип программы Catalyst
ТипПрограммный каркас для создания веб-приложений
РазработчикиJonathan Rockway, David Kamholz, Brian Cassidy, Yuval Kogman, Matt S. Trout, Jesse Sheidlower, Andy Grundman, Marcus Ramberg
Написана наPerl
Операционная система Кроссплатформенный
Последняя версия5.90130 (9 ноября 2022)
ЛицензияДвойная (Artistic License и GPL)
Сайтcatalyst.perl.org

Catalyst — свободный кроссплатформенный фреймворк для создания веб-приложений на языке Perl. Представляет собой набор модулей, размещённых на CPAN. Catalyst написан с помощью Moose и реализует концепцию MVC.

Реализация MVC в Catalyst

  • Model (Модель)
Хранит данные (обычно базу данных) и логику для работы с ними. Обычно используется ORM-фреймворк для работы с базой данных.
  • View (Вид)
Вид или представление, выполняют задачу отображения данных, которые хранятся в Model. Обычно View - это HTML страница, которая генерируется с помощью Template-Toolkit фреймворка либо, с помощью какого-нибудь другого шаблонизатора, например Mason (Perl).
  • Controller (Контроллер)
Задача контроллера - обрабатывать запросы клиента и формировать виды с данными, которые хранятся в моделях, а затем выдавать готовую страницу обратно клиенту.

Модель/Вид/Контроллер - обычные Moose-классы.

Вот так выглядит пример TT View, Moose-класса, который создается автоматически с помощью Catalyst скриптов-помощников.

package MyApp::View::HTML;
use Moose;
use namespace::autoclean;

extends 'Catalyst::View::TT';

__PACKAGE__->config(
    TEMPLATE_EXTENSION => '.tt',
    render_die => 1,
);

1;

Поддерживаемые веб-серверы

Для целей разработки и тестирования Catalyst содержит встроенный HTTP-сервер. Готовые приложения могут быть запущены на любом сервере, поддерживающем CGI. Для повышения производительности рекомендуется использовать FastCGI (в случае, когда используются nginx, Apache, IIS, lighttpd, Zeus) или mod_perl (когда используется Apache)[1].

Примечания

  1. Catalyst — The elegant MVC framework. Архивировано из оригинала 1 марта 2012 года.

Ссылки