Artisan. Mendengar kata itu, apa yang terbayang di benak Anda, para programmer? Maaf bagi yang bukan programmer ya.. Yup, mendengar kata artisan tentu akan melayangkan ingatan kita pada tool interaktif milik framework paling populer sedunia, laravel. Ya, artisan dijalankan di jendela konsol untuk perintah-perintah tertentu. Termasuk salah satunya untuk menjalankan web server built-in milik PHP.


$ php artisan serve

Nah, lalu bagaimana jika kita ingin membuat gaya seperti itu untuk aplikasi web dengan Yii kita? Caranya mudah, insyaAllah. Di website resminya pun sudah ada yang menuliskan tutorial ini. Hanya saja, tutorialnya kurang cocok dengan versi terbaru template advance ini. Ya, saya modif-modif sedikit akhirnya bisa juga.

Caranya? Pastikan dulu bahwa template yang kita pilih adalah template advance. Pada folder console/controllers buatlah file ServeController.php. Isinya kurang lebih seperti ini:


<?php
namespace console\controllers; 
use yii\console\Controller; 
/** 
* This command runs PHP built in web server 
* 
* @author Headshaker 
*/ 
class ServeController extends Controller 
{ 
/**
 * This command echoes what you have entered as the message. 
* @param string $root web root location relative to Yii app root. 
* @param string $host hostname of the server. 
* @param string $port port to listen for connections. */ 
public function actionIndex($root = "frontend", $port= 80, $host="localhost") 
{ 
$basePath = \Yii::$app->basePath;
$webRoot = dirname($basePath) . DIRECTORY_SEPARATOR . $root . DIRECTORY_SEPARATOR . 'web';
 
        echo "Yii dev server started on http://{$host}:{$port}/\n";
        echo "Document root is \"{$webRoot}\"\n";
 
        passthru('"'.PHP_BINARY.'"'." -S {$host}:{$port} -t \"{$webRoot}\"")."\n";
    }
}

Selanjutnya, tinggal kita jalankan di jendela konsol seperti ini:


$ yii serve

Selamat mencoba…

Advertisements