国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 后端開(kāi)發(fā) php教程 PHP開(kāi)發(fā)框架Yii Framework教程(1) 第一個(gè)應(yīng)用Hello World

PHP開(kāi)發(fā)框架Yii Framework教程(1) 第一個(gè)應(yīng)用Hello World

Jan 21, 2017 am 09:24 AM

Yii Framework 教程可以參見(jiàn)官方中文文檔?,那么為什么還要寫(xiě)這個(gè)開(kāi)發(fā)教程呢? 本教程目的是通過(guò)不同的視角(主要是通過(guò)開(kāi)發(fā)Windows應(yīng)用C++,C#程序員的角度)幫助Windows 桌面應(yīng)用或ASP.NET程序員較快的掌握PHPYii Framework應(yīng)用程序框架。 使用PHP開(kāi)發(fā)Web應(yīng)用的一個(gè)重要好處是可以應(yīng)用于各種操作系統(tǒng)(Unix,Windows,Mac OS),而不像Asp.Net一般只能應(yīng)用中Windows操作系統(tǒng)上。使用PHP+Apache+MySQL(XMAP/LAMP) 幾乎可以打遍天下無(wú)敵手:-)。

本教程所使用的操作系統(tǒng)為Windows,開(kāi)發(fā)IDE為 VS.PHP,之所以使用這個(gè)開(kāi)發(fā)環(huán)境是因?yàn)閂S.PHP采用Visual Studio 作為IDE ,對(duì)于Visual Studio開(kāi)發(fā)人員比較熟悉。而且可以用來(lái)同時(shí)開(kāi)發(fā)調(diào)試C#,PHP應(yīng)用。 Yii Framework 本身和IDE無(wú)關(guān),你可以使用你喜歡的PHP開(kāi)發(fā)工具來(lái)開(kāi)發(fā)Yii 應(yīng)用(比如Eclipse)。關(guān)于VS.PHP的介紹可以參見(jiàn)?VS.PHP + YiiFramework 組合開(kāi)發(fā)PHP應(yīng)用。本教程關(guān)于Yii Framework知識(shí)也和開(kāi)發(fā)IDE無(wú)關(guān),可以應(yīng)用到各種開(kāi)發(fā)環(huán)境,你可以選擇你自己喜歡的開(kāi)發(fā)環(huán)境。

在創(chuàng)建第一個(gè)應(yīng)用之間,需要下載Yii 開(kāi)發(fā)包,下載可以到Y(jié)ii網(wǎng)站http://www.yiiframework.com/download/ 下載,目前版本為1.1.12, 下載后直接解壓,為方便起見(jiàn)將其解壓到C:根目錄下:

551.png


使用VS.PHP的還有一個(gè)好處是其自帶了Apache Web 服務(wù)器,因此無(wú)需另外安裝,你也可以安裝XAMP?(Apache+MySQL+PHP) ,但如需要使用MySQL,則另外需安裝MySQL.

安裝好Yii Framework之后,我們就使用VS.PHP來(lái)創(chuàng)建第一個(gè)PHP應(yīng)用,Hello World。

552.png

VS.PHP 創(chuàng)建HelloWorld項(xiàng)目,并添加一個(gè)index.php 文件。

此時(shí)修改index.php 為

<?php  
print "Hello, World!";  
  
?>
<?php  
print "Hello, World!";  
  
?>

按F5運(yùn)行程序,VS.PHP打開(kāi)確省瀏覽器,顯示“Hello,World!”. 但這不是一個(gè)Yii應(yīng)用?。?!,我們還沒(méi)有使用Yii Web應(yīng)用程序框架,Yii Framework是一個(gè)純面向?qū)ο蟮膽?yīng)用程序框架。其Web程序的Application類(lèi)為CWebApplication類(lèi)。并采用了MVC模型。

面的示意圖展示了 Yii 應(yīng)用的靜態(tài)結(jié)構(gòu)

553.png

下圖展示了一個(gè) Yii 應(yīng)用在處理用戶(hù)請(qǐng)求時(shí)典型的工作流

554.png

用戶(hù)發(fā)出了訪問(wèn) URL http://www.example.com/index.php?r=post/show&id=1 的請(qǐng)求, Web 服務(wù)器通過(guò)執(zhí)行入口腳本 index.php 處理此請(qǐng)求。

