Pada tulisan ini saya akan membuat series mengenai pemrograman dengan Yii Framework. Series ini akan disusun untuk membuat sebuah program sederhana yang memanfaatkan fitur-fitur umum yang sangat mungkin digunakan di banyak kasus. Tulisan ini akan menggunakan Basic Template Yii2 (yang menurut saya penggunaannya sedikit lebih sulit daripada advance template Yii2).

Secara garis besar (dan mungkin akan bertambah sesuai keperluan yang mungkin terjadi) outline dari seri tulisan ini akan terdiri dari hal berikut.

  1. Prainstalasi
  2. Instalasi YiiFramework 2.0
  3. Login
  4. Login dengan Database pada Yii2
  5. Bekerja dengan Gii
  6. Module pada Yii2
  7. Layout dasar dan Manipulasinya pada Yii2
  8. Costum Asset dan Asset Bundle pada Yii2
  9. Alias pada Yii2
  10. Bekerja dengan Form
  11. Timestamp, Blameable, dan Sluggable Behavior pada Yii2
  12. Menggunakan Rich Text Input CkEditor dan Alternatifnya pada Yii2
  13. Gridview dan Listview
  14. SEO Friendly Url dengan slug
  15. Scenario pada Model Yii2
  16. Retrieve data pada Yii2
  17. Relasi Database pada Yii2
  18. Menggunakan Bootstrap4
  19. Widget Kartik dan Kartik Gridview
  20. Select2 dengan Kartik Ekstension
  21. Dependent Dropdown pada Yii2
  22. Bekerja dengan Modals
  23. Membuat Costum Template untuk Gii
  24. Mengupload File
  25. Mengupload File dengan Kartik Widget
  26. Gridview atau Datatables?
  27. Session dan Cookie pada Yii2
  28. Menggunakan AdminLTE pada Yii2
  29. Membuat Themes pada Yii2
  30. Menggunakan GoogleMaps API pada Yii2
  31. Menggunakan Socket.io pada Yii2
  32. Handling Error
  33. Bekerja dengan AuthClient
  34. Menggunakan Amazon S3 pada Yii2
  35. Mengirim Email dengan Swiftmailer pada Yii2
  36. Middleware pada Yii2
  37. Mengenal RBAC pada Yii2
  38. Implementasi RBAC pada Yii2
  39. Notifikasi Real Time dengan Socket.io pada Yii2

Anda dapat mengunduh dan memantau progress dari series ini lewat repositori Github belajararief-yii2series. Silahkan bintangi (star) untuk dapat lebih mudah memantau perkembangan repositori.

Requirement

Untuk memudahkan anda dalam memahami petunjuk ini, maka beberapa hal yang perlu diperhatikan diantaranya:

  1. Sistem Operasi yang saya gunakan adalah Windows 10 64bit dengan terminal menggunakan powershell terminal (beberapa command seperti cd dapat berbeda dengan command prompt biasa), namun saya akan berusaha sebisa mungkin mencontohkan perintah pada sistem operasi lain jika memunkinkan.
  2. Stack yang digunakan adalah Wamp Server (Apache 2.2, MySQL, PHP 7).
  3. Yii yang digunakan adalah Yii 2.0 dengan catatan jquery yang digunakan bukan jquery3. Beberapa perintah jquery akan berbeda pada jquery3, dan beberapa extensions yang saya gunakan sepertinya belum mendukung jquery3

Mengenal Alias

Pada Yii2 alias digunakan untuk merepresentasikan sebuah path dari file atau Url sehingga kita tidak perlu mengetik path secara hard-code seluruh alamat dari path yang sering kita gunakan. Kita cukup menggunakan nama alias diawali dengan @. Penggunaan alias selain mempermudah pengetikan juga mempermudah manajemen path yang berorientasi objek, sehingga kita dapat dengan mudah mengubah sebuah folder yang sering kita akses tanpa harus mengubah seluruh path yang pernah kita tulis di kode yang ada.

Dalam Yii2 terdapat alias yang sudah secara default ada pada Yii2 (predefined) dan alias yang kita buat sendiri.

Predefined Aliases

