Jump to content

Катализатор (программное обеспечение)

(Перенаправлено с MojoMojo )
Катализатор
Оригинальный автор(ы) Себастьян Ридель
Стабильная версия
5.90130 / 9 ноября 2022 г .; 20 месяцев назад ( 09.11.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 г.
  1. ^ «Выпуск модуля CPAN» . Катализатор . Проверено 24 апреля 2023 г.
  2. ^ Саймон Козенс (22 апреля 2004 г.). «Быстрое развертывание веб-приложений с помощью Maypole» . Перл.
  3. ^ Полное руководство по катализатору . Апресс . Сентябрь 2009. с. 2. ISBN  978-1430223658 .
  4. ^ «Майский столб» . КПАН .
  5. ^ «Файл изменений катализатора» . Проверено 8 августа 2018 г.
  6. ^ «Catalyst Framework — Участники» . Охло . Проверено 6 июня 2011 г.
  7. ^ «Найдите «Catalyst::Plugin::» — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
  8. ^ «Catalyst::Engine::HTTP::Prefork — Высокопроизводительный механизм предварительного разветвления Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
  9. ^ «Catalyst::Model::KiokuDB — используйте KiokuDB в своих приложениях Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
  10. ^ «Catalyst::Model::Adaptor — используйте простой класс в качестве модели Catalyst — Metacpan.org» . Metacpan.org . Проверено 8 августа 2018 г.
  11. ^ « Объявление о вакансии разработчика Catalyst/DBIC/eCommerce» . 8 мая 2011 года. Архивировано из оригинала 13 мая 2011 года . Проверено 6 июня 2011 г.
  12. ^ «iPlayer BBC работает на программном стеке Perl (включая Catalyst)» .
  13. ^ Димент, Кирен; Траут, Мэтт С. (2009). «Кулинарная книга катализатора». Полное руководство по катализатору . Апресс. стр. 278–281. ISBN  978-1-4302-2365-8 .
  14. ^ «Крупнейший порносайт в сети YouPorn на Perl/Catalyst (топ-50 в Alexa)» . реддит .
  15. ^ «Программный стек YouPorn изначально был написан на Perl + Mysql» .
[ редактировать ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 77d70649487e15893e77525b49a416a5__1720027860
URL1:https://arc.ask3.ru/arc/aa/77/a5/77d70649487e15893e77525b49a416a5.html
Заголовок, (Title) документа по адресу, URL1:
Catalyst (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)