XMLNuke é um framework open source para PHP desenvolvido e mantido desde 2002. O grande objetivo do XMLNuke, desde o seu início, foi evitar o código espaguete no qual o PHP ficava mesclado com o HTML tornando difícil a leitura, manutenção e reutilização do código. A solução para época e que mantem-se até hoje em sua arquitetura, foi separar totalmente o código HTML do código PHP. Com isso o padrão para a época e que estava em ascensão foi a adotação do PHP para produzir essencialmente dados em XML e o XSLT para efetuar transformações do XML em HTML ou qualquer outro formato de documento.

XMLNuke
Logo of the XMLNuke project
Desenvolvedor João Gilberto Magalhães
Plataforma Multiplataforma
Versão estável 4.00 (17 de abril de 2014)
Escrito em PHP
Sistema operacional Linux, Mac, BSD, Windows
Gênero(s) Framework
Licença GPLv2
Página oficial www.xmlnuke.com

Atualmente o XMLNuke além de produzir transformações em XML, também é capaz de gerar JSON e RDF nativamente. O XMLNuke roda nas versões do PHP 5.3 ou superiores e suporta os mais recentes padrões PSR definidos pelo PHP Framework Interoperability Group , em especial o PSR-0 para autoloader.

O projeto é desenvolvido e mantido por brasileiros, porém foi adotado a língua inglesa como padrão para a documentação e comunicação.

História editar

Em 2002, em sua primeira versão, o XMLNuke tinha o objetivo de ser apenas um Content Management System (CMS). Desenvolvido como prova de conceito por João Gilberto Magalhães tinha como objetivo ter páginas estáticas em XML e um framework que em tese poderia ser desenvolvido em qualquer linguagem. A base inicial é que o mais importante eram os dados. Como prova de conceito, Wilson Freitas, que trabalhava com o João Gilberto à época, criou um porte do XMLNUke em Java. Entretanto, com a utilização percebeu-se que apenas dados estáticos em XML não eram suficientes e que era necessário transformar-se em um Framework para a produção de conteúdo. Em 2004, na implementação do projeto Panteon, João, Yuri Wanderley e Rafael Freitas, fizeram uma adaptação do framework para que pudesse executar um sistema. Nascia a primeira versão do sistema. Em 2005, nascia a versão C#, que foi mantida até 2013. Em 2006, houve um primeiro refactory da ferramenta, sem perder a essência ou compatibilidade. Em 2006, uma nova adapatação para o XMLNUke 2.0 que se manteve até 2007. Em 2008 foi lançada a versão 3.01 e 2 anos depois lançada a versão 3.5 já com suporte a PHP 5.3 e JSON, porém ainda mantendo compatibilidade com a versão anterior. Após alguns anos parados, em 2013 iniciou-se um grande trabalho de Refactoring para mudar de vez para a versão 5.3 sem suporte às versões anteriores do PHP, adoção do padrão PSR-0, adoção de Models para geração de conteúdo, mudança de hospedagem do código fonte do Sourceforge.net para o Github, além de um esforço para documentação do sistema.

Arquitetura editar

O principio básico do XMLNuke está na premissa de que o conteúdo e a inteligência do código é mais importante do que como o mesmo irá se apresentar. Sendo assim a regra básica para o desenvolvimento é pensar: "Que dados eu quero para montar uma tela?". Por exemplo, ao fazer uma tela com visualizações de um determinado produto, o mais importante é saber que dados deverão estar presentes naquela tela. Sendo assim todo o esforço de programação é desenvolver os dados, deixando o layout se encaixando nos dados produzidos.

Atualmente com a adoção de padrões RESTful o conceito do XMLNuke passa a ser mais fácil de ser observado. É possível, por exemplo, criar um conjunto completo e complexo de APIs capazes de enviar e receber JSON e ter uma ou várias aplicações consumindo esses dados. O XMLNuke além de permitir isso em JSON em sua classe ServiceDocument, pode faze-lo enviando e recebendo dados em XML, além de fazer a transformação nativamente em sua plataforma utilizando as transformações XSLT.

Ligações externas editar