成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Yii 的修行之路 - HTTP的請(qǐng)求與響應(yīng)

import. / 3283人閱讀

摘要:簡(jiǎn)述交互主要分為請(qǐng)求和響應(yīng)兩種方式。狀態(tài)碼構(gòu)建響應(yīng)時(shí),最先應(yīng)做的是標(biāo)識(shí)請(qǐng)求是否成功處理的狀態(tài),可通過(guò)設(shè)置屬性,該屬性使用一個(gè)有效的狀態(tài)碼。

簡(jiǎn)述

HTTP交互主要分為 request(請(qǐng)求) 和 response(響應(yīng)) 兩種方式。

對(duì)于Yii2來(lái)說(shuō),HTTP的request請(qǐng)求是用 YII::$app->request 來(lái)表示的對(duì)象,這是Yii提供的處理HTTP的request請(qǐng)求的插件,里面有很多實(shí)用的功能代碼:

request;
        if ($request->isGet) {
            echo $request->get("id", "get獲取的值為空");
        } else if ($request->isPost) {
            $request->post("name", "post傳遞的值為空");
        }   
        echo $request->userIp; // 獲取當(dāng)前IP地址
?>

對(duì)于Yii2來(lái)說(shuō),HTTP的response請(qǐng)求是用 YII::$app->response 來(lái)表示的對(duì)象,這是Yii提供的處理HTTP的response請(qǐng)求的插件,里面與很多實(shí)用的功能代碼:

response;
        // 設(shè)置服務(wù)器返回的狀態(tài)碼設(shè)置
        $response->statusCode = "404";
        // 設(shè)置pragma的設(shè)置,提醒瀏覽器不設(shè)置緩存
        $response->headers->add("pragma", "no-chche");
        // 設(shè)置pragma的設(shè)置,提醒瀏覽器設(shè)置緩存5秒
        $response->headers->set("pragma", "max-age=5");
        $response->headers->remove("pragma");
        // 設(shè)置頁(yè)面跳轉(zhuǎn)到指定路徑
        $response->headers->add("location", "https://rongx.github.io");
        // 設(shè)置頁(yè)面跳轉(zhuǎn),狀態(tài)碼設(shè)置為302(調(diào)用Controller里面的方法)
        $this->redirect("https://rongx.github.io", 302);
        // 設(shè)置文件下載鏈接
        $response->headers->add("content-dispostion", "attachment; filename="a.jpg"");
        // 提供文件下載,文件路徑實(shí)相對(duì)與入口文件來(lái)說(shuō)的
        $response->sendFile("./b.jpg");
?>

其實(shí)在 yiiwebController 里面也有很多處理HTTP的小插件功能代碼。

請(qǐng)求參數(shù)(request)

要獲取請(qǐng)求參數(shù),你可以調(diào)用 request 組件的 yiiwebRequest::get() 方法和 yiiwebRequest::post() 方法。他們分別返回 $_GET 和$_POST 的值。

$request = Yii::$app->request;

$get = $request->get(); 
// 等價(jià)于: $get = $_GET;

$id = $request->get("id");   
// 等價(jià)于: $id = isset($_GET["id"]) ? $_GET["id"] : null;

$id = $request->get("id", 1);   
// 等價(jià)于: $id = isset($_GET["id"]) ? $_GET["id"] : 1;

$post = $request->post(); 
// 等價(jià)于: $post = $_POST;

$name = $request->post("name");   
// 等價(jià)于: $name = isset($_POST["name"]) ? $_POST["name"] : null;

$name = $request->post("name", "");   
// 等價(jià)于: $name = isset($_POST["name"]) ? $_POST["name"] : "";

信息:建議你像上面那樣通過(guò) request 組件來(lái)獲取請(qǐng)求參數(shù),而不是 直接訪問 $_GET 和 $_POST。

