Cara Integrasi CodeIgniter dengan Library Template TWIG



CodeIgniter adalah framework yang ringan dan cepat, namun CodeIgniter tidak memiliki template engine yang lengkap seperti Blade pada Laravel. Namun demikian hal ini tidak menjadi persoalan, karena CodeIgniter bisa menggunakan template engine dari vendor lain (third-party), salah satunya adalah template engine TWIG.

TWIG adalah template engine yang cepat, aman dan fleksibel, dengan menggunakan TWIG kita tidak perlu menuliskan kode-kode PHP pada sebuah view di CodeIgniter. Cukup dengan menuliskan kode-kode yang disediakan TWIG, maka sebuah template dapat melakukan perulangan, mengubah format string, menyisipkan sub-template dan sebagainya (serupa dengan Blade pada Laravel). Untuk lebih jelasnya mengenai template engine TWIG, silahkan membaca di website resmi TWIG.

Cara Mengintegrasikan CodeIgniter dengan TWIG

Untuk dapat menggunakan CodeIgniter dengan TWIG, silahkan melakukan langkah-langkah sebagai berikut:

Download library TWIG di https://github.com/twigphp/Twig/releases , pilih yang versi v1.x , kemudian ekstrak dan taruh di dalam folder application/third_party

Download library CodeIgniter untuk TWIG di https://github.com/kenjis/codeigniter-ss-twig/releases kemudian ekstrak dan copy codeigniter-ss-twig/libraries/Twig.php ke dalam folder application/libraries

Buka file application/libraries/Twig.php dan hilangkan tanda comment (/* */) pada bagian atas dan bawah baris ini:

...
 
require_once APPPATH . 'third_party/Twig-1.xx.x/lib/Twig/Autoloader.php';
Twig_Autoloader::register();
 
...

Catatan: Sesuaikan Twig-1.xx.xx dengan nama folder instalasi TWIG anda.

Cara Menggunakan CodeIgniter dengan TWIG

Buatlah sebuah controller CodeIgniter dengan isi seperti ini:

class Demo extends CI_Controller {
 
    public function twig() {
        // load library Twig
        $this->load->library('twig');
 
        // contoh data
        $data["bahasa"] = ["Pascal","Basic","C/C++","Assembler","Cobol",
                           "Clipper","PHP","Python","Arduino"];
 
        // tampilkan template Twig + data
        $this->twig->display('demo', $data);
    }
 
}

Kemudian buatlah sebuah file contoh template utama dengan nama application/view/layout.twig:

