Blade Template Engine e CodeIgniter

Integrando Blade Template Engine com CodeIgniter

A Blade template engine é uma ferramenta muito útil na contrução de aplicações web usando MVC, pois permite que as views fiquem bem legíveis e com bem pouco ou quase nenhum código PHP explícito no meio do HTML.

Ela não é a template engine nativa do CodeIgniter, e por isso exige um processo de configuração para que funcione. Mas você pode ficar tranquilo que esse processo é bem simples e em poucos minutos você vai poder começar a utilizar a blade template engine em sua aplicação com CodeIgniter.

Instalando o CodeIgniter e a Blade Template Engine

Você vai começar criando o projeto em CodeIgniter através do comando create-project do Composer. (Se já tem um projeto criado, pule para o próximo passo.)


composer create-project bcit-ci/codeigniter blade_template --prefer-dist

Após concluir a criação do projeto, você deve acessar o diretório do projeto via terminal e executar o comando de instalação do pacote da Blade Template Engine, para que seus arquivos possam ser copiados para o diretório do projeto.


composer require xiaoler/blade

Pronto! O projeto está criado e os arquivos da Blade Template Engine devidamente copiados para junto dos arquivos do seu projeto.

Configurando o projeto

Para que você possa utilizar os recursos da Blade Template Engine, execute as configurações a seguir.

application/config/config.php

Como você está utilizando pacotes instalados via Composer, vai precisar ajustar a configuração para que esses pacotes sejam carregados corretamente. Para isso vá até o diretório application/config e abra o arquivo config.php. Nele voce deve alterar a configuração do autoload do Composer, conforme código a seguir:


$config['composer_autoload'] = './vendor/autoload.php';

application/libraries/Blade.php

Crie um arquivo chamadao Blade.php no diretório application/libraries para que possa adicionar as regras de integração entre o CodeIgniter e a Blade Template Engine. Após criar o arquivo, adicione o código a seguir nele:

Após criar a library você deverá atualizar o arquivo application/config/autoload.php de modo que ela seja carregada junto da aplicação, de forma automática.


$autoload['libraries'] = array('Blade');

Ajustando a view e o controller

Para fazer uso da Blade Template Engine na sua aplicação em CodeIgniter você não precisará mudar muita coisa do que já faz regularmente no processo de codificação e desenvolvimento.

A primeira coisa a se fazer para carregar uma view e poder utilizar os recursos da Blade Template Engine é substituir o uso de $this->load->view por $this->blade->view.

Se você está seguindo esse tutorial com um projeto de testes, substitua o código do método index() do controller Welcome pelo código a seguir:


public function index()
{
    $dados = array(
        'page_title' => 'CodeIgniter com Blade Template Engine!',
        'page_content' => 'Esse é um exemplo do CodeIgniter com Blade Template Engine'
    );
    $this->blade->view('welcome_message', $dados);
}

Caso você esteja aplicando o passo a passo desse tutorial em um projeto já existente, basta substituir a chamada $this->load->view por $this->blade->view em seu controller.

Já na view, você pode substituir as chamadas às variáveis, por {{$variavel}} ao invés de utilizar <?= $variavel ?>.

Para você que está seguindo p asso a passo do tutorial à risca, substitua o código HTML que está dentro da tag body da view welcome_message.php pelo código a seguir:



<div id="container">

<h1>{{$page_title}}</h1>


<div id="body">


{{$page_content}}

   </div>

</div>


Repare que você não tem mais tags que indicam código PHP na sua view, o que a torna mais legível e fácil de ser compreendida, e até mesmo mais organizada.

Importante

Lembre-se que o diretório application/cache precisa ter permissão de escrita para que os arquivos de cache sejam criados. Caso ao executar o teste de funcionamento no browser vocÊ se depare com erros envolvendo file_get_contents, verifique as permissões do diretório.

Conclusão

Agora que você já aplicou as configurações necessárias e fez o primeiro teste de uso da Blade Template Engine em uma aplicação CodeIgniter, dề uma olhada na documentação dela clicando aqui e conheça os demais recursos que ela oferece.

No GitHub do portal tem um exemplo de uso da Blade Template Engine. Acessa lá e dá uma conferida.

 

Download do código-fonte no github - Blade Template Engine