NG Framework, Fondasi KalenderIndonesia.Com - KalenderIndonesia.Com

Bagikan:  

Anda Mungkin Tertarik


Oleh  :  Novian Agung
Pada  :  13  Januari  2019 19:33 | 7  جُمادى الأولى  1440 19:33 | 6  Jumadil Awal  1952 19:33 | 14k  Palguna  1955 19:33 | 23  Kasa  1941 19:33
Kategori  :  Situs Web
MVC

Banyaknya fitur yang disediakan KalenderIndonesia.Com dengan perumusannya yang kompleks, ini mengharuskan KalenderIndonesia.Com menyiapkan fondasi situs yang kuat, ringan, dan mudah untuk diperbarui serta ditingkatkan. Perlu persiapan desain yang matang untuk keperluan tersebut, termasuk dalam pemilihan framework yang digunakan untuk pembangunan situs. Banyak ragam framework (dalam hal ini untuk bahasa pemrograman PHP) populer yang dapat digunakan dalam membangun sebuah situs, seperti Laravel, Yii, CodeIgniter, Symfony, Zend, dan sebagainya. Tapi dari sekian banyak framework tersebut, KalenderIndonesia.Com malah memilih framework yang sama sekali tidak banyak dikenal. KalenderIndonesia.Com menggunakan NG framework. NG sendiri merupakan singkatan dari pembuat framework, yaitu Nick Gejadze.

Seperti kebanyakan framework, NG Framework juga sudah menggunakan metode MVC (Model View Controller) untuk pengembangan situs. NG merupakan konsep framework dengan metode MVC yang simpel dan ringan. Tidak banyak komponen atau plugin yang disediakan, sehingga sangat mudah untuk dilakukan kustomisasi. Inilah yang mendasari pemilihan NG Framework sebagai fondasi KalenderIndonesia.Com.

Bila Anda penasaran dan tertarik dengan NG framework, berikut ini kode sumber dari NG Framework yang saat ini sangat sulit ditemukan bahkan boleh dibilang sudah tidak dapat ditemukan pada mesin pencarian. Silakan unduh di sini: NG Framework. Perlu dicatat, unduhan NG Framework ini merupakan NG Framework yang sudah saya modifikasi agar mudah dalam penggunaannya.

Menggunakan NG Framework

Jika Anda ingin mencoba NG Framework, silakan buat sebuah folder baru pada workspace Anda dengan nama "ng". Kemudian ekstrak berkas unduhan, akan tercipta 3 (tiga) folder dengan nama apps, assets, dan libs, serta dua buah berkas dengan nama .htaccess dan index.php.

Folder NG

Inti framework terdapat pada folder libs, sementara ruang kerja Anda terdapat pada folder apps. Folder assets digunakan untuk menyimpan berkas-berkas pendukung situs web, seperti css, javascript, gambar, dan sebagainya. Pada folder apps akan terdapat sebuah berkas dengan nama Bootstrap.php serta tiga buah folder masing-masing bernama Config, Controller, Layout, Model, dan View. Folder Config berisi berkas-berkas yang digunakan untuk menyimpan konfigurasi situs, seperti pengaturan database, pengaturan aplikasi, dan pengatruran lainnya. Folder Layout berisi sebuah berkas dengan nama Layout.phtml yang merupakan tampilan layout utama dari situs web. Sedangkan folder Model, View, dan Controller, berisi berkas-berkas pendukung metode MVC.

Sebelum memulai pengujian, saya menganggap Anda sudah mengerti konsep pemasangan dan penggunaan server lokal, localhost. Jika belum, silakan mempelajari lebih dulu sebelum melanjutkan. Langkah awal pengujian ketikkan: http://localhost/ng pada peramban Anda.

Halaman Beranda NG Framework

Berikut ini skrip HTML sumber dari hasil tampilan gambar di atas.

Skrip HTML Halaman Beranda NG Framework

Sekarang coba lagi pengujian lainnya, ketikkan: http://localhost/ng/halaman/tentang pada peramban Anda.

Halaman Tentang
Skrip HTML Halaman Tentang

Sekali coba lagi pengujian lainnya, ketikkan: http://localhost/ng/api/get/user pada peramban Anda.

Pemanggilan API
{"id":12345,"name":"novianagung"}

Bagaimana peran NG Framework sehingga menciptakan tampilan di atas? Silakan buka folder Controller yang terdapat pada folder apps, di sana Anda akan menemukan berkas-berkas PHP yang merupakan suatu kelas (class).

Daftar Controller

Berikut ini contoh kode sumber dari sebuah berkas kelas, IndexController.php.

Kode Sumber IndexController.php

Nama kelas yang dideklarasikan pada kode sumber haruslah sama dengan nama berkas php yang diciptakan. Misalnya Anda ingin menambahkan berkas kelas baru dengan nama NewsController.php, maka nama deklarasi kelas haruslah NewsController.

