Modern Codeigniter Project Part 3 – Template Engine

Advertisements

Pada tutorial ini kita akan membahas penggunaan template engine pada codeigniter. Ada banyak sekali template engine yang tersedia untuk php seperti smarty, twiggy, dan blade yang juga digunakan oleh Laravel. Pada project ini kita akan menggunakan blade template engine. Adapun salah satu kelebihan menggunakan template engine adalah kode yang akan kita tulis menjadi mudah dan rapi.

template-engine

Misalnya tanpa template engine:

<?php echo $nama; ?>

Jika menggunakan template engine Blade akan menjadi:

{{ $nama }}

Atau pada penggunaan looping dan kondisi if:

// Penggunaan Looping
<?php foreach ($users as $user): ?>
    <li><?php echo $user->nama; ?></li>
    <li><?php echo $user->umur; ?></li>
<?php endforeach; ?>

// Penggunaan Kondisi
<?php if ($nilaiMatematika < $nilaiFisika): ?>
    <a>Hore</a>
<?php else: ?>
    <a>Bagus</a>
<?php endif; ?>

Menjadi:

// Penggunaan Looping 
@foreach ($users as $user):
    {{ $user->nama }}
    {{ $user->umur }}
@endforeach

// Penggunaan Kondisi
@if ($nilaiMatematika < $nilaiFisika):
    <a>Hore></a>
@else:
    <a>Bagus</a>
@endif

Bagaimana menurut teman-teman? lebih readable kan :).

Menginstall Blade Pada Codeigniter

Langkah pertama sebelum menggunakan blade adalah menginstall blade melalui composer. Jadi pada terminal teman-teman silahkan mengetikkan:

cd application
composer require jenssegers/blade
Advertisements

Selanjutnya kita akan membuat helper untuk menjalankan package ini. Buat file view_helper.php pada folder application/helpers.

<?php

use Jenssegers\Blade\Blade;

if (!function_exists('view')) 
{
    // Parameter pertama adalah nama view
    // Parameter kedua adalah data dalam bentuk array
    function view($view, $data = [])
    {
        // Path folder views
        $viewDirectory = VIEWPATH;
        // Path folder cache
        $cacheDirectory = APPPATH . 'cache';
        
        $blade = new Blade($viewDirectory, $cacheDirectory);
        echo $blade->make($view, $data);
    }
}

Berikutnya tambahkan ‘view’ pada file application/config/autoload.php line 92 supaya view helper kita bisa dijalankan secara otomatis.

$autoload['helper'] = array('url', 'view');

Testing

Pada controller Test.php kita akan memanggil fungsi view() seperti berikut:

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Test extends CI_Controller 
{
	public function index()
	{
		// Data random
		$data = [
			'menu' => ['Coto', 'Konro', 'Pallubasa', 'Pisang Ijo']
		];

		// Memanggil file test.blade.php
		// Tidak perlu menuliskan .blade.php
		view('test', $data);
	}
}

Pada kode diatas bisa dilihat bahwa untuk memanggil file test.blade.php kita tidak perlu menuliskan ekstensi tambahan .blade.php. Karena pada blade tanda titik (.) digunakan sebagai tanda directory misalnya file test.blade.php kita berada pada folder

application/views/folder1/folder2

Maka untuk memanggilnya adalah dengan cara

view(‘folder1.folder2.test’, $data);

Langkah selanjutnya adalah membuat file view di application/views/test.blade.php

@foreach ($menu as $makanan)
    <li>{{ $makanan }}</li>
@endforeach
Advertisements

Sehingga pada browser kita akan tampil seperti berikut:

blade-testing

Selamat mencoba teman-teman sekalian. Jangan lupa share dan jika ada pertanyaan maupun kendala silahkan berkomentar di bawah.

Hai orang-orang yang beriman, jadikanlah sabar dan shalat sebagai penolongmu, sesungguhnya Allah bersama orang-orang yang sabar“ QS 2:153

Author: kaceManaf

Founders of kcdev.id, freelance full stack web developer and also a web-tech wanderer. Passionate about code readability and simplicity. https://www.linkedin.com/in/nafplann/

One Reply to “Modern Codeigniter Project Part 3 – Template Engine”

Leave a Reply

Your email address will not be published. Required fields are marked *