入口腳本創(chuàng)建了一個(gè) 應(yīng)用 實(shí)例并執(zhí)行。

應(yīng)用從一個(gè)叫做 request 的 應(yīng)用組件 中獲得了用戶(hù)請(qǐng)求的詳細(xì)信息。

應(yīng)用在一個(gè)名叫 urlManager 的應(yīng)用組件的幫助下,決定請(qǐng)求的 控制器 和 動(dòng)作 。在這個(gè)例子中,控制器是 post,它代表 PostController 類(lèi); 動(dòng)作是 show ,其實(shí)際含義由控制器決定。

應(yīng)用創(chuàng)建了一個(gè)所請(qǐng)求控制器的實(shí)例以進(jìn)一步處理用戶(hù)請(qǐng)求??刂破鳑Q定了動(dòng)作 show 指向控制器類(lèi)中的一個(gè)名為 actionShow 的方法。然后它創(chuàng)建并持行了與動(dòng)作關(guān)聯(lián)的過(guò)濾器(例如訪問(wèn)控制,基準(zhǔn)測(cè)試)。 如果過(guò)濾器允許,動(dòng)作將被執(zhí)行。

動(dòng)作從數(shù)據(jù)庫(kù)中讀取一個(gè) ID 為 1 的 Post 模型。

動(dòng)作通過(guò) Post 模型渲染一個(gè)名為 show 的 視圖。

視圖讀取并顯示 Post 模型的屬性。

視圖執(zhí)行一些 小物件。

視圖的渲染結(jié)果被插入一個(gè) 布局。

動(dòng)作完成視圖渲染并將其呈現(xiàn)給用戶(hù)。

Yii應(yīng)用本身有很多配置,比如確省的Controller ,action是否使用Log文件等。對(duì)于Hello,World這個(gè)簡(jiǎn)單的應(yīng)用,就全部使用缺省值。缺省的Controller為SiteController, Action為indexAction. 也就是說(shuō),比如你的網(wǎng)站為www.guidebee.com ,如果你采用Yii Framework, 用戶(hù)請(qǐng)求www.guidebee.com時(shí),Yii 應(yīng)用的CWebApplication 將創(chuàng)建類(lèi)SiteController的實(shí)例并調(diào)用SiteController的indexAction方法,(相當(dāng)于C# Console應(yīng)用的Program 的main方法)。

Yii 項(xiàng)目使用不同的目錄來(lái)存放Controller,Action,View,Layout等,其缺省目錄結(jié)構(gòu)如下

testdrive/
index.php Web 應(yīng)用入口腳本文件
index-test.php 功能測(cè)試使用的入口腳本文件
assets/ 包含公開(kāi)的資源文件
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/ 包含可重用的用戶(hù)組件
Controller.php 所有控制器類(lèi)的基礎(chǔ)類(lèi)
Identity.php 用來(lái)認(rèn)證的 'Identity' 類(lèi)
config/ 包含配置文件
console.php 控制臺(tái)應(yīng)用配置
main.php Web 應(yīng)用配置
test.php 功能測(cè)試使用的配置
controllers/ 包含控制器的類(lèi)文件
SiteController.php 默認(rèn)控制器的類(lèi)文件
data/ 包含示例數(shù)據(jù)庫(kù)
schema.mysql.sql 示例 MySQL 數(shù)據(jù)庫(kù)
schema.sqlite.sql 示例 SQLite 數(shù)據(jù)庫(kù)
testdrive.db 示例 SQLite 數(shù)據(jù)庫(kù)文件
extensions/ 包含第三方擴(kuò)展
messages/ 包含翻譯過(guò)的消息
models/ 包含模型的類(lèi)文件
LoginForm.php 'login' 動(dòng)作的表單模型
ContactForm.php 'contact' 動(dòng)作的表單模型
runtime/ 包含臨時(shí)生成的文件
tests/ 包含測(cè)試腳本
views/ 包含控制器的視圖和布局文件
layouts/ 包含布局視圖文件
main.php 所有視圖的默認(rèn)布局
column1.php 使用單列頁(yè)面使用的布局
column2.php 使用雙列的頁(yè)面使用的布局
site/ 包含 'site' 控制器的視圖文件
pages/ 包含 "靜態(tài)" 頁(yè)面
about.php "about" 頁(yè)面的視圖
contact.php 'contact' 動(dòng)作的視圖
error.php 'error' 動(dòng)作的視圖(顯示外部錯(cuò)誤)
index.php 'index' 動(dòng)作的視圖
login.php 'login' 動(dòng)作的視圖
system/ 包含系統(tǒng)視圖文件

這個(gè)目錄結(jié)構(gòu)可以通過(guò)Yii自帶的工具來(lái)創(chuàng)建缺省的文件建立第一個(gè) Yii 應(yīng)用。

對(duì)于Hello World項(xiàng)目來(lái)說(shuō),沒(méi)有必要這么復(fù)雜,我們只需創(chuàng)建 protected \controllers 目錄以存放SiteController.php。

每個(gè)Yii應(yīng)用都有的入口腳本,可以理解為C#的Program類(lèi)。這個(gè) 入口腳本大同小異

<?php  
  
// 包含Yii引導(dǎo)文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 發(fā)布應(yīng)用時(shí),去掉下面代碼避免產(chǎn)生調(diào)試信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 創(chuàng)建一個(gè)應(yīng)用實(shí)例并執(zhí)行  
  
Yii::createWebApplication()->run();
<?php  
  
// 包含Yii引導(dǎo)文件  
//require_once(dirname(__FILE__).&#39;/../../framework/yii.php&#39;);  
$yii=&#39;C:/yiiframework/yii.php&#39;;  
// 發(fā)布應(yīng)用時(shí),去掉下面代碼避免產(chǎn)生調(diào)試信息  
defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;,true);  
  