class NewsController extends NG\Controller {*###**###**{tab}*public function init() {*###**###**{tab}*}*###**###*}

Namun agar dapat menambahkan kelas Controller baru, Anda harus mendaftarkan lebih dulu pada berkas Route.php yang terdapat di folder libs. Tambahkan Controller baru pada fungsi syncController.

Penambahan Controller baru

Berikut ini contoh cara menambahkan Controller baru.

*{tab}*$arr_config_name = array(*###**{tab}**{tab}*"index",*###**{tab}**{tab}*defined("CAT_SLUG_1") ? CAT_SLUG_1 : "",*###**{tab}**{tab}*defined("CAT_SLUG_2") ? CAT_SLUG_2 : "",*###**{tab}**{tab}*defined("CAT_SLUG_3") ? CAT_SLUG_3 : "",*###**{tab}**{tab}*defined("CAT_SLUG_4") ? CAT_SLUG_4 : "",*###**{tab}**{tab}*defined("CAT_SLUG_5") ? CAT_SLUG_5 : "",*###**{tab}**{tab}*//Tambahkan Controller baru di sini*###**{tab}**{tab}*defined("CAT_SLUG_6") ? CAT_SLUG_6 : "",*###**{tab}*);*###**###**{tab}*$arr_new_name = array(*###**{tab}**{tab}*"index",*###**{tab}**{tab}*"page",*###**{tab}**{tab}*"post",*###**{tab}**{tab}*"image",*###**{tab}**{tab}*"download",*###**{tab}**{tab}*"api",*###**{tab}**{tab}*//Tambahkan Controller baru di sini*###**{tab}**{tab}*"news",*###**{tab}*);*###*

Belum selesai sampai di situ, Anda harus menambahkan nama Controller pada berkas config.ini di apps/Config, karena Anda baru saja menambahkan konstanta global dengan nama CAT_SLUG_6.

Berikut ini contoh cara menambahkan konfigurasi.

Penambahan konfigurasi baru

Sekarang barulah Anda dapat membuat berkas NewsController.php baru pada folder Controller.

Penambahan berkas NewsController.php

Setelah menambahkan Controller, Anda harus menambahkan sebuah View baru agar framework dapat merender menjadi tampilan HTML. Buka folder View di dalam folder apps.

Folder View

Buat folder baru dengan sesuai nama Controller baru yang ditambahkan, namun tanpa imbuhan Controller, seperti pada gambar di bawah ini.

Membuat folder baru bernama News

Buka folder News yang baru Anda buat, kemudian buat sebuah berkas dengan nama Index.phtml.

Membuat berkas baru Index.phtml

Silakan tulisi berkas Index.phtml Anda. Lalu peran komponen mana lagi dari NG Framework untuk menghasilkan tampilan situs web? Buka folder Layout di sana akan terdapat sebuah berkas dengan nama Layout.phtml. Silakan buka folder tersebut. Di dalamnya akan terdapat struktur HTML.

Berkas Layout.phtml di folder Layout

Berikut ini kode sumber dari berkas Layout.phtml.

Kode sumber Layout.phtml di folder Layout

Pada bagian atas Anda dapat melihat deklarasi variabel untuk mengambil nilai dari variabel yang diciptakan pada Controller. Setelah tag BODY Anda dapat melihat pemanggilan fungsi PHP dengan nama render() yang merupakan fungsi untuk proses rendering dari skrip yang ditulis pada View.

Kembali ke bagian atas dari kode sumber Layout.phtml, amati nama-nama variabel yang dideklarasikan. Buka salah satu berkas Controller, misalnya IndexController.php, perhatikan kode sumber pada bagian fungsi IndexAction(), lihat bagian akhir kode sumber, Anda dapat melihat proses penentuan nilai (assign) dari sebuah variabel, seperti misalnya:

$this->view->viewTitle = "Selamat Datang";

Kembali ke kode sumber Layout.phtml, pada baris ke-2 saya mengambil nilai yang ditentukan pada kelas IndexController.

$viewTitle = isset($this->viewTitle) ? $this->viewTitle : "";

Anda dapat membuat variabel dengan nama apa saja pada kelas IndexController. Tidak ada batasan apapun dalam pemberian nama dan nilai yang ditetapkan (assign) ke dalam variabel tersebut. Agar dapat dibaca oleh Layout dan View, pastikan deklarasi variabel pada sebuah Controller menggunakan rutin berikut ini:

$this->view->{nama-variabel} = {isi-variabel};

Sebelumnya kita sudah menambahkan sebuah Controller baru dengan nama NewsController, bagaimana cara pengaksesan Controller ini pada peramban? Silakan ketikkan: http://localhost/ng/berita pada peramban. Kenapa berita bukannya news? Sama seperti Anda mengakses http://localhost/ng/halaman/tentang, kenapa halaman bukannya page? Sementar pada folder Controller yang ada adalah Controller dengan nama PageController. Penentuan ini ditentukan pada berkas config.ini di apps/Config kemudian disesuaikan oleh fungsi syncController pada berkas Route.php yang terdapat di folder libs. Simak kembali penjelasan di atas. Route berita diambil dari konstanta global CAT_SLUG_6 di mana nilainya sudah kita tentukan pada berkas config.ini.

Penyesuaian Route pada syncController

Tampilan pengujian ini hanya sekedarnya saja, silakan Anda melengkapi dan memperbaikinya sendiri. Anda dapat menambahkan CSS, Javascript, dan/atau lainya dengan memodifikasi berkas Layout.phtml

Demikian sedikit tentang NG Framework. Terima kasih

 Aplikasi Android

banner

 Iklan

 Stats