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!
Anúncios

Open source: criação do tema “twitter bootstrap” no Grocery CRUD

Olá pessoal.

A quem utiliza o scaffolding Grocery CRUD (http://www.grocerycrud.com/) nos projetos com o Codeigniter fiz uma colaboração no projeto criando um novo tema para ele com base no Twitter bootstrap (http://twitter.github.com/bootstrap/) pelo fato da grande absorção dele em grandes projetos e de todas as suas facilidades para interações, UX e outros aspectos.

Github do projeto

Github do projeto

Para quem quiser testar e/ou utilizá-lo em suas aplicações para verificar o seu uso, o projeto mais atual com o tema pode ser encontrado no repositório do próprio projeto no Github (https://github.com/scoumbourdis/grocery-crud).

Fica aqui a minha satisfação de poder participar do projeto e poder contribuir ao projeto do John Skoumbourdis (https://github.com/scoumbourdis) . Agradeço também ao John por me inserir na listagem dos colaboradores do projeto na página do projeto no link http://www.grocerycrud.com/documentation/credits!

Créditos no projeto Grocery CRUD

Créditos no projeto Grocery CRUD

Espero que vocês gostem do resultado, ainda estou aprimorando-o, então toda sugestão e crítica é sempre bem-vinda e acima de tudo todos podem colaborar na melhora do projeto!

Pretendo participar do novo projeto do grocery CRUD 2.0 que deve focar alguns outros aspectos como interoperabilidade atendendo a alguns PSR’s como o PSR-0 e o PSR-1, testes unitários, melhoras de performance, dentre outros para que possa ser utilizado em qualquer projeto PHP!

Obrigado e até mais!