為了對 yii 有個(gè)初步認(rèn)識,我們在本節(jié)講述如何建立第一個(gè) yii 應(yīng)用。我們將使用yiic(命令行工具)創(chuàng)建一個(gè)新的 yii 應(yīng)用。gii(強(qiáng)大的基于web的代碼生成器)為特定的任務(wù)完成自動代碼生成。假定yiiroot為 yii 的安裝目錄,webroot?是服務(wù)器的文檔根目錄。 在命令行運(yùn)行yiic,如下所示:
% YiiRoot/framework/yiic webapp WebRoot/testdrive
注意:?在 MacOS、Linux 或 Unix 系統(tǒng)中運(yùn)行yiic時(shí),你可能需要修改yiic文件的權(quán)限使它能夠運(yùn)行。而且必須在終端命令行中能夠直接執(zhí)行php命令(可在終端中使用php -v測試),如果不能的話需要將可執(zhí)行的php路徑置于系統(tǒng)路徑中。此外,也可以這樣運(yùn)行此工具:
% cd WebRoot % php YiiRoot/framework/yiic.php webapp testdrive
這將在?WebRoot/testdrive?目錄下建立一個(gè)最基本的 Yii 應(yīng)用。這個(gè)應(yīng)用擁有了大多數(shù) Yii 應(yīng)用所需要的目錄結(jié)構(gòu)。 不用寫一行代碼,我們可以在瀏覽器中訪問如下 URL 來看看我們第一個(gè) Yii 應(yīng)用:
http://miracleart.cn/
正如我們看到的,這個(gè)應(yīng)用包含三個(gè)頁面:首頁、聯(lián)系頁、登錄頁。首頁展示一些關(guān)于應(yīng)用和用戶登錄狀態(tài)的信息,聯(lián)系頁顯示一個(gè)聯(lián)系表單以便用戶填寫并提交他們的咨詢,登錄頁允許用戶先通過認(rèn)證然后訪問已授權(quán)的內(nèi)容。 查看下列截圖了解更多:
下面的樹圖描述了我們這個(gè)應(yīng)用的目錄結(jié)構(gòu):
testdrive/ index.php Web 應(yīng)用入口腳本文件 index-test.php 功能測試使用的入口腳本文件 assets/ 包含公開的資源文件 css/ 包含 CSS 文件 images/ 包含圖片文件 themes/ 包含應(yīng)用主題 protected/ 包含受保護(hù)的應(yīng)用文件 yiic yiic 命令行腳本 yiic.bat Windows 下的 yiic 命令行腳本 yiic.php yiic 命令行 PHP 腳本 commands/ 包含自定義的 'yiic' 命令 shell/ 包含自定義的 'yiic shell' 命令 components/ 包含可重用的用戶組件 Controller.php 所有控制器類的基礎(chǔ)類 Identity.php 用來認(rèn)證的 'Identity' 類 config/ 包含配置文件 console.php 控制臺應(yīng)用配置 main.php Web 應(yīng)用配置 test.php 功能測試使用的配置 controllers/ 包含控制器的類文件 SiteController.php 默認(rèn)控制器的類文件 data/ 包含示例數(shù)據(jù)庫 schema.mysql.sql 示例 MySQL 數(shù)據(jù)庫 schema.sqlite.sql 示例 SQLite 數(shù)據(jù)庫 testdrive.db 示例 SQLite 數(shù)據(jù)庫文件 extensions/ 包含第三方擴(kuò)展 messages/ 包含翻譯過的消息 models/ 包含模型的類文件 LoginForm.php 'login' 動作的表單模型 ContactForm.php 'contact' 動作的表單模型 runtime/ 包含臨時(shí)生成的文件 tests/ 包含測試腳本 views/ 包含控制器的視圖和布局文件 layouts/ 包含布局視圖文件 main.php 所有視圖的默認(rèn)布局 column1.php 使用單列頁面使用的布局 column2.php 使用雙列的頁面使用的布局 site/ 包含 'site' 控制器的視圖文件 pages/ 包含 "靜態(tài)" 頁面 about.php "about" 頁面的視圖 contact.php 'contact' 動作的視圖 error.php 'error' 動作的視圖(顯示外部錯誤) index.php 'index' 動作的視圖 login.php 'login' 動作的視圖 system/ 包含系統(tǒng)視圖文件
大多數(shù) Web 應(yīng)用由數(shù)據(jù)庫驅(qū)動,我們的測試應(yīng)用也不例外。要使用數(shù)據(jù)庫,我們首先需要告訴應(yīng)用如何連接它。修改應(yīng)用的配置文件WebRoot/testdrive/protected/config/main.php即可,如下所示:
return array( ...... 'components'=>array( ...... 'db'=>array( 'connectionString'=>'sqlite:protected/data/source.db', ), ), ...... );
上面的代碼告訴 Yii 應(yīng)用在需要時(shí)將連接到 SQLite 數(shù)據(jù)庫WebRoot/testdrive/protected/data/testdrive.db。注意這個(gè)SQLite 數(shù)據(jù)庫已經(jīng)包含在我們創(chuàng)建的應(yīng)用框架中。數(shù)據(jù)庫只包含一個(gè)名為tbl_user的表:
CREATE TABLE tbl_user ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, username VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, email VARCHAR(128) NOT NULL );
若你想要換成一個(gè) MySQL 數(shù)據(jù)庫,你需要導(dǎo)入文件WebRoot/testdrive/protected/data/schema.mysql.sql來建立數(shù)據(jù)庫。
注意:?要使用 Yii 的數(shù)據(jù)庫功能,我們需要啟用 PHP 的 PDO 擴(kuò)展和相應(yīng)的驅(qū)動擴(kuò)展。對于測試應(yīng)用來說,我們需要啟用php_pdo和php_pdo_sqlite擴(kuò)展。
激動人心的時(shí)刻來了。我們想要為剛才建立的tbl_user表實(shí)現(xiàn) CRUD (create, read, update 和 delete) 操作,這也是實(shí)際應(yīng)用中最常見的操作。我們無需麻煩地編寫實(shí)際代碼,這里我們將使用Gii?—— 一個(gè)強(qiáng)大的基于Web 的代碼生成器。
配置Gii
為了使用 Gii,首先需要編輯文件WebRoot/testdrive/protected/main.php,這是已知的?應(yīng)用配置?文件:
return array( ...... 'import'=>array( 'application.models.*', 'application.components.*', ), 'modules'=>array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'pick up a password here', ), ), );
然后,訪問http://miracleart.cn/。這里我們需要輸入密碼,它是在我們在上面的配置中指定的。
生成 User 模型
登陸后,點(diǎn)擊鏈接Model Generator。它將顯示下面的模型生成頁面:
在Table Name輸入框中,輸入tbl_user。在Model Class?輸入框中,輸入?User。然后點(diǎn)擊Preview按鈕。這里將展示將要生成的新文件?,F(xiàn)在點(diǎn)擊Generate按鈕。一個(gè)名為User.php將生成到protected/models目錄中。如我們稍后描述的,?User模型類允許我們以面向?qū)ο蟮姆绞絹碓L問數(shù)據(jù)表tbl_user。
生成 CRUD 代碼
在創(chuàng)建模型類之后,我們將生成執(zhí)行 CRUD 操作的代碼。我們選擇 Gii 中的Crud Generator,如下所示:
在Model Class輸入框中,輸入U(xiǎn)ser。在Controller ID輸入框中,輸入user(小寫格式)?,F(xiàn)在點(diǎn)擊Generate按鈕后的?Preview按鈕。CRUD 代碼生成完成了。
訪問 CRUD 頁面
讓我們看看成果,訪問如下 URL:
http://miracleart.cn/
這會顯示一個(gè)tbl_user表中記錄的列表。 點(diǎn)擊頁面上的Create User?鏈接,如果沒有登錄的話我們將被帶到登錄頁。登錄后,我們看到一個(gè)可供我們添加新用戶的表單。完成表單并點(diǎn)擊Create按鈕,如果有任何輸入錯誤的話,一個(gè)友好的錯誤提示將會顯示并阻止我們保存。回到用戶列表頁,我們應(yīng)該能看到剛才添加的用戶顯示在列表中。 重復(fù)上述步驟以添加更多用戶。注意,如果一頁顯示的用戶條目太多,列表頁會自動分頁。 如果我們使用admin/admin作為管理員登錄,我們可以在如下 URL 查看用戶管理頁:
http://miracleart.cn/
這會顯示一個(gè)包含用戶條目的漂亮表格。我們可以點(diǎn)擊表頭的單元格來對相應(yīng)的列進(jìn)行排序,而且它和列表頁一樣會自動分頁。 實(shí)現(xiàn)所有這些功能不要我們編寫一行代碼!
<br/>
以上就是Yii框架官方教程增補(bǔ)篇3——開始:創(chuàng)建第一個(gè)Yii應(yīng)用的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(miracleart.cn)!
每個(gè)人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進(jìn)程會占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號