Category: Zend Framework

Zend Music Collection

Quando comecei a estudar o Zend Framework, senti muita falta de uma aplicação de exemplo que usasse alguns dos recursos que tanto lia sobre, como o Zend_Acl, Zend_Navigation, Zend_Paginator, entre outros. O tempo passou, eu acabei aprendendo a usar esses componentes graças principalmente a posts em blogs de colegas, ensinando a usá-los em situações mais próximas das que encontramos no dia-a-dia.

Então, resolvi criar uma aplicação bem básica, mas que usa boa parte dos componentes “básicos” do framework. Chama Zend Music Collection (nome péssimo, eu sei…), e é um sistema que cadastra artistas e seus álbuns. Simples, né? Aqui uma lista de componentes que ela utiliza:

  • Zend_Navigation (menu & breadcrumbs)
  • Zend_Layout
  • Zend_Paginator
  • Zend_Form
  • Zend_Controller_Action_Helper_FlashMessenger
  • Zend_Db_Table
  • Zend_Auth

Junto com a aplicação vem um arquivo com a SQL de criação do banco de dados. Tentei comentar cada instrução não óbvia do código, principalmente dos controllers, para tentar melhor explicar afinal de contas o que está acontecendo por ali. Espero que essa aplicação possa ajudar outras pessoas a ter uma introdução mais rapida e tranquila ao Zend Framework, e também espero que nenhuma pessoa resolva usar ela para cadastrar sua coleção de músicas – seria uma péssima idéia.

A Zend Music Collection, e todo o seu código-fonte, está disponível no GitHub.

Autenticando o Zend Framework no Alfresco

O Alfresco, em poucas palavras, é um GED (Gerenciador Eletrônico de Documentos) escrito em Java e que possibilita gerenciamento inteligente dos documentos, buscas à la Google e integração com diversas interfaces. Possui uma versão Community, que é gratuita e open-source. O Alfresco também possibilita a criação e desenvolvimento de sistemas em cima de sua plataforma, através dos seus Web Scripts. Esses scripts ficam disponíveis como serviços REST para serem consumidos por outras aplicações.

No caso de uma aplicação derivada do Alfresco, pode ser interessante que ela faça sua autenticação diretamente no próprio. O módulo Zend_Auth, do Zend Framework, pode ser extendido para realizar sua autenticação em diversas plataformas. Desenvolvi então um Adapter para o Zend_Auth para autenticar no Alfresco, utilizando o Webservice de autenticação que o mesmo disponibiliza.

Para os interessados em utilizar/expandir/melhorar a classe, aqui está o link para o projeto no Github. Em breve irei postar mais conteúdos sobre integraçao do Zend Framework com o Alfresco, principalmente classes para utilizar seus serviços REST nativos, como listagem de usuarios, grupos, pastas e arquivos.

Link: Zend_Auth_Adapter_Alfresco

Zend Framework Coding Standards

Para produzir um código de alta qualidade, um bom início é seguir algum padrão de codificação. Ele melhora a legibilidade, torna o código mais previsível e ajuda na sua manutenção.

Devo colocar as chaves de abertura de um método na mesma linha, ou devo quebrar uma linha? Quantos espaços utilizar para identar o código? Qual deve ser tamanho máximo de cada linha de código?

É interessante que a resposta para cada uma dessas e outras perguntas sobre padrões de código seja a mesma ao longo de todo o sistema. Não é agradável ver, por exemplo, duas classes do mesmo sistema com diferentes tamanhos de identação ou uma classe com o tamanho máximo de linha de 80 caracteres e outra sem nenhum limite definido. Aliás, que derrota é abrir um arquivo sem limite de tamanho das linhas, com aquela horrível barra de rolagem horizontal. A impressão que causa é que o autor do código não se importava muito com ele, e isso é um péssimo presságio que coloca em dúvida a qualidade do código do restante do sistema.

A Zend, a auto-intitulada “The PHP Company”, criou um padrão bem interessante, bem documentado e suuuper legal. Para os usuários do Zend Studio, é possível até definir esse padrão para a IDE pelo caminho: Window > Preferences > PHP > Code Style > Formatter > Active Profile.

Para os interessados, segue o link da documentação do padrão de código PHP da Zend: Zend Framework Coding Standards.