Catalyst (software) - Catalyst (software)

Catalisador
Catalyst logo3.png
Autor (es) original (is) Sebastian riedel
Versão estável
5.90124 / 18 de janeiro de 2019 ; 22 meses atrás  ( 18/01/2019 )
Escrito em Perl
Tipo Estrutura de aplicativo da web
Licença PAL e GPL
Local na rede Internet www .catalystframework .org

Catalyst é uma estrutura de aplicativo da web de código aberto escrita em Perl , que segue de perto a arquitetura model – view – controller (MVC) e oferece suporte a vários padrões experimentais da web. Ele foi escrito usando Moose , um sistema de objetos moderno para Perl. Seu design é fortemente inspirado por estruturas como Ruby on Rails , Maypole e Spring .

Um desenvolvedor de aplicativos da web usaria o Catalyst para lidar com o código comum a todos os aplicativos da web: ele fornece interfaces para servidores da web e recebe solicitações de página, distribuindo-as em código escrito pelo desenvolvedor para processar e retornar as solicitações e fornece uma interface padronizada para modelos de dados , autenticação, gerenciamento de sessão e outros elementos comuns de aplicativos da web.

Todos esses elementos são implementados como plug-ins para um conjunto de interfaces comuns, permitindo ao desenvolvedor alterar o método específico usado (por exemplo, uma sessão armazenando em memória compartilhada versus uma tabela de banco de dados, ou usando FastCGI versus operando como um dentro do mod_perl do Apache) por alterar a configuração do Catalyst para usar um plugin diferente sem alterar o código do aplicativo.

O Catalyst é distribuído principalmente através do CPAN , que é o canal de distribuição oficial para bibliotecas e aplicativos Perl.

História

Maypole foi uma das primeiras estruturas de aplicativos da web para a linguagem de programação Perl que foi baseada no padrão MVC ; seu principal autor foi Simon Cozens. O Catalyst começou como um fork do Maypole, pretendendo se tornar o Maypole 3.0. O desenvolvimento cessou no Maypole, no entanto, com seu lançamento mais recente em abril de 2008, e o Catalyst tornou-se seu equivalente moderno com suporte.

O primeiro lançamento de desenvolvimento do Catalyst ocorreu em 28 de janeiro de 2005. A primeira versão oficial foi colocada no CPAN em 16 de fevereiro de 2005. Em junho de 2011, o Catalyst tinha 201 contribuidores registrados.

Filosofia

O Catalyst é baseado no princípio " não se repita " (DRY), o que significa que as definições devem ser feitas apenas uma vez. O Catalyst pode ser usado com carregamento automático de classes do banco de dados por meio de um dos vários módulos de carregamento, não exigindo, portanto, código para a camada de banco de dados. Mas, se você precisar da flexibilidade de fazer tudo manualmente, também é uma opção. Outro princípio orientador do Catalyst é a flexibilidade.

O Catalyst promove a reutilização de módulos Perl existentes que já tratam bem de problemas comuns de aplicativos da Web.

  • A parte do modelo é tratada através de DBIx :: Class , Plucene , Net :: LDAP e outras classes de modelo.
  • A camada de visualização geralmente é tratada pelo Template Toolkit , Mason ou HTML :: Template , entre outros.
  • A camada do controlador é obviamente escrita por cada autor do aplicativo. Grandes partes da funcionalidade do Controlador geralmente podem ser transferidas para um dos muitos plug-ins do Catalyst (por exemplo, Catalyst :: Plugin :: FormValidator, Catalyst :: Plugin :: Prototype, Catalyst :: Plugin :: Conta :: AutoDiscovery, etc.).
  • Por fim, o Catalyst oferece um conjunto de ajudantes para simplificar o controle de fluxo e o mapeamento de URLs para métodos de controlador.

O Catalyst tem uma grande seleção de plug-ins. Por exemplo, ele tem geração de JavaScript para Ajax e RIAs usando o módulo Catalyst :: Plugin :: Prototype ( protótipo é uma estrutura Ajax ). Os plug-ins cobrem muitas áreas, por exemplo, autenticação, gerenciamento de sessão, negociação HTTP e REST.

O Catalyst também pode ser usado com outras estruturas Ajax, como jQuery ou YUI , o Yahoo! Biblioteca da interface do usuário.

Suporte para servidor web

Para desenvolvimento e teste, o Catalyst possui um servidor HTTP simples integrado. Para uso em produção, Apache , lighttpd , Hiawatha , Cherokee ou Nginx com suporte FastCGI ou mod_perl é recomendado, mas qualquer servidor web com suporte CGI ou FastCGI funcionará. No Apache, o mod_perl pode ajudar com o desempenho consideravelmente, embora seu uso possa ser um problema porque pode ser inseguro compartilhar vários aplicativos em mod_perl.

Desde o início de 2008, os aplicativos Catalyst também podem ser implantados usando o mecanismo HTTP :: Prefork, que fornece a implantação de aplicativos Catalyst de alto desempenho sem um servidor web separado. A partir do lançamento do Catalyst 5.9, o Catalyst também dá saída para a especificação PSGI, portanto, pode ser executado em qualquer servidor Plack e junto com qualquer servidor ou protocolo que suporte a especificação PSGI, incluindo Mongrel2 .

Suporte de banco de dados

O Catalyst pode ser executado usando qualquer banco de dados compatível com o DBI do Perl (isso significa quase tudo, até mesmo um arquivo CSV ), mas um RDBMS ou ODBMS adequado é recomendado. O acesso ao banco de dados é inteiramente abstraído do ponto de vista do programador e o Catalyst, por meio de uma de suas classes de modelo, controla o acesso a todos os bancos de dados automaticamente - embora, se necessário, seja possível usar consultas SQL diretas . Isso permite a neutralidade do banco de dados, a portabilidade do aplicativo em diferentes sistemas de banco de dados e a usabilidade de bancos de dados pré-existentes para o desenvolvimento de aplicativos Catalyst tanto quanto possível, embora devido aos diferentes conjuntos de recursos dos RDBMSes, isso não seja totalmente garantido pela estrutura sozinha. Vários sistemas RDBMS diferentes são suportados, incluindo MySQL , PostgreSQL , SQLite , IBM DB2 , Oracle e Microsoft SQL Server . Para ODBMSes, há suporte explícito para KiokuDB via Catalyst :: Model :: KiokuDB. A abstração do modelo permite que bancos de dados de qualquer natureza sejam acessados ​​via Catalyst :: Model :: Adapter.

Muitos projetos baseados em Catalyst usam DBIx :: Class como camada ORM , que fornece abstração adicional de consultas SQL, usando uma API baseada em conjunto de resultados com suporte transparente para junções arbitrárias e outros recursos.

Usos

Os sites com tecnologia Catalyst incluem Magazines.com , bbc.co.uk iPlayer backend, DuckDuckGo's Community Platform, http://flexibase.io e Tripwolf.com . O mecanismo wiki MojoMojo é escrito usando Catalyst.

YouPorn foi alimentado por Catalyst até 2012.

Veja também

Referências

  • Diment, Kieren. O guia definitivo para o catalisador . Apress. ISBN   978-1-4302-2365-8 . Arquivado do original em 17/09/2009 . Página visitada em 2009-09-09 .

links externos