Gii是Yii框架中的一個(gè)模塊,Gii在我看來(lái)算是個(gè)快速創(chuàng)建器,當(dāng)然對(duì)于學(xué)習(xí)來(lái)說(shuō)意義不大,但對(duì)于已經(jīng)懂得它的原理并用它開(kāi)發(fā)的話,就是個(gè)快速開(kāi)發(fā)的好工具。所以作為一個(gè)Gii主要開(kāi)發(fā)工具,還是用的很多的。
Gii 是以模塊的方式實(shí)現(xiàn)的,它必須在一個(gè)已存在的 Yii 應(yīng)用程序中使用。要使用 Gii,我們首先更改應(yīng)用程序的配置如下:
return array( ...... 'modules'=>array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'在這里填寫(xiě)密碼', // 'ipFilters'=>array(...IP 列表...), // 'newFileMode'=>0666, // 'newDirMode'=>0777, ), ),);
在上面,我們聲明了一個(gè)名為 gii 的模塊,它的類(lèi)是 GiiModule。我們也為這個(gè)模塊設(shè)置了一個(gè)密碼,我們?cè)L問(wèn) Gii 時(shí)會(huì)有一個(gè)輸入框要求填寫(xiě)這個(gè)密碼。
出于安全考慮,默認(rèn)情況下只允許本機(jī)訪問(wèn) Gii。若允許其他可信賴(lài)的機(jī)器訪問(wèn)它,我們需要如上所示配置GiiModule::ipFilters 屬性。
因?yàn)?Gii 會(huì)生成并保存新文件到應(yīng)用程序中,我們需要確保 Web 服務(wù)器進(jìn)程有權(quán)限這樣做。上面的GiiModule::newFileMode 和 GiiModule::newDirMode 屬性控制如何生成新文件和新目錄。
現(xiàn)在可以通過(guò) URL http://hostname/path/to/index.php?r=gii 訪問(wèn) Gii 了。這里我們假設(shè)http://hostname/path/to/index.php 是訪問(wèn) Yii 應(yīng)用程序的 URL。
若 Yii 應(yīng)用程序使用 path 格式的 URL (查看 URL management),我們可以通過(guò) URLhttp://hostname/path/to/index.php/gii 訪問(wèn) Gii。 我們可能需要增加如下 URL 規(guī)則到已有的 URL 規(guī)則的前面:
'components'=>array( ...... 'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( 'gii'=>'gii', 'gii/<controller:w+>'=>'gii/<controller>', 'gii/<controller:w+>/<action:w+>'=>'gii/<controller>/<action>', ...已有的規(guī)則... ), ), )
Gii 有一些默認(rèn)的代碼生成器。每個(gè)代碼生成器負(fù)責(zé)生成特定類(lèi)型的代碼。例如 controller 生成器生成一個(gè) controller 類(lèi)以及一些 action view 腳本; model 生成器為指定的數(shù)據(jù)表生成一個(gè) ActiveRecord 類(lèi)。
使用一個(gè)生成器的基本流程如下:
進(jìn)入生成器頁(yè)面;
填寫(xiě)指定代碼生成參數(shù)的輸入框。例如,使用 Module Generator 創(chuàng)建一個(gè)新模塊,你需要指定 module ID;
點(diǎn)擊 Preview 按鈕預(yù)覽即將生成的代碼。你將看到一個(gè)表格中列出了將要生成的文件列表。你可以點(diǎn)擊其中任何一個(gè)文件來(lái)預(yù)覽代碼;
點(diǎn)擊 Generate 按鈕生成這些代碼文件;
查看代碼生成日志。
PHP中文網(wǎng),有大量免費(fèi)的Yii入門(mén)教程,歡迎大家學(xué)習(xí)!