Katalizör (yazılım) - Catalyst (software)

Katalizör
Catalyst logo3.png
Orijinal yazar (lar)Sebastian Riedel
Kararlı sürüm
5.90124 / 18 Ocak 2019; 22 ay önce (2019-01-18)[1]
YazılmışPerl
TürWeb uygulama çerçevesi
LisansPAL ve GPL
İnternet sitesiwww.catalystframework.org

Katalizör bir açık kaynak web uygulama çerçevesi yazılmış Perl, yakından takip eden model görünüm denetleyici (MVC) mimarisi ve bir dizi deneysel web modelini destekler. Kullanılarak yazılmıştır Kanada geyiği Perl için modern bir nesne sistemi. Tasarımı, aşağıdaki gibi çerçevelerden büyük ölçüde esinlenmiştir: raylar üzerinde yakut, Maypole, ve İlkbahar.

Bir web uygulaması geliştiricisi, tüm web uygulamalarında ortak olan kodla başa çıkmak için Catalyst'i kullanır: web sunucularına arayüzler sağlar ve sayfa isteklerini alır, bunları istekleri işlemek ve geri döndürmek için geliştiricinin yazdığı koda gönderir ve veri modelleri için standartlaştırılmış bir arayüz sağlar , kimlik doğrulama, oturum yönetimi ve diğer yaygın web uygulaması öğeleri.

Bu öğelerin tümü, geliştiricinin kullanılan belirli yöntemi değiştirmesine olanak tanıyan bir dizi ortak arabirime eklenti olarak uygulanır (örneğin, paylaşılan bellekte veri tabanı tablosu olarak depolanan bir oturum veya Apache'nin mod_perl'i içinde bir FastCGI kullanılarak çalıştırılması) Uygulama kodunu değiştirmeden farklı bir eklenti kullanmak için Catalyst yapılandırmasını değiştirmek.

Katalizör öncelikle CPAN Perl kitaplıkları ve uygulamaları için resmi dağıtım kanalı olan.

Tarih

Maypole Perl programlama dili için ilk web uygulama çerçevelerinden biriydi. MVC Desen; baş yazarı Simon Cozens'ti.[2] Katalizör bir çatal Maypole 3.0 olması amaçlanan Maypole.[3] Geliştirme Maypole'da durdu, ancak en son Nisan 2008'de piyasaya sürülmesiyle,[4] ve Catalyst onun modern destekli muadili haline geldi.

Catalyst'in ilk geliştirme sürümü 28 Ocak 2005'te gerçekleşti. İlk resmi sürüm 16 Şubat 2005'te CPAN'a yerleştirildi.[5] Haziran 2011 itibariyle, Catalyst'in 201 kayıtlı katılımcısı vardı.[6]

Felsefe

Katalizör bir "kendini tekrar etme "(DRY) ilkesi, bu, tanımların yalnızca bir kez yapılması gerektiği anlamına gelir. Catalyst, birçok yükleyici modülünden biri aracılığıyla veritabanından otomatik sınıf yüklemesi ile kullanılabilir, dolayısıyla veritabanı katmanı için kod gerektirmez. Ancak, eğer siz her şeyi elle yapma esnekliğini gerektirir, bu aynı zamanda bir seçenektir .. Catalyst'in diğer bir yol gösterici ilkesi esnekliktir.

Catalyst, yaygın web uygulaması sorunlarını halihazırda iyi bir şekilde ele alan mevcut Perl modüllerinin yeniden kullanımını teşvik eder.

  • Modeli bölüm ele alınır DBIx :: Sınıf, Plucene, Net :: LDAP ve diğer model sınıfları.
  • Görünüm katman genellikle tarafından ele alınır Şablon Araç Seti, Duvarcı veya HTML :: Şablondiğerleri arasında.
  • Kontrolör katman elbette her uygulama yazarı tarafından yazılır. Büyük Denetleyici işlevselliği yığınları genellikle birçok Catalyst eklentisinden birine (örneğin, Catalyst :: Plugin :: FormValidator, Catalyst :: Plugin :: Prototype, Catalyst :: Plugin :: Account :: AutoDiscovery vb.) Ertelenebilir.
  • Son olarak, Catalyst, akış denetimini basitleştirmek ve URL'leri denetleyici yöntemleriyle eşleştirmek için bir dizi yardımcı sunar.

