本文系統整理 Yii 1.1 版本的入門重點,涵蓋入口腳本、配置、MVC、模組、路徑別名與開發規範。
$yii = dirname(__FILE__) . '/../../framework/yii.php';
$config = dirname(__FILE__) . '/protected/config/main.php';
defined('YII_DEBUG') or define('YII_DEBUG', true);
require_once($yii);
Yii::createWebApplication($config)->run();
核心區段:basePath、components(db、cache、urlManager、log 等)、import、modules、params。
return array(
'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',
'name' => 'My Application',
'preload' => array('log'),
'import' => array(
'application.models.*',
'application.components.*',
),
'components' => array(
'db' => array(
'connectionString' => 'mysql:host=localhost;dbname=test',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tablePrefix' => 'tbl_',
),
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
'post/<id:\d+>/<title:.*?>' => 'post/view',
),
),
'log' => array(
'class' => 'CLogRouter',
'routes' => array(
array('class' => 'CFileLogRoute', 'levels' => 'error, warning'),
),
),
),
);
Yii 預定義組件:db、cache、user、urlManager、clientScript、errorHandler 等。存取方式:Yii::app()->componentID。
protected/controllers/actionActionName() 或獨立動作類ControllerID/ActionIDfilters() 回傳陣列,支援方法型與物件型class Post extends CActiveRecord {
public static function model($className=__CLASS__) { return parent::model($className); }
public function tableName() { return '{{post}}'; }
public function rules() { return array(array('title, content', 'required')); }
}
protected/views/ControllerID/protected/views/layouts/main.php,內容變數 $content$this->render('view', array('var' => $value))$this->widget('WidgetClass', array('prop' => 'val'))獨立功能單元,含獨立 MVC。建立:yiic shell 或 Gii。配置於 main.php 的 modules。
application、system、webroot、ext。使用 Yii::import('application.models.*') 自動載入。
_Controllertbl_rules()$_POST、驗證、儲存CActiveForm Widget 渲染欄位與錯誤訊息更多細節請參考 Yii 官方指南。