(Referensi mengenai kode-kode template TWIG bisa dibaca di dokumentasi TWIG.

<!DOCTYPE html>
<html>
    <head>
        {% block head %}
            <title>{% block title %}{% endblock %}</title>
            <style>
                * { font-family: arial, sans-serif;}
                #footer { padding:20px; background:#eee; }
            </style>
        {% endblock %}
    </head>
    <body>
        <div id="content">{% block content %}{% endblock %}</div>
        <div id="footer">
            {% block footer %}
                Dibuat oleh <a href="http://blog.duniahost.com">http://blog.duniahost.com</a>
            {% endblock %}
        </div>
    </body>
</html>

Buatlah juga template lain yang berisi content halaman dengan nama application/view/demo.twig:

{% extends "layout.twig" %}
 
{% block title %}Demo CodeIgniter dan Twig{% endblock %}
{% block head %}
    {{ parent() }}
    <style type="text/css">
        li { color: red; padding: 2px; }
    </style>
{% endblock %}
{% block content %}
    <h1>Demo CodeIgniter & Twig</h1>
    <p>Bahasa pemrograman yang saya pelajari adalah:</p>
    <ul>
        {% for bhs in bahasa %}
            <li>{{ bhs|e }}</li>
        {% endfor %}
    </ul>
{% endblock %}

(Terlihat pada kedua file template di atas tidak ada pencantuman kode PHP, melakukan perulangan dan menyisipkan sub-template cukup dilakukan dengan menuliskan kode-kode template saja.)

Silahkan buka browser dan buka controller anda. Bila instalasi TWIG yang anda lakukan sudah benar, maka akan muncul halaman seperti ini:

Demikian cara mengintegrasikan CodeIgniter dengan template engine TWIG, ternyata menggunakan template engine TWIG pada CodeIgniter cukup mudah, langkah selanjutnya anda tinggal memperdalam fitur-fitur dan kode-kode template pada TWIG agar penggunaannya lebih maksimal.

Semoga dengan menggunakan template engine TWIG dapat membantu mempercepat pengerjaan proyek dan lebih produktif lagi dengan CodeIgniter. Selamat mencoba.

 

Topik yang sedang hot:


Menggabungkan CodeIgniter dan MPDF untuk Membuat PDF

Membuat dokumen PDF dengan CodeIgniter ternyata tidak sulit. Dalam tulisan ini kita akan membahas cara menggabungkan atau mengintegrasikan CodeIgniter dengan library PDF yang cukup bagus yaitu mPDF. Bila hanya dengan PHP saja tanpa framework mudah, apalagi kalau pakai mPDF dengan CodeIgniter, mestinya akan lebih mudah lagi.

Baiklah, untuk mempersingkat waktu inilah langkah-langkah menggabungkan CodeIgniter dengan mPDF.

Download mPDF

Terlebih dahulu download library mPDF pada alamat ini: http://www.mpdf1.com/mpdf/index.php

Pada tulisan ini saya menggunakan mPDF 5.7

Copy Library mPDF ke dalam CodeIgniter

Setelah mPDF di extract, copy ke folder application/third_party

Maka hasilnya akan seperti ini:

Buat Library Baru

Buatlah sebuah library baru dengan nama file Mpdf.php (nama boleh beda, sesuka hati), dan isi dengan code sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 
if (!defined('BASEPATH')) exit('No direct script access allowed');
 
class Pdf {
 
	protected $CI;
 
	public function __construct()	{
 
		include_once APPPATH.'/third_party/mpdf/mpdf.php';
		ini_set('memory_limit','1024M');
 
        $CI = &get_instance();
		$CI->pdf = new mPDF($param);
 
		log_message('Debug', 'mPDF class is loaded.'); 
	}
 
}

Uji Coba Library

Sekarang saatnya uji coba library. Buatlah sebuah function di controller untuk uji coba, misalnya di dalam Welcome.php, ketik kode sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
defined('BASEPATH') or exit('No direct script access allowed');
 
class Welcome extends CI_Controller
{
 
    //....
 
    public function cobapdf()
    {
        // Muat library PDF
        $this->load->library('pdf');
 
        // Buat HTML atau load dari view
        $html = "<div class='kotak' ".
                "style='border:2px solid #ccc; ".
                "padding: 20px; ".
                "background: #aaf;' ".
                ">".
                "<h1>Demo CodeIgniter dan mPDF. Mantap!</h1>".
                "<a href='http://duniahost.com'>Web Hosting</a>".
                "</div>"; 
 
        // Lakukan pengerjaan PDF
        $this->pdf->SetFooter($_SERVER['HTTP_HOST'].'|{PAGENO}|'.date(DATE_RFC822));
        $this->pdf->WriteHTML($html);
        $this->pdf->Output("output.pdf", 'I');
    }
}
 
//--- EOF

Hore Berhasil

Kalau langkah-langkah mengintegrasikan CodeIgniter dengan mPDF di atas sudah diikuti dengan benar, maka akan muncul hasilnya seperti ini:

Demikian panduan singkat tentang cara mengintegrasikan CodeIgniter dengan mPDF dalam rangka membuat file PDF. Sebagaimana kita ketahui format PDF sangat berguna dalam membuat laporan yang rapi dan portable. Mudah-mudahan tips ini bisa membantu pembaca dalam berkarya dengan pemrograman PHP, khususnya framework CodeIgniter.

Topik yang sedang hot: