[心得] Yii 實作分享 01 基本設定
上週簡單分享了YiiFramework
這次就來建置一個Yii Application
*以Windows系統為主
首先Download YiiFramework http://www.yiiframework.com/download/
(或SVN checkout:http://yii.googlecode.com/svn/trunk/)
將yii置於網站根目錄(我使用wampserver因此位於C:\wamp\www)
為了方便使用yiic,我將C:\wamp\www\yii\framework加入Windows的環境變數PATH裡
打開cmd切換至根目錄
使用yiic webapp指令鍵入yiic webapp mysite按y
就可以看到yiic已經幫我們自動生成一個website了
瀏覽器鍵入localhost/mysite可以看到目前的網站雛形
稍微解說一下yii application的資料夾結構:
index.php
/css
/images
/js
/protected
/components
/config
/controller
/extensions
/models
/views
...
css,images,js這些資料夾顧名思義都是放置網頁元素的資料夾
yii的URL Routing機制urlManager並不會對這些資料夾做任何Url Rewrite的動作
protected資料夾裡面則是整個網站的核心
包含了Model,View,Controller的標準MVC架構
components資料夾則放置一些我們自行繼承改寫自Yii內建元件的Class
網站預設會將其import進我們的Application
預設已經包含了Controller.php(所有Controller的父類別)與UserIdentity.php(
使用者認證登入類別)兩個檔案,待會我們便可以依我們需要的動作對其做一些修改。
config資料夾則存放了整個網站應用的設定檔,這邊就開始說明一下
打開config資料夾內的main.php(主要設定檔)
可以看到yiic已經幫我們產生了一些基本設定
那我們可以先稍微修改一下包括網站名稱
'name'=>'網站名稱',
再來我們在下方添加一個設定
'language'=>'zh_tw',
這樣子內建的一些view就會顯示為中文
接下來我們將
'db'=>array(
'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),
這部分刪除並將
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=testdrive',
'emulatePrepare' => true,
'username' => 'root',
'password' => '',
'charset' => 'utf8',
),
這部分的註解取消並且連接自我們自己的mysql資料庫
然後開啟Gii的功能
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'自訂密碼',
),
取消注解上面這一段
並且在瀏覽器輸入localhost/mysite/index.php?r=gii 鍵入密碼
就可以看到一個網頁介面的產生器
包含了Controller,Model,CRUD Scaffold等等都可以在這裡產生
或者我們也可以使用terminal介面的yii shell
打開cmd切換到網站目錄 在網站目錄下鍵入protected/yiic shell
我們就可使用model,controller,crud等指令來自動產生
接著各位一定覺得這樣子的網址有點醜陋
那我們就可以開啟UrlManager的一些功能讓網址變得好看一點
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
將main.php中的這一段取消注解
接著網站就會改用localhost/mysite/index.php/{controller}/{action}的方式
接著我們將index.php隱藏起來讓網址更簡潔
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
然後在網站目錄下加入一個.htaccess檔
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
網址就會變得簡潔了
基本的設定到這邊為止,較為進階的設定部份之後根據實例再做解說
接著我將修改預設的UserIdentity 實作一個連接資料庫的會員系統
(待續)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.39.8
推
11/17 14:01, , 1F
11/17 14:01, 1F
推
01/21 19:11, , 2F
01/21 19:11, 2F