Katalizator (oprogramowanie)

Katalizator
Oryginalni autorzy Sebastiana Riedla
Wersja stabilna
5.90128 / 11 listopada 2020 ; 2 lata temu ( 2020-11-11 )
Napisane w Perl
Typ Ramy aplikacji internetowych
Licencja PAL i GPL
Strona internetowa http://catalyst.perl.org/

Catalyst to platforma aplikacji internetowych typu open source napisana w języku Perl , która ściśle odpowiada architekturze model-view-controller (MVC) i obsługuje wiele eksperymentalnych wzorców internetowych. Jest napisany przy użyciu Moose , nowoczesnego systemu obiektowego dla Perla. Jego projekt jest mocno inspirowany frameworkami takimi jak Ruby on Rails , Maypole i Spring .

Deweloper aplikacji internetowych używałby Catalyst do obsługi kodu wspólnego dla wszystkich aplikacji internetowych: zapewnia interfejsy do serwerów sieciowych i odbiera żądania stron, przesyłając je do kodu napisanego przez programistę w celu przetwarzania i zwracania żądań oraz zapewnia ustandaryzowany interfejs dla modeli danych , uwierzytelnianie, zarządzanie sesją i inne typowe elementy aplikacji internetowych.

Wszystkie te elementy są zaimplementowane jako wtyczki do zestawu wspólnych interfejsów, umożliwiając programiście zmianę konkretnej używanej metody (np. sesja przechowywania w pamięci współdzielonej w porównaniu z tabelą bazy danych lub używanie FastCGI w porównaniu z działaniem w ramach mod_perl Apache) przez zmiana konfiguracji Catalyst w celu użycia innej wtyczki bez zmiany kodu aplikacji.

Catalyst jest dystrybuowany głównie przez CPAN , który jest oficjalnym kanałem dystrybucji bibliotek i aplikacji Perla.

Historia

Maypole był jednym z pierwszych frameworków aplikacji internetowych dla języka programowania Perl, który był oparty na wzorcu MVC ; jej głównym autorem był Simon Cozens. Catalyst powstał jako rozwidlenie Maypole, które miało stać się Maypole 3.0. Jednak rozwój Maypole został wstrzymany wraz z jego najnowszą wersją w kwietniu 2008 r., A Catalyst stał się jego nowoczesnym obsługiwanym odpowiednikiem.

Pierwsza wersja rozwojowa Catalyst miała miejsce 28 stycznia 2005 r. Pierwsza oficjalna wersja została umieszczona w CPAN 16 lutego 2005 r. W czerwcu 2011 r. Catalyst miał 201 zarejestrowanych współpracowników.

Filozofia

Catalyst opiera się na zasadzie „ nie powtarzaj się ” (DRY), co oznacza, że ​​definicje należy wprowadzić tylko raz. Catalyst może być używany z automatycznym ładowaniem klas z bazy danych przez jeden z wielu modułów ładujących, dzięki czemu nie wymaga kodu dla warstwy bazy danych. Ale jeśli potrzebujesz elastyczności ręcznego robienia wszystkiego, jest to również opcja. Kolejną naczelną zasadą Catalyst jest elastyczność.

Catalyst promuje ponowne wykorzystanie istniejących modułów Perla, które już dobrze radzą sobie z typowymi problemami aplikacji internetowych.

  • Część modelu jest obsługiwana przez DBIx::Class , Plucene , Net::LDAP i inne klasy modeli.
  • Warstwa widoku jest zwykle obsługiwana między innymi przez Template Toolkit , Mason lub HTML::Template .
  • Warstwa kontrolera jest oczywiście napisana przez każdego autora aplikacji. Dużą część funkcjonalności kontrolera można zwykle przypisać jednej z wielu wtyczek Catalyst (np. Catalyst::Plugin::FormValidator, Catalyst::Plugin::Prototype, Catalyst::Plugin::Account::AutoDiscovery, itp.).
  • Wreszcie, Catalyst oferuje zestaw pomocników upraszczających kontrolę przepływu i mapowanie adresów URL na metody kontrolera.

