0 追蹤者

Yii 快速入門

在本節中,我們將描述如何建立一個應用程式骨架,作為我們的起點。為了簡潔起見,我們假設您的 Web 伺服器的文件根目錄為 /wwwroot,而對應的 URL 為 http://www.example.com/

1. 安裝 Yii

首先,我們需要安裝 Yii 框架。從 www.yiiframework.com 下載 Yii 發行檔案(1.1.1 或以上版本)並解壓縮到 /wwwroot/yii 目錄。請再次確認 /wwwroot/yii/framework 目錄是否存在。

提示: Yii 框架可以安裝在檔案系統中的任何位置,不一定要在 Web 資料夾下。其 framework 目錄包含所有框架程式碼,並且是部署 Yii 應用程式時唯一需要的框架目錄。單一 Yii 安裝可以被多個 Yii 應用程式使用。

安裝 Yii 後,開啟瀏覽器視窗並存取 URL http://www.example.com/yii/requirements/index.php。它會顯示 Yii 發行版中提供的需求檢查器。對於我們的部落格應用程式,除了 Yii 所需的最低需求外,我們還需要啟用 pdopdo_sqlite PHP 擴充功能,以便我們可以存取 SQLite 資料庫。

2. 建立應用程式骨架

接著,我們使用 yiic 工具在 /wwwroot/blog 目錄下建立一個應用程式骨架。 yiic 工具是 Yii 發行版中提供的命令列工具。它可用於產生程式碼,以減少某些重複的編碼任務。

開啟命令視窗並執行以下命令

% /wwwroot/yii/framework/yiic webapp /wwwroot/blog
Create a Web application under '/wwwroot/blog'? [Yes|No]y
......

提示: 為了如上所示使用 yiic 工具,CLI PHP 程式必須在命令搜尋路徑中。如果沒有,可以改用以下命令

path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog

為了試用我們剛剛建立的應用程式,開啟 Web 瀏覽器並導航至 URL http://www.example.com/blog/index.php。您應該會看到我們的應用程式骨架已經有四個功能完整的頁面:首頁、關於頁面、聯絡頁面和登入頁面。

在下面,我們簡要描述這個應用程式骨架中的內容。

入口腳本

我們有一個 入口腳本 檔案 /wwwroot/blog/index.php,其內容如下

<?php
$yii='/wwwroot/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
 
// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
 
require_once($yii);
Yii::createWebApplication($config)->run();

這是 Web 使用者可以直接存取的唯一腳本。該腳本首先包含 Yii 啟動檔案 yii.php。然後,它使用指定的配置建立一個 應用程式 實例並執行該應用程式。

基礎應用程式目錄

我們還有一個 基礎應用程式目錄 /wwwroot/blog/protected。我們的大部分程式碼和資料將放置在此目錄下,並且應該防止 Web 使用者存取。對於 Apache httpd Web 伺服器,我們在此目錄下放置一個包含以下內容的 .htaccess 檔案

deny from all

對於其他 Web 伺服器,請參閱相應的手冊,了解如何防止 Web 使用者存取目錄。

3. 應用程式工作流程

為了幫助理解 Yii 的運作方式,我們描述當使用者存取聯絡頁面時,應用程式骨架中的主要工作流程

  1. 使用者請求 URL http://www.example.com/blog/index.php?r=site/contact
  2. Web 伺服器執行 入口腳本 以處理請求;
  3. 建立一個 應用程式 實例,並使用應用程式配置文件 /wwwroot/blog/protected/config/main.php 中指定的初始屬性值進行配置;
  4. 應用程式將請求解析為 控制器控制器動作。對於聯絡頁面請求,它被解析為 site 控制器和 contact 動作(/wwwroot/blog/protected/controllers/SiteController.php 中的 actionContact 方法);
  5. 應用程式根據 SiteController 實例建立 site 控制器,然後執行它;
  6. SiteController 實例透過呼叫其 actionContact() 方法來執行 contact 動作;
  7. actionContact 方法將名為 contact視圖 渲染給 Web 使用者。在內部,這是透過包含視圖檔案 /wwwroot/blog/protected/views/site/contact.php 並將結果嵌入到 佈局 檔案 /wwwroot/blog/protected/views/layouts/column1.php 中來實現的。

發現錯字或您認為此頁面需要改進?
在 github 上編輯 !