信息:這使你更容易編寫測(cè)試用例,因?yàn)槟憧梢詡卧鞌?shù)據(jù)來(lái)創(chuàng)建一個(gè)模擬請(qǐng)求組件。

當(dāng)實(shí)現(xiàn) RESTful APIs 接口的時(shí)候,你經(jīng)常需要獲取通過(guò)PUT, PATCH或者其他的 request methods 請(qǐng)求方法提交上來(lái)的參數(shù)。

你可以通過(guò)調(diào)用 yiiwebRequest::getBodyParam() 方法來(lái)獲取這些參數(shù)。例如:

$request = Yii::$app->request; // 返回所有參數(shù) 
$params = $request->bodyParams; // 返回參數(shù) "id"
$param = $request->getBodyParam("id");

信息:不同于 GET 參數(shù),POST,PUT,PATCH 等等這些提交上來(lái)的參數(shù)是在請(qǐng)求體中被發(fā)送的。

信息:當(dāng)你通過(guò)上面介紹的方法訪問這些參數(shù)的時(shí)候,request 組件會(huì)解析這些參數(shù)。

信息:你可以通過(guò)配置 yiiwebRequest::parsers 屬性來(lái)自定義怎樣解析這些參數(shù)。

請(qǐng)求方法(request)

你可以通過(guò) request 表達(dá)式來(lái)獲取當(dāng)前請(qǐng)求使用的HTTP方法。

這里還提供了一整套布爾屬性用于檢測(cè)當(dāng)前請(qǐng)求是某種類型。例如:

$request = Yii::$app->request;

if ($request->isAjax) { /* 該請(qǐng)求是一個(gè) AJAX 請(qǐng)求 */ }
if ($request->isGet)  { /* 請(qǐng)求方法是 GET */ }
if ($request->isPost) { /* 請(qǐng)求方法是 POST */ }
if ($request->isPut)  { /* 請(qǐng)求方法是 PUT */ }
請(qǐng)求URLs(request)

request 組件提供了許多方式來(lái)檢測(cè)當(dāng)前請(qǐng)求的URL。

假設(shè)被請(qǐng)求的URL是 http://example.com/admin/index.php/product?id=100, 你可以像下面描述的那樣獲取URL的各個(gè)部分:

yiiwebRequest::url:返回 /admin/index.php/product?id=100, 此URL不包括host info部分。

yiiwebRequest::absoluteUrl:返回 http://example.com/admin/index.php/product?id=100, 包含host infode的整個(gè)URL。

yiiwebRequest::hostInfo:返回 http://example.com, 只有host info部分。

yiiwebRequest::pathInfo:返回 /product, 這個(gè)是入口腳本之后,問號(hào)之前(查詢字符串)的部分。

yiiwebRequest::queryString:返回 id=100,問號(hào)之后的部分。

yiiwebRequest::baseUrl:返回 /admin, host info之后, 入口腳本之前的部分。

yiiwebRequest::scriptUrl:返回 /admin/index.php, 沒有path info和查詢字符串部分。

yiiwebRequest::serverName:返回 example.com, URL中的host name。

yiiwebRequest::serverPort:返回 80, 這是web服務(wù)中使用的端口。

HTTP頭(request)

你可以通過(guò) yiiwebRequest::headers 屬性返回的 yiiwebHeaderCollection 獲取HTTP頭信息。 例如:

// $headers 是一個(gè) yiiwebHeaderCollection 對(duì)象
$headers = Yii::$app->request->headers;

// 返回 Accept header 值
$accept = $headers->get("Accept");

if ($headers->has("User-Agent")) { /* 這是一個(gè) User-Agent 頭 */ }

請(qǐng)求組件也提供了支持快速訪問常用頭的方法,包括:

yiiwebRequest::userAgent:返回 User-Agent 頭。

yiiwebRequest::contentType:返回 Content-Type 頭的值, Content-Type 是請(qǐng)求體中MIME類型數(shù)據(jù)。

