Antes de Iniciar
Este tutorial é para desenvolvedores de aplicativos da Web que buscam separar dados e a lógica de negócios da lógica de apresentação. Experiência em PHP, conhecimento de XML em geral e familiaridade com XSLT são todos requisitos necessários.
A maioria dos aplicativos da Web pegam dados do usuário, convertem os mesmos em um formato armazenável em um banco de dados e, em seguida, pegam os dados do banco de dados e convertem os mesmo em uma página da Web. Ao criar uma página da Web a partir de dados, uma abordagem é criar uma única página PHP que age como um modelo para a página da Web, que contém todas as consultas do bancos de dados e outras lógicas necessárias para reestruturar os dados em um formulário que pode ser usado pela página. Um problema com essa abordagem, no entanto, é que mistura interesses:
- Um interesse é do designer da página da Web, criar o layout da página
- Outro é do desenvolvedor, extrair os dados do banco de dados
- Um terceiro interesse é a reestruturação intermediária dos dados para que sejam usados mais facilmente na página
Separação dos interesses refere-se à extração do código para diversas camadas:
- Uma camada para lidar com o banco de dados
- Uma camada para manipular os dados
- Uma camada de apresentação criando a interface com o usuário
Este tutorial demonstrará duas implementações dessa separação de interesses.
A separação de interesses é fundamental para código bem estruturado, pois encapsula responsabilidades e dependências. Por essa razão, ao longo dos anos, os desenvolvedores arquitetaram muitas estratégias e estruturas projetadas para facilitarem ou, até mesmo, impingirem a separação da lógica de negócios e a lógica de apresentação, já que as duas frequentemente variam independentemente uma da outra. Uma sequência de folhas de estilo XSLT torna essa separação bem clara, pois você pode dividir a conversão de dados de seu formulário persistido em uma apresentação visual em fases discretas à medida que XML é transformado por uma folha de estilo e, em seguida, a próxima. No entanto, a sintaxe e metodologia de XSLT, um paradigma declarativo, não é a norma para a maioria dos programadores que usam linguagens processuais. O módulo SimpleXML em PHP é uma resposta processual a XSLT, que permite atravessar um documento XML como um objeto PHP padrão.
Neste tutorial, você irá implementar uma página da Web para um currículo pessoal é armazenado como um arquivo XML e explorar duas soluções para separar dados e lógica de negócios da lógica de apresentação:
- Uma usando XSLT através do módulo XSL em PHP 5
- A outra usando o módulo SimpleXML em PHP 5
Primeiro, você irá criar um pequeno script de driver e, em seguida, implementar uma separação de conteúdo e apresentação primeiro, implementando três folhas de estilo XSLT que funcionam em seqüência e, por fim, implementando a mesma transformação em PHP usando o módulo SimpleXML. Apesar de o mecanismo fundamental subjacente a essas duas tecnologias (XSLT e PHP) ser bem diferente, o código resultante terá uma estrutura muito semelhante entre as duas implementações.
Apesar de a maioria dos dados ser armazenada em um banco de dados relacional nos dias de hoje, para um pequeno conjunto de dados que são alterados com pouca frequência e não requerem bloqueio de registro, como um currículo pessoal é, XML é um formato ideal que permite inclusões fáceis. Neste tutorial, você irá explorar XSLT e SimpleXML na renderização de um documento XML de currículo, é como uma página da Web HTML.
Você precisará das ferramentas a seguir neste tutorial:
- Este tutorial usa PHP versão 5.2.6.
- SimpleXML está disponível em todas as versões de PHP 5.0 ou posterior e é ativado por padrão.
- PHP 5 inclui a extensão XSL por padrão. Para ativá-la, pode incluir o argumento
--with-xsl[=DIR]em sua linha de configuração. Para obter informações adicionais sobre como instalar e configurar a extensão XSL, consulte http://us.php.net/manual/en/xsl.setup.php. - Um editor de XML.
