Tutorial Codeigniter #5 Konsep Kasar

Controllers

Pengontrol adalah file kelas sederhana. Seperti namanya, itu mengontrol seluruh aplikasi oleh URI.

Membuat Controller

Pertama, pergi ke folder application/controllers. Anda akan menemukan dua file di sana, index.html dan Welcome.php. File-file ini adalah bawaan CodeIgniter.

Biarkan file-file tersebut apa adanya. Kemudian buat file baru di bawah jalur yang sama bernama “Test.php“. Tulis kode berikut dalam file itu –

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

Class Testb memperluas class built-in yang disebut CI_Controller. Class ini harus diperpanjang setiap kali Anda ingin membuat Class Controller Anda sendiri.

Memanggil Controller Test

Controller di atas dapat dipanggil melalui URI sebagai berikut –

http://www.your-domain.com/index.php/test

Perhatikan kata “test” yang terdapat pada URI di atas setelah index.php. Ini menunjukkan nama class controller. Seperti yang telah kita beri nama controller “Test“, kita menulis “test” setelah index.php. Nama class harus dimulai dengan huruf besar tetapi kita harus menulis huruf kecil ketika kita memanggil controller melalui URI. Sintaks umum untuk memanggil controller adalah sebagai berikut –

http://www.your-domain.com/index.php/controller/method-name

Membuat & Memanggil Method

Mari kita modifikasi class di atas dan buat method lain bernama “halo”.

