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

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

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

Jan 21, 2017 am 09:24 AM

Yii Framework 教學可以參考官方中文文件?,那為什麼還要寫這個開發(fā)教學呢? 本教學目的是透過不同的視角(主要是透過開發(fā)Windows應(yīng)用C++,C#程式設(shè)計師的角度)來幫助Windows 桌面應(yīng)用或ASP.NET程式設(shè)計師較快的掌握PHPYii Framework應(yīng)用程式框架。 使用PHP開發(fā)Web應(yīng)用的一個重要好處是可以應(yīng)用於各種作業(yè)系統(tǒng)(Unix,Windows,Mac OS),而不像Asp.Net一般只能應(yīng)用在Windows作業(yè)系統(tǒng)上。使用PHP+Apache+MySQL(XMAP/LAMP) 幾乎可以打遍天下無敵手:-)。

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

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

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


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

安裝好Yii Framework之後,我們就使用VS.PHP來建立第一個PHP應(yīng)用,Hello World。

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

VS.PHP 建立HelloWorld項目,並新增一個index.php 檔案。

此時修改index.php 為

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

按F5運行程序,VS.PHP打開確省瀏覽器,顯示“Hello,World!”. 但這不是一個Yii應(yīng)用! ! ! ,我們還沒有使用Yii Web應(yīng)用程式框架,Yii Framework是一個純粹物件導向的應(yīng)用程式框架。其Web程式的Application類別為CWebApplication類別。並採用了MVC模型。

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

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

下圖展示了一個Yii 應(yīng)用在處理用戶請求時典型的工作流程

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

.example.com/index.php?r=post/show&id=1 的請求, Web 伺服器透過執(zhí)行入口腳本index.php 處理此請求。

入口腳本建立了一個 應(yīng)用 實例並執(zhí)行。

應(yīng)用程式從一個稱為 request 的 應(yīng)用元件 中獲得了使用者請求的詳細資訊。

應(yīng)用在一個名叫 urlManager 的應(yīng)用元件的幫助下,決定要求的 控制器 和 動作 。在這個例子中,控制器是 post,它代表 PostController 類別; 動作是 show ,其實際意義由控制器決定。

應(yīng)用程式建立了一個所請求控制器的實例以進一步處理使用者請求。控制器決定了動作 show 指向控制器類別中的一個名為 actionShow 的方法。然後它創(chuàng)建並持行了與動作關(guān)聯(lián)的過濾器(例如存取控制,基準測試)。 如果過濾器允許,動作將被執(zhí)行。

動作從資料庫讀取一個 ID 為 1 的 Post 模型。

動作透過 Post 模型渲染一個名為 show 的 視圖。

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

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

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

動作完成視圖渲染並呈現(xiàn)給使用者。

Yii應(yīng)用程式本身有很多配置,例如確診的Controller ,action是否使用Log檔等。對於Hello,World這個簡單的應(yīng)用,就全部使用預(yù)設(shè)值。預(yù)設(shè)的Controller為SiteController, Action為indexAction. ?也就是說,例如你的網(wǎng)站為www.guidebee.com ?,如果你採用Yii Framework, 用戶請求www.guidebee.com時,Yii 應(yīng)用的CWebApplication 將創(chuàng)建類SiteController的實例並呼叫SiteController的indexAction方法,(相當於C# Console所應(yīng)用的Program 的main方法)。

Yii 專案使用不同的目錄來存放Controller,Action,View,Layout等,其預(yù)設(shè)目錄結(jié)構(gòu)如下

testdrive/
? index.php ? ? ? ? ? ? ? ? Web 應(yīng)用入口腳本檔案
? index-test.php ? ? ? ?? 包含公開的資源文件
? css/ ? ? ? ? ? ? ? ? ? ? ?包含CSS 檔案
? images/ ? ?? ? ? ? 包含應(yīng)用主詞
? protected/ ? ? ? ? ? ? ? ?包含受保護的應(yīng)用檔案
? ? ?yiic ? ? ? ? ??? ? ? Windows 下的yiic 命令列腳本
? ? ?yiic.php ? ? ? ? ? ? ? yiic 命令列PHP 腳本
??? ? shell/包含自訂的'yiic shell' 指令
? ? ?components/ ? ? ? ? ? ?包含可重複使用的使用者元件
? ? ? ? Controller.php?用來認證的'Identity' 類別
? ? ?config/ ? ? ? ? ? ? ? ?包含設(shè)定檔
? ? ? ? console. php ? ? ? ? 控制臺應(yīng)用設(shè)定
? ? ? ? main.php ? ? ? ? ? ?Web 應(yīng)用設(shè)定 ? ? ??? ? ? ? ? 包含控制器的類別檔案
? ? ? ? SiteController.php ?預(yù)設(shè)控制器的類別檔案
? ? ?data/ ? ? ?.sql ? ?範例MySQL 資料庫
? ? ? ? schema.sqlite.sql ? 範例SQLite 資料庫
? ? ? ? testdrive.db ? ?第三方擴充
? ? ?messages/ ? ? ? ? ? ? ?login' 動作的表單模型
? ? ? ? ContactForm.php ? ? 'contact' 動作的表單模型
? ? ?runtime/ ? ? ??? ? ? 包含測試腳本
? ? ?views/ ? ? ? ? ? ? ? ? 包含控制器的檢視與版面配置檔案
? ? ?? layouts/ ?main.php ? ? ? ? 所有視圖的預(yù)設(shè)佈局
? ? ? ? ? ?column1.php ? ? ?使用單列頁面使用的佈局
? ?? ??使用單列頁面使用的佈局
? ?? ??? site/ ? ? ? ? ? ? ? 包含'site' 控制器的視圖檔案
? ? ? ? ? ?pages/ ? ? ? ? ? 包含在靜態(tài)中」頁
? ? ? ? ? ? ? about.php ? ? "about" 頁面的檢視
? ? ? ? ? ?contact. ???'error' 動作的視野(顯示外在錯誤)
? ? ? ? ? ?index.php ? ? ? ?'index' 動作的觀點
? ? ?login' 動作的視圖
? ? ? ? system/ ? ? ? ? ? ? 包含系統(tǒng)檢視檔案

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

對于Hello World項目來說,沒有必要這么復雜,我們只需創(chuàng)建 protected \controllers 目錄以存放SiteController.php。

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

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

前面說過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;;  
    }  
}

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

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

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