Catalyst geniş bir eklenti yelpazesine sahiptir.[7] Örneğin, JavaScript oluşturma Ajax ve DEA'lar Catalyst :: Plugin :: Prototype modülünü kullanarak (prototip bir Ajax çerçevesi ). Eklentiler, örneğin kimlik doğrulama, oturum yönetimi, HTTP anlaşması ve REST gibi birçok alanı kapsar.

Catalyst, aşağıdakiler gibi diğer Ajax çerçeveleriyle de kullanılabilir: jQuery veya YUI, Yahoo! Kullanıcı Arayüzü Kitaplığı.

Web sunucusu desteği

Geliştirme ve test için, Catalyst yerleşik basit bir HTTP sunucusuna sahiptir. Üretim kullanımı için, Apaçi, lighttpd, Hiawatha, Cherokee veya Nginx ile FastCGI veya mod_perl desteği önerilir, ancak CGI veya FastCGI desteğine sahip herhangi bir web sunucusu çalışacaktır. Apache'de mod_perl, performansa önemli ölçüde yardımcı olabilir, ancak mod_perl altında birden fazla uygulamayı paylaşmak güvensiz olabileceğinden kullanımı bir sorun olabilir.

2008'in başından beri, Catalyst uygulamaları HTTP :: Prefork motoru kullanılarak da dağıtılabilmektedir[8] ayrı bir web sunucusu olmadan yüksek performanslı Catalyst uygulamalarının konuşlandırılmasını sağlar. Catalyst 5.9'un piyasaya sürülmesinden başlayarak, Catalyst ayrıca PSGI spec böylece herhangi bir Plack sunucusu ve PSGI özelliklerini destekleyen herhangi bir sunucu veya protokolle birlikte Mongrel2.

Veritabanı desteği

Catalyst, aşağıdakiler tarafından desteklenen herhangi bir veritabanını kullanarak çalışabilir: Perl'in DBI (bu neredeyse her şey anlamına gelir, hatta CSV dosya), ancak uygun bir RDBMS veya ODBMS tavsiye edilir. veritabanı erişimi tamamen soyutlanmıştır programcının bakış açısından ve Catalyst, model sınıflarından biri aracılığıyla tüm veritabanlarına erişimi otomatik olarak yönetir - ancak gerekirse doğrudan SQL sorgular mümkündür. Bu, veritabanı tarafsızlığını, farklı veritabanı sistemleri üzerinden uygulama taşınabilirliğini ve Catalyst uygulama geliştirme için önceden var olan veritabanlarının kullanılabilirliğini mümkün olduğunca mümkün kılar, ancak RDBMS'lerin farklı özellik kümeleri nedeniyle, yalnızca çerçeve tarafından tamamen garanti edilmez. Aşağıdakiler dahil birkaç farklı RDBMS sistemi desteklenir: MySQL, PostgreSQL, SQLite, IBM DB2, Oracle ve Microsoft SQL Sunucusu. ODBMS'ler için, Catalyst :: Model :: KiokuDB aracılığıyla KiokuDB için açık destek vardır.[9] Modeli soyutlama, her türden veritabanına Catalyst :: Model :: Adapter aracılığıyla erişilmesine izin verir.[10]

Catalyst tabanlı birçok proje, DBIx :: Sınıf olarak ORM katmanı, rastgele birleştirmeler ve diğer özellikler için şeffaf destekli sonuç kümesi tabanlı bir API kullanarak SQL sorgularının daha fazla soyutlanmasını sağlar.

Kullanımlar

Catalyst tarafından desteklenen web siteleri şunları içerir: Magazines.com,[11] bbc.co.uk iPlayer arka uç[12] DuckDuckGo's Topluluk Platformu, http://flexibase.io ve Tripwolf.com. MojoMojo wiki motoru Catalyst kullanılarak yazılmıştır.[13]

YouPorn Catalyst tarafından desteklendi[14] 2012'ye kadar.[15]

Ayrıca bakınız

Referanslar

  • Diment, Kieren. Katalizör için Kesin Kılavuz. Apress. ISBN  978-1-4302-2365-8. Arşivlenen orijinal 2009-09-17 tarihinde. Alındı 2009-09-09.

Dış bağlantılar