Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

Conceito de Plugins...

Recommended Posts

O ZF, assim como outros frameworks, introduziram um conceito diferente de plugins na vida dos programadores.

 

Neles, plugins significam, até onde entendi, recursos que modificam ou desviam o rumo de uma ação do framework, seja ela antes, durante ou depois das ações.

 

Para suprir essa "surrupiada" de nomes, implementaram o conceito de "hooks" (ganchos) para representar o que antes conhecíamos como plugins, viralmente popularizado, principal mas nçao exclusivamente, pelo WordPress.

 

Minha pergunta é: Como reproduzir, a exemplo do próprio WordPress, o conceito de plugins (hooks) no Zend Framework? Ou seja, a criação de um conjunto de classes ou de arquivoc com....eac... programação 100% procedural, que adicionei recursos não existentes à um aplicativo desenvolvido sob Zend Framework?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmmmm.... Na verdade não.

 

Pelo menos na minha concepção, eu vejo os helpers como "facilitadores" que, antes de se usar um framework, eram caracterizados pelas biblioteca de funções, com métodos, complexos ou não, que visavam simplificar uma tarefa dispendiosa a poucas linhas de código.

 

O conceito de plugins seria o mesmo proposto no tópico, tal qual o WordPress. Minha intenção é desenvolver umaplicativo Web o qual possa ser extendido por meio de módulos desenvolvidos por mim ou por terceiros, cada qual oferecendo sua funcionalidade expecífica sem a necessidade de se mexer diretamente no código-fonte original.

 

Vou estender em dois exemplos adicionais.

 

Imagina um Módulo de Pagamentos que, nativamente, oferece suporte apenas a boleta bancário. Então, um desenvolvedor interessado e usuário do sistema, deseja oferecer suporte à Cartão de Crédito, mas só tem conhecimentos necessários para suportara bandeira MasterCard.

 

Ele desenvolve o módulo MasterCard a ser integrado ao módulo de Pagamento nativo e o sistema interpreta esse módulo com um plugin, já que você coloca no site, o sistema descompacta instala e direciona tudo para suas devidas pastas.

 

Então é lançado um componente melhor que oferece suporte nativo além ao MasterCard, ao Visa, AmericanExpress e outros. O usuário desativa o plugin antigo e o sistema remove todas as referências existentes, físicas (arquivos) e lógicas (informações do banco de dados).

 

Coloca o pacite na pasta pré-determinada e o ciclo reinicia.

 

A necessidade disso, pode ser ilustrada como segundo exemplo, o sistema de fóruns Invision Power Board. Quem conhece o Invision desde as suas primeiras versões, quando ainda era gratuito e sentia a necessidade deadicionar um complemento, baixava o componente e, dependendo da complexidade do sistema, tinha de alterar dezenas de arquivos originais, adicionando, alterando e até removendo linhas de código.

 

Isso fazia com que o sistema, aos poucos fosse se degradando, perdendo consistência e segurança. Hoje, na ver~soa 3, temos no fórum o mesmo conceito do WordPress, mas ao invés de ser chamado de plugin, são hooks.

 

Já vi, acredito que no fórum da Zend, perguntarem sobre o conceito desses hooks, mas nenhuma resposta satisfatória.

 

Sacou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha pelo que eu entendo de wordpress e do que ja vi do Invision (opnião propria ok?)

 

Primeiramente o Wordpress tbm não era assim com todas as facilidades de plugins quando foi criado, ele era algo mais engessado, e por causa disso eles começaram a criar esse sistema de plugin que você tanto adora, assim como eu e muitos outros programadores.

 

Porque plugin e não alterar o código font? Simple, pois um plugin se der M nele, basta desativar ou modificar para arrumar, se der M no original nem sempre você vai saber como arrumar o código e por isso que fica mais fácil usar um plugin do que mudar o código original.

 

Pois bem, assim como o Matias respondeu, em alguns FrameWorks o Helper toma o lugar do plugin, pois se você não tem um sistema, com um helper chamando outras funções você pode criar a funcionalidade desejada, inclusive conversar com o banco de dados diretamente por ele. Então digamos que um helper pode sim ser considerado um plugin... não tem o mesmo nome nem as mesmas funcionalidades, mas pode alcançar o que deseja no final das contas.

 

Em um helper do Zend por exemplo você pode adicionar novas rotas, pode criar caminhos alterantivos para o que você quer, mas infelizmente não pode-se alterar funções de controladores... ou seja um controlador que já foi criado você não consegue simplesmente adicionar código nele através de um helper... tudo que você poderá fazer é chamar funções para facilitar o serviço ou converter as infomações necessárias.

 

Afinal de contas o WordPress quando você cria um página de template o que você tem que fazer??? Nomear ela como template no código criar uma página no Wordpress que vai representar aquela página que existia anteriormente, com um layout padrão, ou seja ele vai redirecionar para a template que você quer.

 

Plugins adicionam funcionalidades ao administrador e no codigo do post, HELPER adicionam funcionalidades ao código da template (post), mas não adicionam ao administrador, porque não existe um administrador padrão que todos usam para tudo, como o WORDPRESS tem, se você criar um administrador global para o ZEND você por sua vez vai poder adicionar essas funcionalidades de plugins para futuros programadores etc. Caso contrario você vai ter só mais um administrador que trabalha para aquilo que você quer.

 

Então podemos dizer que o WordPress é uma ferramenta mais completa do que as outras, graças a programadores que resolveram alterar o sistema simples de um blog, e fazer ele virar um FrameWork com multiplas opções etc, para se altera.

 

Bom isso é o que eu penso... é o que eu vejo de tudo isso que aconteceu.

Posso estar errado sobre alguns levantamentos ou não... isso depende de cada um que vá ler e opniar a respeito :)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.