require_once($yii);  
// 創(chuàng)建一個(gè)應(yīng)用實(shí)例并執(zhí)行  
  
Yii::createWebApplication()->run();

前面說(shuō)過(guò)Yii的缺省Controller為SiteController,缺省Action為actionIndex, 因此HelloWorld的SiteController代碼如下

/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}
/** 
 * SiteController is the default controller to handle user requests. 
 */  
class SiteController extends CController  
{  
    /** 
     * Index action is the default action in a controller. 
     */  
    public function actionIndex()  
    {  
        echo &#39;Hello World&#39;;  
    }  
}

此時(shí)再運(yùn)行應(yīng)用,可以在瀏覽器中顯示“Hello,World”。 目前沒(méi)有使用MVC模型直接在Controller 使用echo 打印出“Hello,World”, 下面稍微修改一下代碼,創(chuàng)建一個(gè)簡(jiǎn)單的View。

View缺省目錄為protected 目錄下的views 子目錄,和Controller類(lèi)對(duì)于,比如SiteController對(duì)應(yīng)到Views目錄下的site子目錄,和Asp.Net一樣,Yii的View(對(duì)應(yīng)到Asp.Net的Page類(lèi))也可以使用MasterPage,Yii應(yīng)用成為L(zhǎng)ayout,缺省Layout存放在views的layouts 子目錄。

555.png

修改SiteController的actionIndex 方法,改為:

public function actionIndex()  
{  
 $this->render("index");  
}
public function actionIndex()  
{  
 $this->render("index");  
}

View 視圖是一個(gè)包含了主要的用戶(hù)交互元素的PHP腳本.他可以包含PHP語(yǔ)句,但是我們建議這些語(yǔ)句不要去改變數(shù)據(jù)模型,且最好能夠保持其單純性(單純作為視圖)。為了實(shí)現(xiàn)邏輯和界面分離,大段的邏輯應(yīng)該被放置于控制器或模型中,而不是視圖中,視圖有一個(gè)名字,當(dāng)渲染(render)時(shí),名字會(huì)被用于識(shí)別視圖腳本文件。

actionIndex 通過(guò)render 方法來(lái)顯示一個(gè)View,對(duì)應(yīng)到views->site 目錄下的 index.php 。render 缺省使用views ->layouts 下的 main.php 作為 Layout (布局,MasterPage)

布局是一種用來(lái)修飾視圖的特殊的視圖文件.它通常包含了用戶(hù)界面中通用的一部分視圖.例如:布局可以包含header和footer的部分,然后把內(nèi)容嵌入其間.

......header here......

......footer here......

其中的 $content 則儲(chǔ)存了內(nèi)容視圖的渲染結(jié)果.

來(lái)看一下View是目錄下的index.php (View) 代碼:

<?php echo "Hello,World!"; ?>
<?php echo "Hello,World!"; ?>

這樣就完成了Hello,World的MVC模型,運(yùn)行顯示“Hello,World”。

556.png

以上就是PHP開(kāi)發(fā)框架Yii Framework教程(1) 第一個(gè)應(yīng)用Hello World的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(miracleart.cn)!


本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話(huà)題

如何在 Windows 11/10 上使用 SetupDiag 識(shí)別 Windows 升級(jí)問(wèn)題 如何在 Windows 11/10 上使用 SetupDiag 識(shí)別 Windows 升級(jí)問(wèn)題 Apr 17, 2023 am 10:07 AM

每當(dāng)您的Windows11或Windows10PC出現(xiàn)升級(jí)或更新問(wèn)題時(shí),您通常會(huì)看到一個(gè)錯(cuò)誤代碼,指示故障背后的實(shí)際原因。但是,有時(shí),升級(jí)或更新失敗可能不會(huì)顯示錯(cuò)誤代碼,這時(shí)就會(huì)出現(xiàn)混淆。有了方便的錯(cuò)誤代碼,您就可以確切地知道問(wèn)題出在哪里,因此您可以嘗試修復(fù)。但是由于沒(méi)有出現(xiàn)錯(cuò)誤代碼,因此識(shí)別問(wèn)題并解決它變得極具挑戰(zhàn)性。這會(huì)占用您大量時(shí)間來(lái)簡(jiǎn)單地找出錯(cuò)誤背后的原因。在這種情況下,您可以嘗試使用Microsoft提供的名為SetupDiag的專(zhuān)用工具,該工具可幫助您輕松識(shí)別錯(cuò)誤背后的真

Microsoft NET Framework 安裝問(wèn)題 錯(cuò)誤代碼 0x800c0006 修復(fù) Microsoft NET Framework 安裝問(wèn)題 錯(cuò)誤代碼 0x800c0006 修復(fù) May 05, 2023 pm 04:01 PM

.NETFramework4是開(kāi)發(fā)人員和最終用戶(hù)在Windows上運(yùn)行最新版本的應(yīng)用程序所必需的。但是,在下載安裝.NETFramework4時(shí),許多用戶(hù)抱怨安裝程序在中途停止,顯示以下錯(cuò)誤消息-“?.NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006?”。在您的設(shè)備上安裝.NETFramework4時(shí),如果您也在體驗(yàn)它,那么您就來(lái)對(duì)了地方

SCNotification 已停止工作 [修復(fù)它的 5 個(gè)步驟] SCNotification 已停止工作 [修復(fù)它的 5 個(gè)步驟] May 17, 2023 pm 09:35 PM

作為Windows用戶(hù),您很可能會(huì)在每次啟動(dòng)計(jì)算機(jī)時(shí)遇到SCNotification已停止工作錯(cuò)誤。SCNotification.exe是一個(gè)微軟系統(tǒng)通知文件,由于權(quán)限錯(cuò)誤和點(diǎn)網(wǎng)故障等原因,每次啟動(dòng)PC時(shí)都會(huì)崩潰。此錯(cuò)誤也以其問(wèn)題事件名稱(chēng)而聞名。因此,您可能不會(huì)將其視為SCNotification已停止工作,而是將其視為錯(cuò)誤clr20r3。在本文中,我們將探討您需要采取的所有步驟來(lái)修復(fù)SCNotification已停止工作,以免它再次困擾您。什么是SCNotification.e

Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 將于 2022 年 4 月終止支持 Microsoft .NET Framework 4.5.2、4.6 和 4.6.1 將于 2022 年 4 月終止支持 Apr 17, 2023 pm 02:25 PM

已安裝Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用戶(hù)如果希望Microsoft將來(lái)通過(guò)產(chǎn)品更新支持該框架,則必須安裝較新版本的Microsoft框架。據(jù)微軟稱(chēng),這三個(gè)框架都將在2022年4月26日停止支持。支持日期結(jié)束后,產(chǎn)品將不會(huì)收到“安全修復(fù)或技術(shù)支持”。大多數(shù)家庭設(shè)備通過(guò)Windows更新保持最新。這些設(shè)備已經(jīng)安裝了較新版本的框架,例如.NETFramework4.8。未自動(dòng)更新的設(shè)備可能

Yii2 vs Phalcon:哪個(gè)框架更適合開(kāi)發(fā)顯卡渲染應(yīng)用? Yii2 vs Phalcon:哪個(gè)框架更適合開(kāi)發(fā)顯卡渲染應(yīng)用? Jun 19, 2023 am 08:09 AM

在當(dāng)前信息時(shí)代,大數(shù)據(jù)、人工智能、云計(jì)算等技術(shù)已經(jīng)成為了各大企業(yè)關(guān)注的熱點(diǎn)。在這些技術(shù)中,顯卡渲染技術(shù)作為一種高性能圖形處理技術(shù),受到了越來(lái)越多的關(guān)注。顯卡渲染技術(shù)被廣泛應(yīng)用于游戲開(kāi)發(fā)、影視特效、工程建模等領(lǐng)域。而對(duì)于開(kāi)發(fā)者來(lái)說(shuō),選擇一個(gè)適合自己項(xiàng)目的框架,是一個(gè)非常重要的決策。在當(dāng)前的語(yǔ)言中,PHP是一種頗具活力的語(yǔ)言,一些優(yōu)秀的PHP框架如Yii2、Ph

為什么Yii框架比其他框架更好用? 為什么Yii框架比其他框架更好用? Jun 21, 2023 am 10:30 AM

Yii框架是一個(gè)高性能、可擴(kuò)展、安全的PHP框架。它是一個(gè)優(yōu)秀的開(kāi)發(fā)工具,能夠讓開(kāi)發(fā)者快速高效地構(gòu)建復(fù)雜的Web應(yīng)用程序。以下是幾個(gè)原因,讓Yii框架比其他框架更好用。高性能Yii框架使用了一些先進(jìn)的技術(shù),例如,延遲加載(lazyloading)和自動(dòng)加載機(jī)制(automaticclassloading),這使得Yii框架的性能高于許多其他框架。它還提

適用于 Windows 11 的KB5012643破壞了.NET Framework 3.5應(yīng)用程序 適用于 Windows 11 的KB5012643破壞了.NET Framework 3.5應(yīng)用程序 May 09, 2023 pm 01:07 PM

自我們談?wù)撚绊懓惭bKB5012643forWindows11的用戶(hù)的新安全模式錯(cuò)誤以來(lái)已經(jīng)過(guò)去了一周。這個(gè)討厭的問(wèn)題并沒(méi)有出現(xiàn)在微軟在發(fā)布當(dāng)天發(fā)布的已知問(wèn)題列表中,因此讓所有人都感到意外。好吧,就在您認(rèn)為情況不會(huì)變得更糟的時(shí)候,微軟為安裝此累積更新的用戶(hù)投下了另一顆炸彈。Windows11Build22000.652導(dǎo)致更多問(wèn)題因此,這家科技公司警告Windows11用戶(hù),他們?cè)趩?dòng)和使用某些.NETFramework3.5應(yīng)用程序時(shí)可能會(huì)遇到問(wèn)題。聽(tīng)起來(lái)很熟悉?不過(guò)請(qǐng)不要驚

Yii框架中的數(shù)據(jù)查詢(xún):高效地訪問(wèn)數(shù)據(jù) Yii框架中的數(shù)據(jù)查詢(xún):高效地訪問(wèn)數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個(gè)開(kāi)源的PHPWeb應(yīng)用程序框架,提供了眾多的工具和組件,簡(jiǎn)化了Web應(yīng)用程序開(kāi)發(fā)的流程,其中數(shù)據(jù)查詢(xún)是其中一個(gè)重要的組件之一。在Yii框架中,我們可以使用類(lèi)似SQL的語(yǔ)法來(lái)訪問(wèn)數(shù)據(jù)庫(kù),從而高效地查詢(xún)和操作數(shù)據(jù)。Yii框架的查詢(xún)構(gòu)建器主要包括以下幾種類(lèi)型:ActiveRecord查詢(xún)、QueryBuilder查詢(xún)、命令查詢(xún)和原始SQL查詢(xún)

See all articles