yiiwebRequest::acceptableContentTypes:返回用戶可接受的內(nèi)容MIME類型。 返回的類型是按照他們的質(zhì)量得分來(lái)排序的。得分最高的類型將被最先返回。

yiiwebRequest::acceptableLanguages:返回用戶可接受的語(yǔ)言。 返回的語(yǔ)言是按照他們的偏好層次來(lái)排序的。第一個(gè)參數(shù)代表最優(yōu)先的語(yǔ)言。

假如你的應(yīng)用支持多語(yǔ)言,并且你想在終端用戶最喜歡的語(yǔ)言中顯示頁(yè)面,那么你可以使用語(yǔ)言協(xié)商方法 yiiwebRequest::getPreferredLanguage()。

這個(gè)方法通過(guò) yiiwebRequest::acceptableLanguages 在你的應(yīng)用中所支持的語(yǔ)言列表里進(jìn)行比較篩選,返回最適合的語(yǔ)言。

提示:你也可以使用 yiifiltersContentNegotiator 過(guò)濾器進(jìn)行動(dòng)態(tài)確定哪些內(nèi)容類型和語(yǔ)言應(yīng)該在響應(yīng)中使用。
這個(gè)過(guò)濾器實(shí)現(xiàn)了上面介紹的內(nèi)容協(xié)商的屬性和方法。

客戶端信息(request)

你可以通過(guò) yiiwebRequest::userHost 和 yiiwebRequest::userIP 分別獲取host name和客戶機(jī)的IP地址, 例如,

$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;
響應(yīng)(response)

當(dāng)應(yīng)用完成處理一個(gè)請(qǐng)求后, 會(huì)生成一個(gè)yiiwebResponse響應(yīng)對(duì)象并發(fā)送給終端用戶 響應(yīng)對(duì)象包含的信息有HTTP狀態(tài)碼,HTTP頭和主體內(nèi)容等。

網(wǎng)頁(yè)應(yīng)用開發(fā)的最終目的本質(zhì)上就是根據(jù)不同的請(qǐng)求構(gòu)建這些響應(yīng)對(duì)象。

在大多是情況下主要處理繼承自 yiiwebResponse 的 response 應(yīng)用組件, 盡管如此,Yii也允許你創(chuàng)建你自己的響應(yīng)對(duì)象并發(fā)送給終端用戶。

狀態(tài)碼

構(gòu)建響應(yīng)時(shí),最先應(yīng)做的是標(biāo)識(shí)請(qǐng)求是否成功處理的狀態(tài),可通過(guò)設(shè)置 yiiwebResponse::statusCode 屬性,該屬性使用一個(gè)有效的HTTP 狀態(tài)碼。

例如,為標(biāo)識(shí)處理已被處理成功, 可設(shè)置狀態(tài)碼為200,如下所示:

Yii::$app->response->statusCode = 200;

盡管如此,大多數(shù)情況下不需要明確設(shè)置狀態(tài)碼,因?yàn)?yiiwebResponse::statusCode 狀態(tài)碼默認(rèn)為200, 如果需要指定請(qǐng)求失敗,可拋出對(duì)應(yīng)的HTTP異常,如下所示:

throw new yiiwebNotFoundHttpException;

當(dāng)錯(cuò)誤處理器 捕獲到一個(gè)異常,會(huì)從異常中提取狀態(tài)碼并賦值到響應(yīng), 對(duì)于上述的 yiiwebNotFoundHttpException 對(duì)應(yīng)HTTP 404狀態(tài)碼,以下為Yii預(yù)定義的HTTP異常:

yiiwebBadRequestHttpException: status code 400.

yiiwebConflictHttpException: status code 409.

yiiwebForbiddenHttpException: status code 403.

yiiwebGoneHttpException: status code 410.

yiiwebMethodNotAllowedHttpException: status code 405.

yiiwebNotAcceptableHttpException: status code 406.

