Catalyst (программное обеспечение)

редактировать
Catalyst
Catalyst logo3.png
Автор оригинала (s) Себастьян Ридель
Стабильный выпуск 5.90124 / 18 января 2019 г.; 21 месяц назад (18.01.2019)
Написано наPerl
Тип Структура веб-приложений
Лицензия PAL и GPL
Веб-сайтwww.catalystframework.org

Catalyst - это платформа веб-приложений с открытым исходным кодом , написанная на Perl, которая точно следует архитектуре модель – представление – контроллер (MVC) и поддерживает ряд экспериментальных веб-шаблонов. Он написан с использованием Moose, современной объектной системы для Perl. Его дизайн во многом вдохновлен такими фреймворками, как Ruby on Rails, Maypole и Spring.

. Разработчик веб-приложений мог бы использовать Catalyst для работы с кодом, общим для всей сети. приложения: он предоставляет интерфейсы для веб-серверов и получения запросов страниц, отправляя их в написанный разработчиком код для обработки и возврата запросов, а также предоставляет стандартизированный интерфейс для моделей данных, аутентификации, управления сеансами и других общих элементов веб-приложений.

Все эти элементы реализованы как плагины к набору общих интерфейсов, что позволяет разработчику изменять конкретный используемый метод (например, сохранение сеанса в общей памяти по сравнению с таблицей базы данных или использование FastCGI вместо работы в качестве в Apache mod_perl), изменив конфигурацию Catalyst, чтобы использовать другой плагин без изменения кода приложения.

Catalyst в основном распространяется через CPAN, который является официальным каналом распространения библиотек и приложений Perl.

Содержание

  • 1 История
  • 2 Философия
  • 3 Поддержка веб-сервера
  • 4 Поддержка базы данных
  • 5 Использование
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

История

Maypole была одной из первых сред веб-приложений для языка программирования Perl, основанной на шаблоне MVC ; его основным автором был Саймон Козенс. Catalyst начинался как форк Maypole, который должен был стать Maypole 3.0. Однако разработка Maypole прекратилась с его последним выпуском в апреле 2008 года, и Catalyst стал его современным поддерживаемым эквивалентом.

Первый выпуск Catalyst состоялся 28 января 2005 г. Первая официальная версия была размещена в CPAN 16 февраля 2005 г. По состоянию на июнь 2011 г. Catalyst имел 201 зарегистрированный участник.

Философия

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 имеет большой выбор подключаемых модулей. Например, он генерирует JavaScript для Ajax и RIA с использованием модуля Catalyst :: Plugin :: Prototype (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, который обеспечивает развертывание высокопроизводительных приложений Catalyst без отдельного веб-сервера. Начиная с выпуска Catalyst 5.9, Catalyst также выводит данные в соответствии со спецификацией PSGI, поэтому его можно запускать на любом сервере Plack и вместе с любым сервером или протоколом, поддерживающим спецификацию PSGI, включая Mongrel2.

Поддержка базы данных

Catalyst может работать с любой базой данных, поддерживаемой Perl DBI (это означает почти все, даже файл CSV ), но рекомендуется соответствующая СУБД или ODBMS. Доступ к базе данных полностью абстрагируется с точки зрения программиста, и Catalyst через один из классов своей модели автоматически обрабатывает доступ ко всем базам данных, хотя, при необходимости, с использованием прямых запросов SQL возможно. Это обеспечивает нейтральность к базам данных, переносимость приложений по разным системам баз данных и максимально возможное удобство использования уже существующих баз данных для разработки приложений Catalyst, хотя из-за различных наборов функций СУБД это не полностью гарантируется одной только структурой. Поддерживаются несколько различных систем СУБД, включая MySQL, PostgreSQL, SQLite, IBM DB2, Oracle и Microsoft SQL Server. Для ODBMS существует явная поддержка KiokuDB через Catalyst :: Model :: KiokuDB. Абстракция Model позволяет получать доступ к базам данных любой природы через Catalyst :: Model :: Adapter.

Многие проекты на основе Catalyst используют DBIx :: Class в качестве Уровень ORM, который обеспечивает дальнейшую абстракцию SQL-запросов с использованием API на основе набора результатов с прозрачной поддержкой произвольных объединений и других функций.

Использует

веб-сайты на базе Catalyst, включая Magazines.com, bbc.co.uk iPlayer backend, DuckDuckGo's Community Платформа, http://flexibase.io и. Вики-движок MojoMojo написан с использованием Catalyst.

YouPorn работал на Catalyst до 2012 года.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Список литературы

Внешние ссылки

Последняя правка сделана 2021-05-14 11:59:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте