31 Oktober 2015

Struktur Alternatif Program Web Berbasis Yii2

Web Programmer yang menggunakan Yii2 Framework dapat mengikuti struktur berikut ini agar lebih leluasa menempatkan program web di folder manapun.

Catatan:
Saya menggunakan Ubuntu 14.04 dengan LAMP stack. Jadi folder Document Root ada di /var/www/html . Anda bisa menyesuaikan dengan system sendiri.

1. Letakkan Yii2 dibawah folder /var/www/html, misal nama foldernya yii2-basic. Struktur folder yii yang saya pakai sebagai contoh disini adalah berasal dari yii-basic-app-2.0.6.tar.gz


2. Buat folder di bawah /var/www/html untuk website yang akan didevelop, misal webcoba. Ikuti struktur yang ada pada struktur Yii2 di atas, atau copy saja folder dan isinya dari yii2-basic. Folder yang TIDAK DIBUTUHKAN adalah mail, tests, vendor dan web.

Copy juga file favicon.ico dan index.php dari folder yii2-basic/web. File index.php ini yang nanti akan sedikit dimodif agar lebih fleksible.


3. Pastikan folder assets dan runtime word writeable, beri perintah sbb:

# sudo chmod 777 /var/www/html/webcoba/assets
# sudo chmod 777 /var/www/html/webcoba/runtime


Anda bisa menempatkan file .htaccess yang berisi deny from all, agar folder tersebut aman.

4. Edit file index.php yang berada di /var/wwww/html/webcoba/ menjadi seperti berikut ini:

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');


//

//ada tiga baris berikut yang saya comment out 
//dan nanti disesuaikan
////require(__DIR__ . '/../vendor/autoload.php');
//require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
//$config = require(__DIR__ . '/../config/web.php');



//definisikan YII_PATH dimana yii2 diinstall 

//sebagai contoh di atas /var/www/html/yii2-basic
//bisa dituliskan relatif, bisa juga full
define('YII_PATH', '/var/www/html/yii2-basic');

require(YII_PATH . '/vendor/autoload.php');
require(YII_PATH . '/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/config/web.php');

(new yii\web\Application($config))->run();



Perhatian, copy-paste dari halaman ini kemungkinan bermasalah pada penulisan aphostrope. Silakan periksa kembali.

5. Edit file config/web.php menjadi sbb:

<?php

$params = require(__DIR__ . '/params.php');

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),

 
    //tambahkan baris berikut ini
    'vendorPath'=> YII_PATH.'/vendor',   
    'bootstrap' => ['log'],
    'components' => [
        'request' => [


... dst...

6. Selesai

Sebelum develop program lebih lanjut, system anda sudah dapat diakses pada http://localhost/webcoba.

Catatan:
* Struktur pada webcoba dapat dijadikan skeleton untuk program lainnya.
* Anda bisa membuat berapapun web program dengan skeleton yang sama.
* Bila ada upgrade Yii2 cukup dilakukan di folder yii2-basic basic tsb.