本章節將介紹如何使用 Gii 去自動生成 Web 站點常用功能的程式碼。使用 Gii 生成程式碼非常簡單,只要按照 Gii 頁面上的介紹輸入正確的資訊即可。
貫穿本章節,你將會學到:
Gii 是 Yii 中的一個模組。可以通過組態應用的 [[yiiaseApplication::modules|modules]] 屬性開啟它。通常來講在 config/web.php
檔案中會有以下組態程式碼:
$config = [ ... ];
if (YII_ENV_DEV) {
$config['bootstrap'][] = 'gii';
$config['modules']['gii'] = 'yiigiiModule';
}
這段組態的意思是如果當前是開發環境,應用會包含 gii
模組,模組類是 [[yiigiiModule]]。
如果你檢查應用的入口指令碼 web/index.php
,將看到這行程式碼將 YII_ENV_DEV
設為 true:
defined('YII_ENV') or define('YII_ENV', 'dev');
程式碼設定應用處於開發模式下,按照上面的組態會開啟 Gii 模組。你可以直接通過 URL 存取 Gii:
http://hostname/index.php?r=gii
選擇 “Model Generator” (點選 Gii 首頁的連結)去生成活動記錄類。並像這樣填寫表單:
country
Country
然後點選 “Preview” 按鈕。你會看到 models/Country.php
被列在將要生成的檔案列表中。可以點選檔案名預覽內容。
如果你已經建立過同樣的檔案,使用 Gii 可以覆寫它,點選檔案名旁邊的 diff
能檢視現有檔案與將要生成的檔案的內容區別。
想要覆寫已存在檔案,選中 “overwrite” 下的核取方塊然後點選 “Generator”。如果是新檔案,只點選 “Generator” 就好。
接下來你會看到一個包含已生成檔案的說明頁面。如果生成過程中覆寫過檔案,還會有一條資訊說明程式碼是重新生成覆蓋的。
CRUD 代表增,查,改,刪操作,這是絕大多數 Web 站點常用的資料處理方式。選擇 Gii 中的 “CRUD Generator” (點選 Gii 首頁的連結)去建立 CRUD 功能。之前的 “country” 例子需要像這樣填寫表單:
appmodelsCountry
appmodelsCountrySearch
appcontrollersCountryController
然後點選 “Preview” 按鈕。你會看到下述將要生成的檔案列表。
[[NEED THE IMAGE HERE / 等待官方補充圖片]]
如果你之前建立過 controllers/CountryController.php
和 views/country/index.php
檔案(在指南的使用資料庫小節),選中 “overwrite” 下的核取方塊覆寫它們(之前的檔案沒能全部支援 CRUD)。
用瀏覽器存取下面的 URL 檢視生成程式碼的執行:
http://hostname/index.php?r=country/index
可以看到一個柵格顯示著從資料表中獲取的國家資料。支援在列頭對資料進行排序,輸入篩選條件進行篩選。
可以瀏覽詳情,編輯,或刪除柵格中的每個國家。還可以點選柵格上方的 “Create Country” 按鈕通過表單建立新國家。
下面列出由 Gii 生成的檔案,以便你研習功能和實現,或修改它們。
controllers/CountryController.php
models/Country.php
和 models/CountrySearch.php
views/country/*.php
補充:Gii 被設計成高度可客製化和可延伸的程式碼生成工具。使用它可以大幅提高應用開發速度。請參考 Gii 小節了解更多內容。
本章學習了如何使用 Gii 去生成為資料表中資料實現完整 CRUD 功能的程式碼。