yiiwebNotFoundHttpException: status code 404.

yiiwebServerErrorHttpException: status code 500.

yiiwebTooManyRequestsHttpException: status code 429.

yiiwebUnauthorizedHttpException: status code 401.

yiiwebUnsupportedMediaTypeHttpException: status code 415.

如果想拋出的異常不在如上列表中,可創(chuàng)建一個(gè)yiiwebHttpException異常,帶上狀態(tài)碼拋出,如下:

throw new yiiwebHttpException(402);
HTTP 頭部

可在 response 組件中操控yiiwebResponse::headers來(lái)發(fā)送HTTP頭部信息,例如:

$headers = Yii::$app->response->headers;

// 增加一個(gè) Pragma 頭,已存在的Pragma 頭不會(huì)被覆蓋。
$headers->add("Pragma", "no-cache");

// 設(shè)置一個(gè)Pragma 頭. 任何已存在的Pragma 頭都會(huì)被丟棄
$headers->set("Pragma", "no-cache");

// 刪除Pragma 頭并返回刪除的Pragma 頭的值到數(shù)組
$values = $headers->remove("Pragma");

補(bǔ)充: 頭名稱是大小寫敏感的,在yiiwebResponse::send()方法調(diào)用前新注冊(cè)的頭信息并不會(huì)發(fā)送給用戶。

響應(yīng)主體

大多是響應(yīng)應(yīng)有一個(gè)主體存放你想要顯示給終端用戶的內(nèi)容。

如果已有格式化好的主體字符串,可賦值到響應(yīng)的yiiwebResponse::content屬性,例如:

Yii::$app->response->content = "hello world!";

如果在發(fā)送給終端用戶之前需要格式化,應(yīng)設(shè)置 yiiwebResponse::format 和 yiiwebResponse::data 屬性。

yiiwebResponse::format 屬性指定 yiiwebResponse::data 中數(shù)據(jù)格式化后的樣式,例如:

$response = Yii::$app->response; 
$response->format = yiiwebResponse::FORMAT_JSON; 
$response->data = ["message" => "helloworld"];

Yii支持以下可直接使用的格式,每個(gè)實(shí)現(xiàn)了 yiiwebResponseFormatterInterface 類, 可自定義這些格式器或通過(guò)配置 yiiwebResponse::formatters 屬性來(lái)增加格式器。

yiiwebResponse::FORMAT_HTML: 通過(guò) yiiwebHtmlResponseFormatter 來(lái)實(shí)現(xiàn).

yiiwebResponse::FORMAT_XML: 通過(guò) yiiwebXmlResponseFormatter來(lái)實(shí)現(xiàn).

yiiwebResponse::FORMAT_JSON: 通過(guò) yiiwebJsonResponseFormatter來(lái)實(shí)現(xiàn).

yiiwebResponse::FORMAT_JSONP: 通過(guò) yiiwebJsonResponseFormatter來(lái)實(shí)現(xiàn).

上述響應(yīng)主體可明確地被設(shè)置,但是在大多數(shù)情況下是通過(guò) 操作 方法的返回值隱式地設(shè)置,常用場(chǎng)景如下所示:

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

上述的 index 操作返回 index 視圖渲染結(jié)果,返回值會(huì)被 response 組件格式化后發(fā)送給終端用戶。

因?yàn)轫憫?yīng)格式默認(rèn)為 yiiwebResponse::FORMAT_HTML, 只需要在操作方法中返回一個(gè)字符串, 如果想使用其他響應(yīng)格式,應(yīng)在返回?cái)?shù)據(jù)前先設(shè)置格式,例如:

public function actionInfo(){ 
    Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; 
    return [ 
        "message" => "hello world", "code" => 100, 
    ]; 
}

如上所述,觸雷使用默認(rèn)的 response 應(yīng)用組件,也可創(chuàng)建自己的響應(yīng)對(duì)象并發(fā)送給終端用戶,可在操作方法中返回該響應(yīng)對(duì)象,如下所示:

public function actionInfo(){ 
    return Yii::createObject([ 
        "class" => "yiiwebResponse", 
        "format" => yiiwebResponse::FORMAT_JSON, 
        "data" => [ "message" => "hello world", "code" => 100, ], 
    ]); 
}

注意: 如果創(chuàng)建你自己的響應(yīng)對(duì)象,將不能在應(yīng)用配置中設(shè)置 response 組件,盡管如此, 可使用 依賴注入應(yīng)用通用配置到你新的響應(yīng)對(duì)象。

瀏覽器跳轉(zhuǎn)

瀏覽器跳轉(zhuǎn)依賴于發(fā)送一個(gè)Location HTTP 頭,因?yàn)樵摴δ芡ǔ1皇褂?,Yii提供對(duì)它提供了特別的支持。

可調(diào)用 yiiwebResponse::redirect() 方法將用戶瀏覽器跳轉(zhuǎn)到一個(gè)URL地址。

該方法設(shè)置合適的 帶指定URL的 Location 頭并返回它自己為響應(yīng)對(duì)象,在操作的方法中,可調(diào)用縮寫版 yiiwebController::redirect(),例如:

public function actionOld(){ 
    return $this->redirect("http://example.com/new", 301); 
}

在如上代碼中,操作的方法返回redirect() 方法的結(jié)果,如前所述,操作的方法返回的響應(yīng)對(duì)象會(huì)被當(dāng)總響應(yīng)發(fā)送給終端用戶。

除了操作方法外,可直接調(diào)用 yiiwebResponse::redirect() 再調(diào)用 yiiwebResponse::send() 方法來(lái)確保沒有其他內(nèi)容追加到響應(yīng)中。

Yii::$app->response->redirect("http://example.com/new", 301)->send();

補(bǔ)充: yiiwebResponse::redirect() 方法默認(rèn)會(huì)設(shè)置響應(yīng)狀態(tài)碼為302,該狀態(tài)碼會(huì)告訴瀏覽器請(qǐng)求的資源 臨時(shí) 放在另一個(gè)URI地址上,可傳遞一個(gè)301狀態(tài)碼告知瀏覽器請(qǐng)求的資源已經(jīng) 永久 重定向到新的URId地址。

如果當(dāng)前請(qǐng)求為AJAX 請(qǐng)求,發(fā)送一個(gè) Location 頭不會(huì)自動(dòng)使瀏覽器跳轉(zhuǎn),為解決這個(gè)問題, yiiwebResponse::redirect() 方法設(shè)置一個(gè)值為要跳轉(zhuǎn)的URL的X-Redirect 頭, 在客戶端可編寫JavaScript 代碼讀取該頭部值然后讓瀏覽器跳轉(zhuǎn)對(duì)應(yīng)的URL。

補(bǔ)充: Yii 配備了一個(gè)yii.js JavaScript 文件提供常用JavaScript功能,包括基于X-Redirect頭的瀏覽器跳轉(zhuǎn), 因此,如果你使用該JavaScript 文件( 通過(guò)yiiwebYiiAsset 資源包注冊(cè)),就不需要編寫AJAX跳轉(zhuǎn)的代碼。

發(fā)送文件

和瀏覽器跳轉(zhuǎn)類似,文件發(fā)送是另一個(gè)依賴指定HTTP頭的功能,Yii提供方法集合來(lái)支持各種文件發(fā)送需求,它們對(duì)HTTP頭都有內(nèi)置的支持。

yiiwebResponse::sendFile(): 發(fā)送一個(gè)已存在的文件到客戶端

yiiwebResponse::sendContentAsFile(): 發(fā)送一個(gè)文本字符串作為文件到客戶端

yiiwebResponse::sendStreamAsFile(): 發(fā)送一個(gè)已存在的文件流作為文件到客戶端

