下載地址:
http://www.yiiframework.com/
http://www.yiichina.com/
由美籍華人薛強研究而出,
Yii 這個名字(讀作易(Yee))代表
簡單(easy), 高效(efficient)和可擴展(extensible).
基于MVC,純OOP,強大
基本配置要求:數據庫:mysql,php5.0.1以上;pdo,【圖片等需開啟gd庫模塊】
- 下載完成,解壓后,通過127.0.0.1或localhost訪問其文件夾,可以查看requirements文件夾,代表framework基本需求配置,核心文件僅framework,
- 創建項目方式:【簡:使用yiic.php webapp ../bbs 安裝】
A: windows系統將php.exe文件目錄地址加入到計算機環境變量,運行cmd進入【framework】目錄,運行【php yiic.php webapp ../bbs】,會提示創建 【Create a webapp location ‘…yii目錄\項目名稱’ yes or no:】,鍵入【yes】,或者仍然找不到php.exe手動指定php目錄,執行php.exe yiic.php webapp c:/wamp/www/yii/yii/bbs也可以完成功能,如果不行,重新執行上述步驟,以下兩個圖片都可建立
B: linux系統也可進入相對應目錄執行【php】,執行【php yiic.php webapp ../bbs】,提示創建 【……yes or no:敲入yes】,如果不行,重新執行上述步驟
- 現在可以訪問localhost/yii/yii/bbs/ 地址相等于 localhost/yii/yii/bbs/index.php?r=site/index
表示當前默認訪問的是index.php入口文件里路由r為site控制器[controllers層]里的index方法,
- 默認主頁文件為protected/controllers文件夾里的SiteController.php下的 actionIndex方法,
關鍵*修改默認控制器:
打開protected/config文件夾下main.php文件,在 return array()里最外層array添加 ‘defaultController’=>’index’;
*:在protected/controller下創建默認主頁控制器IndexController.php,繼承Controller基本內容如下:
class IndexController extends Controller{
public function actionIndex(){
/*//顯示index.php,第二個參數必須以數組的形式發送(可選)*/
$this->render(‘index’[,array(‘mixed’=>$a)]);//加載布局
$this->renderPartial(‘index’[,array(‘x’=>$x)]);//不加載布局,不加載默認框架自帶jquery等
}
}/*注:所有的控制器都必須繼承Controller,且控制器中方法必須以action開頭*/
- 關鍵*:修改默認布局目錄,打開components下的Controller.php文件
在Controller類中將 public $layout = ‘//laylouts/column1’;修改為public $layout = ‘//laylouts/bbs’;
- 布局內容:如果沒有什么需要改變的,直接 <?php echo $content ?> 就可以,而根據默認控制器令,打開的是index控制器下的index方法,打開的是名為index的文件,所以要在protected/view文件夾下創建一個index文件夾,文件夾內創建一個index.php文件(yii規定為php文件,且內容可以包含php語法)
- 這樣就形成了一個頁面,由//layout/bbs.php公共布局 與 /protected/view/index/index.php兩個文件共同形成的一個文件,首頁就出來了,/layout/bbs.php內容為:
<公共的頭部內容>
<?php echo $content; ?>-------意思即代表index.php中的所有內容
<公共的尾部內容>
而/protected/view/index/index.php內容為:
<首頁去除頭部和腳部以后中間部分的內容()>
- 配置css,js,image等相關外部文件,這些文件放入assets文件夾里,視圖層中為了方便寫路徑,yii框架定義了方法
調用方式:Yii::app()->request->baseUrl 等同于 項目根目錄url地址
代表著:當前項目目錄
例:<img src=’image/aaa.png’> 更改為<img src=’<?php echo Yii::app()->request->baeUrl; ?>/assets/image/aaa.png’>
- 如要增加模塊,只需在相應的文件夾建立相應的文件,相應的文件建立相應的方法即可
例1:如果需要在index下建立一個注冊模塊,只需在IndexControll.php的IndexController類下建立actionregister方法,在方法內執行 $this->render(‘register’); 在view模塊的index目錄下新建立一個名為register.php的注冊文件,同時遵守//layour/blog布局樣式;
例2:如果想替換布局文件,即可在當前方法中加上 public $layout=’//layouts/布局文件名’
想替換js,css,image相關文件,直接可以在文件中修改地址即可
可以選擇建立一個新的控制器,在視圖文件夾下建立一個新的控制器名稱文件夾,包含方法名文件
- 控制器發送數據給頁面:例: $data = array(‘id’=>’45’,’title’=>’my title’,’name’=>’zhangsan’);
$this->render(‘pageUrl’,$data);
視圖層處理: <?php foreach($data as $v)?>
<li><?php echo $v->id; ?></li>
<?php endforeach?>
注:如果用單獨的每行描寫php語法,有需要大括號的地方可以不加,但是行為結束必須有<end行為標簽符>
另注:數據在Yii框架中view層中以對象形式存在,所以不能直接echo,直接調用發送來的變量即可
- 可以選擇自定義函數,引入,require_once(‘./obj_path/myfunc.php’);
- gii 模塊 作用:更加便捷的模塊管理,例如,需要建立一個后臺管理模塊,步驟如下:
13.1在config/main.php文件里開啟gii模塊 'gii'=>array(
'class'=>'system.gii.GiiModule',
‘password’=>‘Enter Your Password Here’,//設置密碼
'ipFilters'=>array('127.0.0.1','::1'),
), //將/* */去掉
13.2訪問http://localhost/yii/yii/index.php?r=gii 地址,根據main.php文件自己設置的密碼登陸模塊系統,新建模塊選擇第四個 Module Generator,填寫需要建立的模塊 admin,點擊preview瀏覽,Yii默認創建一個modules/admin文件夾,AdminModule.php文件,controllers層DefaultController.php ,視圖層default文件夾默認index.php文件,點擊Generate創建(提示在main.php文件添加名為admin的元素),在main.php文件modules 對應的數組中添加 ‘admin’ 元素,添加完以后即可訪問 index.php?r=admin 頁面
注:與前臺沒有直接關系的模塊盡量選擇在modeules里創建
http://localhost/yii/yii/blog/index.php?r=admin
至此admin模塊有了,有時間可以把后臺admin搭建起來
- 后臺模塊要擁有自己的布局必須將當前項目根目錄下的components文件夾復制到admin目錄下,并且刪除文件夾內的UserIdentity.php文件,修改admin/components文件夾里的Controller.php文件,將布局文件名修改為自己需要的,去掉一根斜線//*public $layout=’layouts/admin’; *//,代表為當前modules的layouts布局文件,所以就要在admin目錄下的views文件夾下單獨創建一個layouts文件夾,用來存放admin布局文件,不然會出錯,另外如果需要加載外部文件,最好自己在assets里另建一個文件夾來存放。
文章列表