Катализатор (программное обеспечение)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
Оригинальный автор(ы) | Себастьян Ридель |
---|---|
Стабильная версия | 5.90130 / 9 ноября 2022 г [1] |
Написано в | Перл |
Тип | Фреймворк веб-приложений |
Лицензия | PAL и GPL |
Веб-сайт | http://catalyst.perl.org/ |
Catalyst — это с открытым исходным кодом, платформа веб-приложений написанная на Perl . Он точно соответствует архитектуре модель-представление-контроллер (MVC) и поддерживает ряд экспериментальных веб-шаблонов. Он написан с использованием Moose , современной объектной системы для Perl. Его дизайн во многом вдохновлен такими фреймворками, как Ruby on Rails , Maypole и Spring .
Разработчики веб-приложений могут использовать Catalyst для работы с кодом, общим для всех веб-приложений. Он предоставляет интерфейс для получения запросов страниц, отправки запросов страниц в написанный разработчиком код для обработки и возврата запросов. Catalyst также предоставляет стандартизированный интерфейс для моделей данных, аутентификации, управления сеансами и других распространенных элементов веб-приложений.
Все эти элементы реализованы в виде плагинов к набору общих интерфейсов, что позволяет разработчику изменить конкретный используемый метод (например, сохранение сеанса в общей памяти вместо таблицы базы данных или использование FastCGI вместо работы в Apache mod_perl) путем изменение конфигурации Catalyst для использования другого плагина без изменения кода приложения.
Catalyst в основном распространяется через CPAN , который является официальным каналом распространения библиотек и приложений Perl.
История
[ редактировать ]Maypole была одной из первых платформ веб-приложений для языка программирования Perl, основанной на шаблоне MVC ; его основным автором был Саймон Козенс. [2] Catalyst начинался как ответвление Maypole и впоследствии стал Maypole 3.0. [3] Однако разработка Maypole прекратилась, поскольку его последний выпуск состоялся в апреле 2008 года. [4] и Catalyst стал его современным поддерживаемым эквивалентом.
Первый выпуск Catalyst для разработки состоялся 28 января 2005 года. Первая официальная версия была опубликована на CPAN 16 февраля 2005 года. [5] По состоянию на июнь 2011 года у Catalyst был 201 зарегистрированный участник. [6]
Философия
[ редактировать ]Catalyst основан на принципе « не повторяйся » (DRY), который означает, что определения нужно делать только один раз. Catalyst можно использовать с автоматической загрузкой классов из базы данных через один из множества модулей загрузчика, что не требует кода для уровня базы данных. Но если вам нужна гибкость и возможность делать все вручную, это тоже вариант. Еще один руководящий принцип Catalyst — гибкость.
Catalyst способствует повторному использованию существующих модулей Perl, которые уже хорошо справляются с распространенными проблемами веб-приложений.
- Часть модели обрабатывается через DBIx::Class , Plucene , Net::LDAP и другие классы модели.
- Уровень представления обычно обрабатывается, среди прочего, Template Toolkit , Mason или HTML::Template .
- Уровень контроллера , конечно, пишется каждым автором приложения. Большие фрагменты функциональности контроллера обычно можно перенести на один из множества плагинов Catalyst (например, Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery и т. д.).
- Наконец, Catalyst предлагает набор помощников для упрощения управления потоком и сопоставления URL-адресов с методами контроллера.
Catalyst имеет большой выбор плагинов. [7] Например, он имеет генерацию JavaScript для Ajax и RIA с использованием модуля Catalyst::Plugin::Prototype ( прототип — это платформа Ajax ). Плагины охватывают множество областей, например аутентификацию, управление сеансами, согласование HTTP и REST.
Catalyst также можно использовать с другими платформами Ajax, такими как jQuery или YUI , Yahoo! Библиотека пользовательского интерфейса.
Поддержка веб-сервера
[ редактировать ]Для разработки и тестирования Catalyst имеет встроенный простой HTTP-сервер. Для производственного использования Apache , Lighttpd , Hiawatha , Cherokee или Nginx с поддержкой FastCGI или mod_perl рекомендуется , но подойдет любой веб-сервер с поддержкой CGI или FastCGI. В Apache mod_perl может значительно повысить производительность, хотя его использование может быть проблемой, поскольку совместное использование нескольких приложений под mod_perl может быть небезопасно.
С начала 2008 года приложения Catalyst также можно развертывать с использованием механизма HTTP::Prefork. [8] который обеспечивает развертывание высокопроизводительных приложений Catalyst без отдельного веб-сервера. Начиная с выпуска Catalyst 5.9, Catalyst также выводит данные в спецификацию PSGI , поэтому его можно запускать на любом сервере Plack вместе с любым сервером или протоколом, поддерживающим спецификацию PSGI, включая Mongrel2 .
Поддержка базы данных
[ редактировать ]Catalyst может работать с использованием любой базы данных, поддерживаемой Perl DBI (это означает практически все, даже файл CSV подходящую СУБД или СУБД ), но рекомендуется использовать . Доступ к базе данных полностью абстрагирован с точки зрения программиста, и Catalyst через один из своих классов модели автоматически обрабатывает доступ ко всем базам данных, хотя при необходимости использование прямых SQL- возможно запросов. Это обеспечивает максимально возможную нейтральность базы данных, переносимость приложений через различные системы баз данных и удобство использования уже существующих баз данных для разработки приложений Catalyst, хотя из-за различных наборов функций СУБД это не полностью гарантируется одной платформой. Поддерживается несколько различных систем РСУБД, включая MySQL , PostgreSQL , SQLite , IBM Db2 , Oracle и Microsoft SQL Server . Для ODBMS имеется явная поддержка KiokuDB через Catalyst::Model::KiokuDB. [9] Абстракция модели . позволяет получать доступ к базам данных любого характера через Catalyst::Model::Adaptor [10]
Многие проекты на основе Catalyst используют DBIx::Class в качестве уровня ORM , который обеспечивает дополнительную абстракцию SQL-запросов с использованием API на основе набора результатов с прозрачной поддержкой произвольных объединений и других функций.
Использование
[ редактировать ]Веб-сайты, работающие на Catalyst, включают Magazines.com , [11] bbc.co.uk Серверная часть iPlayer, [12] Платформа сообщества DuckDuckGo , http://flexibase.io и Tripwolf.com . MojoMojo Вики-движок написан с использованием Catalyst. [13]
YouPorn создан на базе Catalyst [14] до 2012 года. [15]
См. также
[ редактировать ]Ссылки
[ редактировать ]- Димент, Кирен. Полное руководство по катализатору . Апресс. ISBN 978-1-4302-2365-8 . Архивировано из оригинала 17 сентября 2009 года . Проверено 9 сентября 2009 г.
- ^ «Выпуск модуля CPAN» . Катализатор . Проверено 24 апреля 2023 г.
- ^ Саймон Козенс (22 апреля 2004 г.). «Быстрое развертывание веб-приложений с помощью Maypole» . Перл.
- ^ Полное руководство по катализатору . Апресс . Сентябрь 2009. с. 2. ISBN 978-1430223658 .
- ^ «Майский столб» . КПАН .
- ^ «Файл изменений катализатора» . Проверено 8 августа 2018 г.
- ^ «Catalyst Framework — Участники» . Охло . Проверено 6 июня 2011 г.
- ^ «Найдите «Catalyst::Plugin::» — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
- ^ «Catalyst::Engine::HTTP::Prefork — Высокопроизводительный механизм предварительного разветвления Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
- ^ «Catalyst::Model::KiokuDB — используйте KiokuDB в своих приложениях Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
- ^ «Catalyst::Model::Adaptor — используйте простой класс в качестве модели Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
- ^ « Объявление о вакансии разработчика Catalyst/DBIC/eCommerce» . 8 мая 2011 г. Архивировано из оригинала 13 мая 2011 г. . Проверено 6 июня 2011 г.
- ^ «iPlayer BBC работает на программном стеке Perl (включая Catalyst)» .
- ^ Димент, Кирен; Траут, Мэтт С. (2009). «Кулинарная книга катализатора». Полное руководство по катализатору . Апресс. стр. 278–281. ISBN 978-1-4302-2365-8 .
- ^ «Крупнейший порносайт в сети YouPorn, работающий на Perl/Catalyst (топ-50 в Alexa)» . реддит .
- ^ «Программный стек YouPorn изначально был написан на Perl + Mysql» .