Testes no Codeigniter com CIUnit

Olá pessoal.

Para quem já tentou utilizar TDD (Test Development Driven) no Codeigniter percebeu que sofria horrores para conseguir. Para isso Tatsuya Fukata criou uma biblioteca, a CIUnit, e a deixou disponível no Github (https://github.com/fukata/CIUnit-for-CI2). Este post vai mostrar como é bem simples fazermos testes unitários utilizando este componente.

Seu acoplamento é bastante simples:

Github - Projeto CIUnit

Github – Projeto CIUnit

Faça o download do Codeigniter e descompacte-o no seu servidor local. Após isto faça o download do projeto CIUnit e insira os arquivos do projeto no diretório “application/third_party/” da sua aplicação;

Remova o conteúdo da pasta “tests” e crie o arquivo “phpunit.xml.dist” na raíz do projeto com este conteúdo (https://gist.github.com/willmendesneto/5005522).

Agora crie o arquivo  “VerificationTests.php” dentro da pasta tests e insira este conteúdo (https://gist.github.com/willmendesneto/5005595).

Passando por estas etapas, abra a linha de comando e insira os comandos:

cd pasta-do-seu-projeto/


phpunit --testdox

Dica: Caso esteja usando o phpunit via composer, você pode utilizar os comandos:

cd pasta-do-seu-projeto/


php vendor/phpunit/phpunit/composer/bin/phpunit --testdox

Pronto, se tudo deu certo você verá a mensagem de tudo ok na aplicação.

Obrigado e até mais

https://github.com/fukata/CIUnit-for-CI2

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!

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!