Category: PHP

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.

Tema WordPress: Ghostwriter

Ghostwriter: clean and minimalistic theme for WordPress

Depois de usar magníficos temas criados pela participativa comunidade do WordPress, decidi criar um próprio e compartilhá-lo de volta. O tema chama-se Ghostwriter (título em homenagem ao ótimo filme de Roman Polanski), e sua proposta é ser um tema minimalista, limpo, focado no conteúdo e o seu mojo é a tipografia — graças à fabulosa fonte Gentium e ao seletor @font-face do CSS3, ou seja, somente browsers mais “modernos” irão carregar essa maravilha. Mas não priemos cânico criemos pânico! Preparei algumas outras boas fontes no css para entrarem caso o browser seja antigo não consiga carregá-la.

Escreverei as features em inglês, pois acho mais elegante. 😛

Features:

  • HTML5 markup
  • Awesome Typography
  • Clean and minimalistic approach
  • Full Internationalization
  • Support for widgets on the sidebar
  • Tested on IE6+, Google Chrome, Safari and Firefox

Preview: o próprio blog está com o tema! \o/

Versão atual: 1.4 (15 Janeiro 2011)

Download: clique aqui

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

PHP Conference Brasil 2010

A PHP Conference Brasil é um dos eventos de referência no que  se refere a PHP no Brasil. A sua quinta edição acontecerá nos dias 25 à 28 de Novembro em Osasco – SP. Ao tempo de escrita desse post (15/09/10), a programação do evento ainda não está definida, mas podemos esperar algumas ótimas palestras sobre Zend Framework, WordPress e outros temas mais “consagrados” do PHP. Talvez até algo sobre PHP6? Seria bem interessante.

Especulações a parte, nós – programadores PHP – devemos sempre dar suporte à esse tipo de evento, é uma grande oportunidade de observar o que está bombando lá fora, fortalecer a nossa comunidade de desenvolvedores e trocar algumas figurinhas com outros programadores/entusiastas da linguagem.

Para mais informações, visite o esquisito site do evento: http://www.temporealeventos.com.br/?area=13

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.

Code Templates no Eclipse

Alguns pedaços de código são repetidos muitas vezes durante a programação, principalmente código de debug. Para melhorar este processo, podemos criar code templates, que são pedaços de código (com ou sem variáveis) que podem ser acessíveis pelo autocomplete do Eclipse. Irei mostrar como criar um code template que irá produzir o seguinte código, que visa auxiliar a “debugar códigos PHP:

echo '<pre>';
var_dump();
echo '</pre>';

1. Criando o Code Template

Com o Eclipse aberto, vá em: Window » Preferences, e depois PHP » Editor » Templates. Nesta tela estão todos os code templates de PHP configurados. Clique em New e irá aparecer uma janela com um formulário, contendo as seguintes opções:

  • Name: nome do template, o qual você irá usar para acessá-lo pelo autocomplete do eclipse.
  • Context: contexto em que o code template estará ativo
  • Automatically insert: inserir automaticamente o código do template
  • Pattern: código do template

Para o code template que iremos criar, usaremos os seguintes valores para o formulário:

  • Name: vdm
  • Context: o valor padrão (normalmente, PHP)
  • Automatically insert: marcado
  • Description: Imprime uma variável com <pre>
  • Pattern: echo ‘<pre>';var_dump(${cursor});echo ‘</pre>';

Após a confirmação, poderemos ver nosso vdm na lista de templates.

2. Utilizando

Em um arquivo php, digite vdm e aperte ctrl+espaço para ativar o autocomplete do Eclipse. O eclipse deverá mostrar o código do vdm e, após inserí-lo, irá posicionar o cursor logo após o $ para que você insira o nome da variável. ;D

Oracle + PHP no Ubuntu/Debian 64-Bits

Recentemente, decidi utilizar a versão amd64 do Ubuntu no meu computador pessoal. Consegui instalar praticamente todos os softwares que utilizava, mas esbarrei na extensão de suporte ao Oracle para o PHP. Tentei instalar pelo mesmo caminho da versão i386: através do instant client, fornecido diretamente pela Oracle. Tentei instalar a versão para 64-bits do instant client, sem sucesso (ah, como eu amo a Oracle).

Pesquisei no todo-poderoso Google e, depois de algum tempo, encontrei uma solução: instalar o Zend Server CE (que tem versão 64-bits, também), pois ele já vem com o maldito OCI8. Para os que não conhecem, o tal Zend Server é um Apache + PHP customizado e “tunado” pela Zend. Vale salientar que o nosso amigo Zend Server também tem versão para o Mac OS X. Então, para os companheiros que tenham o mesmo problema, #ficadica.