Yii Framework merupakan salah satu PHP framework terbaik saat ini.

Biasanya kita kenal Yii Framework versi 1.1 sebagai full stack framework, nah untuk kali ini kita belajar membuat API dengan se-minimize folder.

Berikut langkah-langkah :

Download Yii Framework dari website Yii atau dari github mereka klik disini
Tentukan folder untuk menampung framework Yii
Ekstrak zip file ke folder penampung Framework, misalkan di c:\winnmp\www\framework
Buat folder untuk aplikasi, misalkan di c:\winnmp\www\apiku
Buat sub folder seperti berikut :

6. Buat file index.php di folder apiku dengan isi :

<?php
date_default_timezone_set('Asia/Jakarta');
$yii=dirname(__FILE__).'/../framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
define('ROOTPATH', __DIR__);
defined('YII_DEBUG') or define('YII_DEBUG',true);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
require_once($yii);
class ExtendableWebApp extends CWebApplication {
  protected function init() {
    foreach (glob(dirname(__FILE__).'/protected/modules/*', GLOB_ONLYDIR) as $moduleDirectory) {
      $this->setModules(array(basename($moduleDirectory)));
    }
    return parent::init();
  }
}
$app=new ExtendableWebApp($config);
$app->run();
7. Buat file main.php di folder protected/config/, dengan isi :

<?php
return array(
  'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
  'name'=>'Capella ERP Indonesia - API',
  'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.modules.admin.models.*',
   ),
   'components'=>array(
     'urlManager'=>array(
       'urlFormat'=>'path',
       'rules'=>array(
         '<controllers>/<action>'=>'<controllers>/<action>',
 array('<modules>/<controllers>/<action>','pattern'=>'<modules>/<controllers>/<action>','verb'=>'GET'),
),
      ),
    'db'=>array(
      'connectionString' => 
        'mysql:port=3306;dbname=dbku;host=localhost',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'initSQLs'=>array('set names utf8'),
        'schemaCachingDuration' => 3600,
     ),
  )
);
8. Membuat file ApiController.php dengan extend dari CController, letakkan di folder protected/components, dengan isi :

<?php
class ApiController extends CController {
  public $layout = '//layouts/columngeneral';
  public function actionIndex(){
  }
  public function actionList(){
  }
  public function actionView(){
  }
  public function actionCreate(){
  }
  public function actionUpdate(){
  }
  public function actionDelete(){
  }
}
9. Membuat Controller untuk melayani request dari aplikasi lain, misalkan http://localhost/apiku/site/hello, dengan mengembalikan json

{"isError":0,"msg":"Hello"}
maka buat file SiteController.php di folder protected/controllers diisi dengan :

<?php 
class SiteController extends ApiController {
  public function actionHello(){
    echo CJSON::encode(array(
      'isError' => 0,
      'msg' => $values,
    ));
    Yii::app()->end(); 
  }
}
10. Lakukan test dengan menggunakan Postman

Source Code dapat diambil di sini