這些方法都將響應(yīng)對(duì)象作為返回值,如果要發(fā)送的文件非常大,應(yīng)考慮使用 yiiwebResponse::sendStreamAsFile() 因?yàn)樗?jié)約內(nèi)存,以下示例顯示在控制器操作中如何發(fā)送文件:

public function actionDownload(){ 
    return Yii::$app->response->sendFile("path/to/file.txt"); 
}

如果不是在操作方法中調(diào)用文件發(fā)送方法,在后面還應(yīng)調(diào)用 yiiwebResponse::send() 沒有其他內(nèi)容追加到響應(yīng)中。

Yii::$app->response->sendFile("path/to/file.txt")->send();

一些瀏覽器提供特殊的名為X-Sendfile的文件發(fā)送功能,原理為將請(qǐng)求跳轉(zhuǎn)到服務(wù)器上的文件, Web應(yīng)用可在服務(wù)器發(fā)送文件前結(jié)束,為使用該功能,可調(diào)用yiiwebResponse::xSendFile(), 如下簡(jiǎn)要列出一些常用Web服務(wù)器如何啟用X-Sendfile 功能:

Apache: X-Sendfile

Lighttpd v1.4: X-LIGHTTPD-send-file

Lighttpd v1.5: X-Sendfile

Nginx: X-Accel-Redirect

Cherokee: X-Sendfile and X-Accel-Redirect

發(fā)送響應(yīng)

在 send() 方法調(diào)用前響應(yīng)中的內(nèi)容不會(huì)發(fā)送給用戶,該方法默認(rèn)在yiibaseApplication::run() 結(jié)尾自動(dòng)調(diào)用,盡管如此,可以明確調(diào)用該方法強(qiáng)制立即發(fā)送響應(yīng)。

yiiwebResponse::send() 方法使用以下步驟來(lái)發(fā)送響應(yīng):

觸發(fā) yiiwebResponse::EVENT_BEFORE_SEND 事件.

調(diào)用 yiiwebResponse::prepare() 來(lái)格式化 yiiwebResponse::data 為yiiwebResponse::content.

觸發(fā) yiiwebResponse::EVENT_AFTER_PREPARE 事件.

調(diào)用 yiiwebResponse::sendHeaders() 來(lái)發(fā)送注冊(cè)的HTTP頭

調(diào)用 yiiwebResponse::sendContent() 來(lái)發(fā)送響應(yīng)主體內(nèi)容

觸發(fā) yiiwebResponse::EVENT_AFTER_SEND 事件.

一旦yiiwebResponse::send() 方法被執(zhí)行后,其他地方調(diào)用該方法會(huì)被忽略, 這意味著一旦響應(yīng)發(fā)出后,就不能再追加其他內(nèi)容。

如你所見yiiwebResponse::send() 觸發(fā)了幾個(gè)實(shí)用的事件,通過(guò)響應(yīng)這些事件可調(diào)整或包裝響應(yīng)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21623.html

