Codeigniter + Twig + Composer : Uma boa idéia

Olá a todos.

Em um projeto tive a necessidade de utilizar alguns recursos de um template engine e olhando alguns achei interessante trabalhar com o twig (http://twig.sensiolabs.org/).

Twig Template engine

Twig Template engine

Já existe uma biblioteca no Codeigniter para trabalhar com o Twig, o Codeigniter Twig (https://github.com/altrano/codeigniter-twig) que é de fácil acoplamento, basta fazer o download dos arquivos, inseri-los na aplicação e carregar no controller que vá usá-lo. Ele faz o processo de carregamento automático dos helpers inseridos no arquivo de autoload da aplicação.

application/libraries/Twig.php
Link do gist  : https://gist.github.com/4550897

application/config/twig.php
Link do gist : https://gist.github.com/4550897
Baixado os arquivos do projeto Codeigniter Twig no github e inseridos no projeto, vamos começar a integração Primeiro vamos inserir o composer na aplicação. Iremos criar a requisição do Twig no arquivos composer.json. Crie um arquivo composer.json na raíz do projeto com as informações:

composer.json
Link do gist : https://gist.github.com/4550979

Depois iremos inserir o código que vai chamar o arquivo de carregamento dos pacotes do composer no arquivo index.php na raíz do projeto.

No arquivo autoload.php (application/config/autoload.php) modifique o conteúdo do arquivo da linha 55 à 67 e insira a informação abaixo:

application/config/autoload.php
Link do gist : https://gist.github.com/4551017

O código do controller da aplicação:

application/controllers/welcome.php
Link do gist: https://gist.github.com/4550963

Agora os templates. O Twig tem algumas funções nativas que podem ser muito úteis. Criaremos 2 arquivos na pasta “application/views”:
  • template.html.twig – Template padrão da aplicação
  • index.html.twig – Arquivo com o conteúdo específico da página;
Como ficou o código das views:
template.html.twig
application/views/template.html.twig
index.html.twig

application/views/index.html.twig
Link do gist : https://gist.github.com/4551017

Agora uma observação:
Quando for utilizar algum helper que gere html (form_helper, por exemplo), utilize o método com o sufixo |raw
 Chamada da função form_open(); do helper
     {{ form_open("/login")|raw }}
ao invés de
     form_open("/login");
Link do Gist com o código dos arquivos utilizados no projeto:
Documentação do Twig:
Valeu e até mais!