Catalyst ma duży wybór wtyczek. Na przykład ma generowanie JavaScript dla Ajax i RIA przy użyciu modułu Catalyst::Plugin::Prototype ( prototyp jest frameworkiem Ajax ). Wtyczki obejmują wiele obszarów, na przykład uwierzytelnianie, zarządzanie sesją, negocjacje HTTP i REST.

Catalyst może być również używany z innymi frameworkami Ajax, takimi jak jQuery lub YUI , Yahoo! Biblioteka interfejsu użytkownika.

Obsługa serwera WWW

Do programowania i testowania Catalyst ma wbudowany prosty serwer HTTP. Do użytku produkcyjnego zaleca się Apache , lighttpd , Hiawatha , Cherokee lub Nginx z obsługą FastCGI lub mod_perl , ale każdy serwer WWW z obsługą CGI lub FastCGI będzie działał. Na Apache mod_perl może znacznie poprawić wydajność, chociaż jego użycie może stanowić problem, ponieważ udostępnianie wielu aplikacji pod mod_perl może być niebezpieczne.

Od początku 2008 r. aplikacje Catalyst można również wdrażać przy użyciu mechanizmu HTTP::Prefork, który umożliwia wdrażanie wydajnych aplikacji Catalyst bez oddzielnego serwera WWW. Począwszy od wydania Catalyst 5.9, Catalyst obsługuje również PSGI , dzięki czemu można go uruchomić na dowolnym serwerze Plack i wraz z dowolnym serwerem lub protokołem obsługującym specyfikację PSGI, w tym Mongrel2 .

Wsparcie bazy danych

Catalyst może działać z dowolną bazą danych obsługiwaną przez DBI Perla (oznacza to prawie wszystko, nawet plik CSV ), ale zalecany jest odpowiedni RDBMS lub ODBMS . Dostęp do bazy danych jest całkowicie wyabstrahowany z punktu widzenia programisty, a Catalyst poprzez jedną ze swoich klas modeli automatycznie obsługuje dostęp do wszystkich baz danych – choć w razie potrzeby możliwe jest użycie bezpośrednich zapytań SQL . Umożliwia to neutralność bazy danych, przenośność aplikacji w różnych systemach baz danych oraz użyteczność istniejących wcześniej baz danych do tworzenia aplikacji Catalyst w jak największym stopniu, chociaż ze względu na różne zestawy funkcji RDBMS nie jest to w pełni gwarantowane przez sam framework. Obsługiwanych jest kilka różnych systemów RDBMS, w tym MySQL , PostgreSQL , SQLite , IBM Db2 , Oracle i Microsoft SQL Server . W przypadku ODBMS istnieje wyraźna obsługa KiokuDB za pośrednictwem Catalyst::Model::KiokuDB. modelu umożliwia dostęp do baz danych dowolnego rodzaju za pośrednictwem Catalyst::Model::Adaptor .

Wiele projektów opartych na Catalyst używa DBIx::Class jako warstwy ORM , która zapewnia dalszą abstrakcję zapytań SQL, używając interfejsu API opartego na zestawie wyników z przezroczystą obsługą dowolnych połączeń i innych funkcji.

Używa

Witryny obsługiwane przez Catalyst obejmują Magazines.com , zaplecze bbc.co.uk iPlayer , platformę społecznościową DuckDuckGo , http://flexibase.io i Tripwolf.com. Silnik wiki MojoMojo jest napisany przy użyciu Catalyst.

YouPorn był zasilany przez Catalyst do 2012 roku.

Zobacz też

  •   Diment, Kieren. Ostateczny przewodnik po Catalyst . Apress. ISBN 978-1-4302-2365-8 . Zarchiwizowane od oryginału w dniu 17.09.2009 . Źródło 2009-09-09 .

Linki zewnętrzne