相關(guān)文章

  • Yii 修行之路 - Errors(錯(cuò)誤處理) & Logging(日志記錄)

    摘要:簡(jiǎn)述這里簡(jiǎn)單歸納總結(jié)關(guān)于的錯(cuò)誤處理和日志記錄的操作。錯(cuò)誤處理器會(huì)正確地設(shè)置響應(yīng)的狀態(tài)碼并使用合適的錯(cuò)誤視圖頁(yè)面來(lái)顯示錯(cuò)誤信息。記錄一個(gè)警告消息用來(lái)指示一些已經(jīng)發(fā)生的意外。的義務(wù)是正確處理日志消息。相應(yīng)的消息通過(guò)被記錄。 簡(jiǎn)述 這里簡(jiǎn)單歸納總結(jié)關(guān)于Yii的錯(cuò)誤處理和日志記錄的操作。 錯(cuò)誤處理(Errors) Yii 內(nèi)置了一個(gè)yiiwebErrorHandler錯(cuò)誤處理器,它使錯(cuò)誤處理更...

    _ang 評(píng)論0 收藏0
  • Yii修行之路 - Security 安全

    摘要:認(rèn)證事件類在登錄和注銷流程引發(fā)一些事件。成功注銷后引發(fā)。提供兩種授權(quán)方法存取控制過(guò)濾器和基于角色的存取控制。允許已認(rèn)證用戶執(zhí)行操作。指定一個(gè)回調(diào)函數(shù)用于判定該規(guī)則是否滿足條件。 簡(jiǎn)述 在程序開發(fā)過(guò)程中,往往都不能忽視安全問題,無(wú)論你的框架有多么完美,都會(huì)有破綻,所以完善自己的系統(tǒng),從程序開發(fā)的安全角度去思考問題,把一切潛在的危機(jī)扼殺在搖籃中。 認(rèn)證(Authentication) 認(rèn)證...

    AaronYuan 評(píng)論0 收藏0
  • Yii 修行之路 - Gii 代碼生成器

    摘要:簡(jiǎn)述是一個(gè)強(qiáng)大的代碼生成器,主要用于后臺(tái)代碼生成。下面列出由生成的文件,以便你研習(xí)功能和實(shí)現(xiàn),或修改它們控制器模型和視圖補(bǔ)充被設(shè)計(jì)成高度可定制和可擴(kuò)展的代碼生成工具。使用生成代碼是一個(gè)基于界面的代碼生成工具。 簡(jiǎn)述 Gii 是一個(gè)強(qiáng)大的代碼生成器,主要用于后臺(tái)代碼生成。 開始 Gii Gii 是 Yii 中的一個(gè)模塊??梢酝ㄟ^(guò)配置應(yīng)用的 yiibaseApplication::modu...

    fuchenxuan 評(píng)論0 收藏0
  • Yii 修行之路 - View 視圖渲染

    摘要:簡(jiǎn)述模塊是中的架構(gòu)的板塊,主要負(fù)責(zé)數(shù)據(jù)的展示,渲染模板文件,展示數(shù)據(jù)內(nèi)容。此外在一個(gè)視圖中還可以引入多個(gè)視圖文件,也是通過(guò)方法實(shí)現(xiàn)。布局文件的數(shù)據(jù)默認(rèn)以顯示,也可以用數(shù)據(jù)塊的形式渲染到視圖上。必須要確認(rèn)生成一次,才會(huì)正式生成新首頁(yè)。 簡(jiǎn)述 View模塊是Yii中的MVC架構(gòu)的V板塊,主要負(fù)責(zé)數(shù)據(jù)的展示,渲染模板文件,展示數(shù)據(jù)內(nèi)容。 基本概念 MVC在Yii里面有一個(gè)Views文件夾,里...

    Mr_houzi 評(píng)論0 收藏0
  • Yii修行之路 - Extension 擴(kuò)展

    摘要:運(yùn)行來(lái)安裝指定的擴(kuò)展。這更便于用戶辨別是否是的擴(kuò)展。當(dāng)用戶運(yùn)行安裝一個(gè)擴(kuò)展時(shí),文件會(huì)被自動(dòng)更新使之包含新擴(kuò)展的信息。上述代碼表明該擴(kuò)展依賴于包。例如,上述的條目聲明將對(duì)應(yīng)于別名。為達(dá)到這個(gè)目的,你應(yīng)當(dāng)在公開發(fā)布前做測(cè)試。 簡(jiǎn)述 擴(kuò)展是專門設(shè)計(jì)的在 Yii 應(yīng)用中隨時(shí)可拿來(lái)使用的, 并可重發(fā)布的軟件包。 基礎(chǔ) 例如, yiisoft/yii2-debug 擴(kuò)展在你的應(yīng)用的每個(gè)頁(yè)面底部添加...

    bovenson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<