Dasar Bagaimana sebuah Komponen Berfungsi
From Joomla! Documentation
Artikel ini didesain bagi para Joomla! pemula; yang menjelaskan tentang apa yang dimaksud dengan komponen Joomla! dan bagaimana ia berfungsi. Bila ada sebuah komponen, misalnya mengambil manfaat dari tutorial, maka artikel ini akan merujuk pada sebuah komponen contoh bernama Hello World!
Apa itu Komponen Joomla!
Komponen adalah ekstensi Joomla. Komponen adalah unit fungsional utama dari Joomla, disebut juga aplikasi kecil (mini-application). Analogi sederhananya, Joomla! adalah sistem operasi sementara komponen adalah aplikasi desktopnya. Dibuat oleh komponen, konten biasanya ditampilkan ditengah-tengah area konten utama dari sebuah templat (tergantung templatnya).
Rata-rata kebanyakan komponen memiliki 2 bagian: Administrator (Aplikasi) dan Situs (Aplikasi). Bagian situs adalah bagian yang digunakan untuk membuat halaman jika ia diminta oleh pengunjung situs anda dalam pengoperasian yang normal. Bagian admininistrator menyediakan sebuah antarmuka untuk mengkonfigurasikan dan mengelola aspek-aspek dari komponen yang dapat diakses melalui aplikasi administrator Joomla.
Joomla! hadir dengan beragam komponen inti seperti, sistem pengelolaan konten, formulir kontak dan Tautan Web.
Dalam kerangka Joomla, berbagai macam komponen dapat didesain dengan menggunakan sebuah model flat (mengembalikan kode HTML yang dipanggil oleh laman) atau pola Model-View-Controller (selanjutnya disebut MVC).
Pengenalan MVC
MVC adalah pola desain sebuah perangkat lunak (software) yang dipakai untuk menyusun kode dimana presentasi data dan logika bisnisnya dipisah. Tujuannya, jika logika bisnis dikelompokkan ke dalam satu bagian, maka antarmuka dan interaksi pengguna yang mencakup data dapat dibuat tersendiri (kustom) dan direvisi tanpa perlu memprogram ulang logika bisnisnya. MVC pada awalnya dikembangkan untuk memetakan input, melakukan proses, dan membuat aturan-aturan output ke dalam sebuah arsitektur GUI yang logikal.
Model
Model adalah bagian komponen yang mengemas data. Model sering digunakan untuk mengelola dan memanipulasi data dengan sebuah cara penuh makna sebagai tambahan terhadap rutinitas pengembalian data. Sederhananya, teknik pokok suatu akses data harus dikemas ke dalam model. Dengan begini maka apabila sebuah aplikasi dipindahkan ke sebuah sistem yang memanfaatkan sebuah berkas flat yang menyimpan semua informasinya ke sebuah database, maka model adalah satu-satunya elemen yang harus diubah, alih-alih tampilan (view) apalagi pengendali (controller).
View
Tampilan (view) adalah bagian komponen yang dipakai untuk menghasilkan data yang berasal dari model untuk suatu interaksi tertentu. Bagi sebuah aplikasi berbasis web, view adalah laman HTML yang dilihat oleh pengguna. View menarik data dari model (yang dihantar dari controller) untuk kemudian menampilkannya ke sebuah templat yang dipopulasikan dan dipresentasikan kepada pengguna. View tidak merubah data dalam cara apapun, hanya menampilkan data yang diterima dari model.
Controller
Pengendali (controller) bertanggungjawab terhadap tindakan pengguna, bagi sebuah aplikasi berbasis web, biasanya itu adalah sebuah permintaan laman. Controller akan menentukan permintaan apa yang telah dibuat dan meresponnya dengan memicu model untuk memanipulasi data lalu menghantarkannya ke view. Controller tidak menampilkan data di dalam model, melainkan metode-metode pemicu yang memodifikasi data di dalam model untuk kemudian dibawa ke view yang akan menampilkannya.
Penjelasan Kerangka Komponen Joomla!
Model
Dalam kerangka Joomla, berbagai model adalah elemen-elemen yang bertanggungjawab mengelola data. Fungsi pertama yang harus ditulis untuk sebuah model adalah get. Ini akan mengembalikan data ke pemanggilnya. Misalkan, pemanggilnya adalah view HelloWorldViewHelloWorld. Secara standar, model bernama HelloWorldModelHelloWorld yang ada di site/models/helloworld.php adalah model utama yang terhubung ke view ini.
Sekarang, mari kita lihat konvensi penamaannya dengan sebuah contoh, karena konvensi penamaan adalah apa yang membuat semuanya bekerja:
Kelas HelloWorldViewHelloWorld terdapat di dalam site/views/helloworld/view.html.php yang akan memakai kelas HelloWorldModelHelloWorld di berkas site/models/helloworld.php
Mari kita asumsikan bahwa kita akan memakai view bernama, "fluffy". Maka hasilnya adalah:
Kelas HelloWorldViewFluffy ada di site/views/fluffy/view.html.php. View-nya akan memakai HelloWorldModelFluffy di berkas site/models/fluffy.php. Catatan: view sebenarnya: site/views/fluffy/tmpl/default.php adalah wajib agar contoh ini dapat bekerja. Melanggar konvensi penamaan yang ditebalkan ini akan berakhir dengan galat atau sebuah laman yang kosong.
Mengakses Komponen Joomla!
Pertama, kita perlu mengakses Joomla yang dapat dilakukan lewat sebuah entri poin. Gunakan browser kemudian navigasikan ke URL berikut ini:
1 | akses pengguna | <situsanda>/joomla/index.php |
2 | akses administrator | <situsanda>/joomla/administrator/index.php |
Contoh Hello World!: localhost/joomla/index.php Anda bisa menggunakan URL komponennya atau Menu untuk menavigasikan ke komponennya. Dalam artikel ini, kita akan menggunakan URL:
1 | akses pengguna | <situsanda>/joomla/index.php?option=com_<nama_komponen> |
2 | akses administrator | <situsanda>/joomla/administrator/index.php?option=com_<nama_komponen> |
Contoh Hello World!: localhost/joomla/index.php?option=com_helloworld
Struktur Direktori Dasar MVC
Komponen disimpan didalam sebuah direktori Joomla! Anda, secara khusus pada:
- htdocs/<jalur_ke_joomla>/components/com_<nama_komponen>/ .
Komponen Hello World! akan disimpan di htdocs/<jalur_ke_joomla>/components/com_helloworld/.
Suatu komponen pada dasarnya akan mengandung beberapa berkas didalam direktorinya yaitu:
- Sebuah berkas HTML yang bertujuan untuk keamanan yang hanya berisi warna latar: index.html
- Sebuah berkas php yang mewakili controller: controller.php
- Sebuah berkas php yang memuat kelas controller: <nama_komponen>.php
- Sebuah berkas php yang mewakili model: models/<nama_komponen>.php
- Berkas HTML lainnya untuk mengendalikan latar: models/index.html
- Sebuah berkas php yang mengandung view standar: views/<nama_komponen>/tmpl/default.php
- Sebuah berkas xml untuk menambahkan jenis butir menu: views/<nama_komponen>/tmpl/default.xml
- Berkas HTML lainnya untuk mengendalikan latar: views/<nama_komponen>/tmpl/index.html
- Berkas HTML lainnya untuk mengendalikan latar: views/<nama_komponen>/index.html
- Sebuah berkas php untuk menampilkan view: views/<nama_komponen>/view.html.php
JEXEC
Baris berikut biasa ditemukan pada awal berkas PHP Joomla!:
<?php
defined('_JEXEC') or die('Restricted Access');
Ini mengaktifkan entri poin yang aman ke Joomla. JEXEC mengandung penjelasan detail.
Tutorial Mendesain Komponen MVC
Untuk mempelajari bagaimana mendesain Komponen MVC, silakan lengkapi tutorial berdasarkan versi Joomla! Anda.