修改SiteController的actionIndex 方法,改為:

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

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

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

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

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

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

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

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

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

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

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

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


本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應(yīng)的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在 Windows 11/10 上使用 SetupDiag 識別 Windows 升級問題 如何在 Windows 11/10 上使用 SetupDiag 識別 Windows 升級問題 Apr 17, 2023 am 10:07 AM

每當您的Windows11或Windows10PC出現(xiàn)升級或更新問題時,您通常會看到一個錯誤代碼,指示故障背後的實際原因。但是,有時,升級或更新失敗可能不會顯示錯誤代碼,這時就會混淆。有了方便的錯誤代碼,您可以確切地知道問題出在哪裡,因此您可以嘗試修復。但是由於沒有出現(xiàn)錯誤代碼,因此識別問題並解決它變得極具挑戰(zhàn)性。這會佔用您大量時間來簡單地找出錯誤背後的原因。在這種情況下,您可以嘗試使用Microsoft提供的名為SetupDiag的專用工具,該工具可協(xié)助您輕鬆識別錯誤背後的真

Microsoft NET Framework 安裝問題 錯誤代碼 0x800c0006 修復 Microsoft NET Framework 安裝問題 錯誤代碼 0x800c0006 修復 May 05, 2023 pm 04:01 PM

.NETFramework4是開發(fā)人員和最終使用者在Windows上執(zhí)行最新版本的應(yīng)用程式所必需的。但是,在下載安裝.NETFramework4時,許多用戶抱怨安裝程式在中途停止,顯示以下錯誤訊息-「?.NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006?」。在您的裝置上安裝.NETFramework4時,如果您也在體驗它,那麼您就來對了地方

SCNotification 已停止運作 [修復它的 5 個步驟] SCNotification 已停止運作 [修復它的 5 個步驟] May 17, 2023 pm 09:35 PM

身為Windows用戶,您很可能會在每次啟動電腦時遇到SCNotification已停止工作錯誤。 SCNotification.exe是一個微軟系統(tǒng)通知文件,由於權(quán)限錯誤和點網(wǎng)故障等原因,每次啟動PC時都會崩潰。此錯誤也以其問題事件名稱而聞名。因此,您可能不會將其視為SCNotification已停止工作,而是將其視為錯誤clr20r3。在本文中,我們將探討您需要採取的所有步驟來修復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用戶如果希望Microsoft將來透過產(chǎn)品更新支援該框架,則必須安裝較新版本的Microsoft框架。據(jù)微軟稱,這三個框架都將在2022年4月26日停止支援。支援日期結(jié)束後,產(chǎn)品將不會收到「安全修復或技術(shù)支援」。大多數(shù)家庭設(shè)備透過Windows更新保持最新。這些設(shè)備已經(jīng)安裝了較新版本的框架,例如.NETFramework4.8。未自動更新的設(shè)備可能

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

在當前資訊時代,大數(shù)據(jù)、人工智慧、雲(yún)端運算等技術(shù)已成為了各大企業(yè)關(guān)注的熱點。在這些技術(shù)中,顯示卡渲染技術(shù)作為一種高效能圖形處理技術(shù),受到了越來越多的關(guān)注。顯示卡渲染技術(shù)廣泛應(yīng)用於遊戲開發(fā)、影視特效、工程建模等領(lǐng)域。而對於開發(fā)者來說,選擇一個適合自己專案的框架,是一個非常重要的決策。在目前的語言中,PHP是一種相當有活力的語言,一些優(yōu)秀的PHP框架如Yii2、Ph

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

Yii框架是一個高效能、可擴充、安全的PHP框架。它是一個優(yōu)秀的開發(fā)工具,能夠讓開發(fā)者快速且有效率地建立複雜的Web應(yīng)用程式。以下是幾個原因,讓Yii框架比其他框架更好用。高效能Yii框架使用了一些先進的技術(shù),例如,延遲載入(lazyloading)和自動載入機制(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的用戶的新安全模式錯誤以來已經(jīng)過去了一周。這個討厭的問題並沒有出現(xiàn)在微軟在發(fā)布當天發(fā)布的已知問題清單中,因此讓所有人都感到驚訝。好吧,就在您認為情況不會變得更糟的時候,微軟為安裝此累積更新的用戶投下了另一顆炸彈。 Windows11Build22000.652導致更多問題因此,這家科技公司警告Windows11用戶,他們在啟動和使用某些.NETFramework3.5應(yīng)用程式時可能會遇到問題。聽起來很熟悉?不過請不要驚

Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個開源的PHPWeb應(yīng)用程式框架,提供了眾多的工具和元件,簡化了Web應(yīng)用程式開發(fā)的流程,其中資料查詢是其中一個重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構(gòu)器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

See all articles