[心得] Yii 實作分享 01 基本設定

看板PHP作者 (高雄人看高熊球隊)時間13年前 (2011/03/22 22:30), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
上週簡單分享了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
期待原po的教學...
11/17 14:01, 1F

01/21 19:11, , 2F
推熱心分享
01/21 19:11, 2F
文章代碼(AID): #1DYB9jik (PHP)