Codeigniter - Configurasi Dasar

Pada artikel ini kita akan melakukan configurasi dasar pada Framework Codeigniter

Arman Dwi Pangestu

4 Februari 20231 menit baca

Autoload

autoload.php file ini digunakan untuk mengatur fungsi-fungsi yang akan dimuat otomatis di awal ketika program dijalankan.

Untuk melakukan konfigurasi pada file autoload.php silahkan buka folder:

application/config/autoload.php

seperti gambar berikut:

autoload.php

Ada beberapa hal yang bisa diload secara otomatis diantaranya:

  • packages
  • libraries
  • drivers
  • helper files
  • custom config files
  • language files
  • dan models

Untuk konfigurasi dasar yang perlu Anda ketahui adalah libraries dan helper files.

Hal ini bertujuan agar beberapa library dan helper tertentu berjalan secara otomatis.

Untuk melakukan konfigurasi pada libraries, buka file autoload.php dengan text editor seperti Visual Studio Code

Kemudian temukan kode berikut:

$autoload['libraries'] = array();

Atur atau ubah menjadi seperti berikut:

$autoload['libraries'] = array('database');

Pada kode diatas, artinya kita meload library database secara otomatis.

Dengan demikian Anda dapat menggunakan fungsi-fungsi database pada codeigniter.

Seperti fungsi: Query Builder Class

Selanjutnya, untuk melakukan konfigurasi pada helper files, buka file autoload.php dengan text editor.

Kemudian temukan kode berikut:

$autoload['helper'] = array();

Atur atau ubah menjadi seperti berikut:

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

Pada kode diatas, artinya kita meload helper url secara otomatis.

Dengan demikian Anda dapat menggunakan fungsi-fungsi url pada codeigniter.

Seperti fungsi:

  • base_url()
  • site_url()
  • URI Segment
  • dan sebagainya

Config

Pada file ini terdapat beberapa konfigurasi yang secara standar sudah terkonfigurasi.

Namun terdapat beberapa konfigurasi yang perlu diperhatikan yaitu:

$config['base_url']
$config['index_page']
$config['encryption_key']

Untuk konfigurasi dasar, Anda cukup mengetahui konfigurasi base_url.

base_url merupakan url dasar dari project Anda.

Untuk mengkonfigurasi base_url, buka file config.php dengan text editor.

base_url

Kemudian temukan kode berikut:

$config['base_url'] = '';

Atur menjadi seperti berikut:

$config['base_url'] = 'http://localhost/myproject';

Database

Dilihat dari nama filenya maka Anda sudah dapat menangkap apa fungsi dari file ini.

File database.php digunakan untuk melakukan konfigurasi yang berkaitan dengan konfigurasi databse dari website yang akan dibuat.

Adapun konfigurasi yang perlu diperhatikan yaitu:

  • hostname
  • username
  • password
  • database

Untuk melakukan konfigurasi pada database.php. Buka file database.php dengan text editor.

database

Kemudian temukan kode berikut:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'	=> '',
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

Atur menjadi seperti berikut:

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'	=> '',
    'hostname' => 'localhost', // Hostname
    'username' => 'root', // Username
    'password' => '', // Password
    'database' => '', // Databse Name
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

Hello World Codeigniter

Jika serius dengan codeigniter, Anda harus mengerti bagaimana sebuah controller bekerja.

Untuk lebih jelasnya, saya akan sharing kasus sederhana agar Anda dapat memahami bagaimana controller bekerja.

Disini saya mengangkat kasus yaitu bagaimana menampilkan text Hello World! pada browser menggunakan controller.

Let's dive right in.

Buat sebuah controller dengan nama Hello.php seperti gambar berikut:

Hello World

Kemudian ketikan kode berikut:

NOTE: Setiap penulisan nama file dan nama class selalu di dahului dengan huruf Capital.

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

class Hello extends CI_Controller {
    public function index() {
        echo "Hello World!";
    }
}

Setelah itu save dan buka browser Anda, lalu kunjungi url berikut:

http://localhost/myproject/index.php/hello

Maka akan terlihat text Hello World pada browser Anda seperti berikut: image

Jika Anda perhatikan dengan seksama, pada dasarnya url pada codeigniter terlihat seperti gambar berikut:

image

Dimana, terpadat protocol, primary domain, index.php, class name, dan function name.

Mungkin terdengar rumit, tapi sebenarnya tidak.

Untuk lebih jelasnya silahkan tambahkan satu function lagi pada Controller Hello.php. Disini saya beri nama show

Sehingga controller Hello.php menjadi seperti berikut:

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

class Hello extends CI_Controller {
    public function index() {
        echo "Hello World!";
    }

    public function show() {
        echo "I Make The World Better Place";
    }
}

Jika Anda jalankan dengan mengunjungi URL berikut:

http://localhost/myproject/index.php/Hello/show

Maka, akan tampil hasilnya seperti berikut:

image

Menghilangkan index.php pada URL

Codeigniter merupakan framework php yang mendukung clean URL.

Dengan demikian Anda dapat membuat URL yang mudah dibaca dan sekaligus SEO Friendly.

Pada URL aplikasi Hello World diatas, dapat dilihat bahwa adanya index.php pada url yang terlihat menggangu.

Adakah cara untuk menghilangkan index.php dari URL?

Tentu saja, Anda dapat menggunakan file .htaccess untuk menghilangkannya.

Bagaimana membuat file .htaccess?

Mari kita mulai.

Buat sebuah file dengan nama .htaccess pada web root Anda dan ketikan kode berikut:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Seperti gambar berikut:

image

Kemudian buka folder application/config/config.php dengan text editor.

image

Kemudian temukan kode berikut:

$config['index_page'] = 'index.php';

Atur menjadi seperti berikut:

$config['index_page'] = '';

Sekarang silahkan kunjungi url berikut untuk uji coba:

http://localhost/myproject/hello/show

Maka akan terlihat hasilnya seperti berikut:

image

Pada gambar diatas, dapat dilihat bahwa URL menjadi lebih rapi dan SEO Friendly dengan menghilangkan index.php pada URL.

Controller dan View

Pada kasus sebelumnya, Anda telah mengetahui bagaimana menampilkan text Hello World! langsung dari controller.

Namun hal tersebut sebaiknya dilakukan di view.

Sekarang saya akan menunjukkan bagaimana menampilkan view melalui controller

Mari kita mulai.

Pertama, buat sebuah file pada application/controller dengan nama Blog.php

Kemudian ketikan kode berikut:

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

class Blog extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
    }

    public function index() {
        $this->load->view('blog_view', $data);
    }
}

Kedua buat sebuah file di application/views dengan nama blog_view.php

Kemudian ketikan kode berikut:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>My Blog</title>
  </head>
  <body>
    <h1>Welcome To My Blog</h1>
  </body>
</html>

Kemudian, buka browser Anda dan akses controller blog. Maka akan terlihat hasilnya seperti berikut:

image

Anda juga dapat mengirimkan parameter ke view melalui controller.

Sebagai contoh, silahkan ubah controller Blog.php menjadi seperti berikut:

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

class Blog extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
    }

    public function index() {
        $data['title'] = "This Is Title";
        $data['content'] = 'This Is Content';
        $this->load->view('blog_view', $data);
    }
}

Kemudian ubah view blog_view.php menjadi seperti berikutL:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><?= $title ?></title>
  </head>
  <body>
    <h1><?= $content ?></h1>
  </body>
</html>

Kemudian, buka browser Anda dan akses kembali controller blog. Maka akan terlihat hasilnya seperti berikut:

image

Saya harap Anda dapat memahami perbedaanya.