<?php 
   class Test extends CI_Controller {  
  
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

Kita dapat menjalankan controller di atas dengan tiga cara berikut –

  • http://www.your-domain.com/index.php/test
  • http://www.your-domain.com/index.php/test/index
  • http://www.your-domain.com/index.php/test/hello

Setelah mengunjungi URI pertama di browser, kami mendapatkan output seperti yang ditunjukkan pada gambar di bawah ini. Seperti yang Anda lihat, kami mendapat hasil dari metode “indeks“, meskipun kami tidak memberikan nama metode URI. Kami hanya menggunakan nama pengontrol di URI. Dalam situasi seperti itu, CodeIgniter memanggil metode standar “indeks“.

index_output

Mengunjungi URI kedua di browser, kami mendapatkan output yang sama seperti yang ditunjukkan pada gambar di atas. Di sini, kami telah memasukkan nama metode setelah nama pengontrol di URI. Karena nama metode ini adalah “indeks“, kami mendapatkan hasil yang sama.

Mengunjungi URI ketiga di browser, kami mendapatkan output seperti yang ditunjukkan pada gambar di bawah ini. Seperti yang Anda lihat, kita mendapatkan output dari metode “halo” karena kita telah melewati “halo” sebagai nama metode, setelah nama controller “test” di URI.

hello_output

Points untuk Diingat

  • Penamaan class  Controller harus dimulai dengan huruf besar.
  • Controller harus dipanggil dengan huruf kecil.
  • Jangan menggunakan nama method yang sama dengan parent class, karena akan menimpa fungsionalitas parent class.

Views

Ini bisa berupa laman web sederhana atau kompleks, yang bisa dipanggil oleh pengontrol. Halaman web dapat berisi tajuk, catatan kaki, bilah sisi, dll. Tampilan tidak dapat dipanggil secara langsung. Mari kita buat tampilan sederhana. Buat file baru di bawah application/views dengan nama “test.php” dan salin kode yang diberikan di bawah ini dalam file itu.

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
  
   <body> 
      CodeIgniter View Example 
   </body>
  
</html>

Ubah kode file application/controllers/test.php seperti yang ditunjukkan di bawah ini.

Memanggil View

View dapat dimuat oleh sintaks berikut –

$this->load->view('name');

Di mana name adalah file view, yang sedang dirender. Jika Anda berencana untuk menyimpan file tampilan di beberapa direktori maka Anda dapat menggunakan sintaks berikut –

$this->load->view('directory-name/name');

Tidak perlu menentukan ekstensi sebagai php, kecuali sesuatu selain .php digunakan.

Method index() memanggil method view dan meneruskan “test” sebagai metode argument to view() karena kami telah menyimpan pengkodean html dalam file “test.php” di bawah application/views/test.php.

<?php 
   class Test extends CI_Controller { 
  
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

Ini adalah output dari kode di atas –

test_output

Diagram alur berikut menggambarkan cara kerja semuanya –

flow_charts

Models

Kelas model dirancang untuk bekerja dengan informasi dalam database. Sebagai contoh, jika Anda menggunakan CodeIgniter untuk mengelola pengguna di aplikasi Anda, maka Anda harus memiliki kelas model, yang berisi fungsi untuk menyisipkan, menghapus, memperbarui, dan mengambil data pengguna Anda.

Membuat Class Model

Class model disimpan dalam direktori application/model. Kode berikut menunjukkan cara membuat kelas model di CodeIgniter.

<?php 
   Class Model_name extends CI_Model { 
  
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?>

Di mana Model_name adalah nama class model yang ingin Anda berikan. Setiap class model harus mewarisi class CI_Model CodeIgniter. Huruf pertama dari class model harus dalam huruf kapital. Berikut ini adalah kode untuk class model User.

<?php 
   Class User_model extends CI_Model {
  
      Public function __construct() { 
         parent::__construct(); 
      } 
    
   } 
?>

Class model di atas harus disimpan sebagai User_model.php. Nama class dan nama file harus sama.

Loading Model

Model dapat load di controller. Kode berikut dapat digunakan untuk memuat model apa pun.

$this->load->model('model_name');

Di mana model_name adalah nama model yang akan dimuat. Setelah memuat model, Anda dapat memanggil metode seperti yang ditunjukkan di bawah ini.

$this->model_name->method();

Auto-loading Models

Mungkin ada situasi di mana Anda ingin meload beberapa class model di seluruh aplikasi Anda. Dalam situasi seperti itu, lebih baik jika kita memuatnya secara otomatis.

/*
| ---------------------------------------------------------------
|  Auto-Load Models
| ---------------------------------------------------------------
| Prototype:
|
|   $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|  
|   $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();

Seperti yang ditunjukkan pada sintax di atas, masukkan nama model dalam array yang Anda ingin autoload dan itu akan dimuat secara otomatis, saat sistem dalam keadaan inisialisasi dan dapat diakses di seluruh aplikasi.

Helpers

Seperti namanya, ini akan membantu Anda membangun sistem Anda. Ini dibagi menjadi beberapa fungsi kecil untuk melayani berbagai fungsi. Sejumlah helpers tersedia di CodeIgniter, yang tercantum dalam tabel di bawah ini. Kita juga bisa membangun helpers kita sendiri.

Pembantu biasanya disimpan di system/helpers Anda, atau direktori application/helpers. Kustom helpers disimpan dalam direktori application/helpers dan sistem helpers disimpan di direktori system/helpers. CodeIgniter akan terlihat pertama di direktori application/helpers Anda. Jika direktori tidak ada atau helpers yang ditentukan tidak ditemukan, CodeIgniter sebaliknya akan mencari di direktori sistem global Anda system/helpers. Setiap helper, apakah itu custom atau system helper, harus dimuat sebelum menggunakannya.

Loading a Helper

Helper dapat dimuat seperti yang ditunjukkan di bawah ini –

$this->load->helper('name');

Di mana nama adalah name helper. Misalnya, jika Anda ingin memuat helper URL, maka dapat dimuat sebagai –

$this->load->helper('url');

Routing

CodeIgniter memiliki sistem perutean URI yang mudah digunakan, sehingga Anda dapat dengan mudah merutekan ulang URL. Biasanya, ada hubungan satu-ke-satu antara string URL dan class controller/method yang sesuai. Segmen dalam URI biasanya mengikuti pola ini –

your-domain.com/class/method/id/
  • Segmen pertama mewakili class controller yang harus dipanggil.
  • Segmen kedua merupakan fungsi class, atau method, yang harus disebut.
  • Yang ketiga , dan setiap segmen tambahan, mewakili ID dan variabel apa pun yang akan diteruskan ke controller.

Dalam beberapa situasi, Anda mungkin ingin mengubah mekanisme perutean default ini. CodeIgniter menyediakan fasilitas untuk mengatur aturan perutean Anda sendiri.

Kustomisasi Aturan Perutean

Ada file tertentu di mana Anda dapat menangani semua ini. File ini terletak di application/config/routes.php. Anda akan menemukan array yang disebut $route di mana Anda dapat menyesuaikan aturan routing Anda. Kunci dalam array $route akan memutuskan apa yang harus dirutekan dan nilainya akan memutuskan ke mana harus merutekan. Ada tiga rute yang dipesan dalam CodeIgniter.

$route[‘default_controller’]
Rute ini menunjukkan kelas controller mana yang harus dimuat, jika URI tidak mengandung data, yang akan menjadi kasus ketika orang memuat URL root Anda. Anda disarankan untuk memiliki rute default jika tidak halaman 404 akan muncul, secara default. Kami dapat mengatur beranda situs web di sini sehingga akan dimuat secara default.

$route[‘404_override’]
Rute ini menunjukkan kelas controller mana yang harus dimuat jika controller yang diminta tidak ditemukan. Ini akan menimpa halaman kesalahan 404 default. Ini tidak akan mempengaruhi fungsi show_404(), yang akan melanjutkan memuat file error_404.php default dalam application/view/error/error_404.php .

$route[‘translate_uri_dashes’]
Sebagaimana terbukti dengan nilai Boolean, ini bukan rute yang tepat. Opsi ini memungkinkan Anda untuk secara otomatis mengganti tanda hubung (‘-‘) dengan garis bawah pada pengontrol dan metode segmen URI, sehingga menghemat entri rute tambahan jika Anda perlu melakukannya. Ini diperlukan karena tanda hubung bukan karakter kelas atau metode-nama yang valid dan akan menyebabkan kesalahan fatal, jika Anda mencoba menggunakannya.

Rute dapat dikustomisasi dengan wildcard atau dengan menggunakan ekspresi reguler tetapi perlu diingat bahwa aturan kustom ini untuk perutean harus datang setelah aturan yang dipesan.

Wildcards

Kita dapat menggunakan dua karakter wildcard seperti yang dijelaskan di bawah ini –

  • (:num) − Ini akan cocok dengan segmen yang hanya berisi angka.
  • (:any) − Itu akan cocok dengan segmen yang mengandung karakter apa pun.

Example

$route['product/:num']='catalog/product_lookup';

Dalam contoh di atas, jika kata literal “produk” ditemukan di segmen pertama URL, dan angka ditemukan di segmen kedua, kelas “katalog” dan metode “product_lookup” digunakan sebagai gantinya.

Regular Expressions

Seperti wildcard, kita juga bisa menggunakan ekspresi reguler di bagian kunci array $route. Jika ada URI yang cocok dengan ekspresi reguler, maka akan dialihkan ke bagian nilai yang diatur ke dalam array $route.

Example

$route['products/([a-z]+)/(\d+)']='$1/id_$2';

Dalam contoh di atas, URI yang mirip dengan products/shoes/123 akan memanggil class controller “shoes” dan method “id_123”.

Be the first to comment

Leave a Reply

Alamat email Anda tidak akan dipublikasikan.


*