Pada Yii2 terdapat beberapa alias yang secara default ada sehingga dapat kita gunakan tanpa harus mendefinisikan terlebih dahulu alias tersebut. Alias yang sudah predefined tersebut antara lain.

@yii Alias ini diarahkan pada framework direktori, yaitu folder dimana file BaseYii.php berada, dalam hal ini berada pada folder vendor yii2 kita
@app Alias ini adalah path dasar dari aplikasi kita/root. Dalam template basic ini adalah path root dari aplikasi yii2. Namun dalam template advance, path yang dihasilkan bergantung pada dimana alias ini dijalankan, jika dijalankan di frontend akan mengarahkan pada base path dari frontend (\frontend), atau jika dijalankan di backend akan mengarahkan pada base path dari backend (\backend), atau aplikasi lainnya yang kita buat dalam advance template.
@runtime Alias ini diarahkan pada folder runtime pada aplikasi kita. Biasanya berada pada @app/runtime.
@webroot Alias ini menunjukkan path aplikasi yang sedang berjalan, diidentifikasikan dengan keberadaan dari index.php kita. Biasanya berada pada @app/web/
@web Alias ini adalah URL alias, artinya akan memberikan output http/s:\\app_base_url sehingga biasa digunakan untuk memberikan path URL.
@vendor Alias ini diarahkan pada vendor direktori. Biasanya berada pada @app/vendor
@bower Alias ini diarahkan pada bower direktori. Biasanya berada pada @vendor/bower atau @app/vendor/bower
@npm Alias ini diarahkan pada npm packages direktori. Biasanya berada pada @vendor/npm atau @app/vendor/npm
@frontend @backend Alias ini khusus digunakan pada template advance. Walaupun tidak dapat disebut sebagai predefined, namun di Yii2 advance template kedua hal ini otomatis diberikan. Fungsinya sama seperti @app alias namun dapat memberikan fungsi cross-application path

User Defined Alias

User Defined Alias atau kita sebut saja alias tambahan yaitu alias yang khusus kita buat untuk memudahkan pekerjaan kita, terutama ketika aplikasi kita memiliki struktur tambahan yang tidak mengikuti konfigurasi pada Yii2, ataupun ketika kita menggunakan advance template dengan banyak aplikasi tambahan pada Yii2.

Alias tambahan dapat kita definisikan dengan dua cara. Yang pertama yaitu dengan menambahkan pada konfigurasi Yii2 kita yang pada basic template berada pada @app/config/web.php pada bagian aliases.

config = [
    // ...
    'aliases' => [
        '@foo' => '/path/to/foo',
        '@bar' => 'http://www.example.com',
    ],
];

Selain cara di atas kita juga dapat mendefinisikan alias pada Class manapun di Yii2 dengan perintah berikut.

// an alias of a file path
Yii::setAlias('@foo', '/path/to/foo');

// an alias of a URL
Yii::setAlias('@bar', 'http://www.example.com');

// an alias of a concrete file that contains a \foo\Bar class
Yii::setAlias('@foo/Bar.php', '/definitely/not/foo/Bar.php');

 

Menggunakan Alias

Alias dapat digunakan pada banyak hal di Yii2. Beberapa parameter dalam Class-Class di Yii2 mengizinkan anda menggunakan alias secara langsung. Contohnya adalah pada FileCache Class dimana kita bisa langsung menentukan cachePath dengan menggunakan alias seperti contoh berikut.

use yii\caching\FileCache;

$cache = new FileCache([
    'cachePath' => '@runtime/cache',
]);

Namun di banyak kesempatan kita juga perlu membuat parameter baru atau Class baru yang perlu menggunakan alias, maka kita harus melakukan resolve alias dengan perintah berikut.

echo Yii::getAlias('@foo');               // displays: /path/to/foo
echo Yii::getAlias('@bar');               // displays: http://www.example.com
echo Yii::getAlias('@foo/bar/file.php');  // displays: /path/to/foo/bar/file.php

Dengan cara tersebut di atas anda bisa menggunakan alias di Class manapun anda berada. Semoga bermanfaat dan Happy Coding!