入門1-基礎入門
1.PHP
Yii 是一個 PHP 框架,因此請確保您閱讀並理解語言參考。 用 Yii 進行開發時,您將以面向物件的方式編寫程式碼,因此請確保您熟悉類與物件以及名稱空間。
2.面向物件程式設計
對面向物件程式設計的基本理解是必需的。如果您不熟悉它,請選中其中一個 可用的教程,如tuts+。
請注意,您的應用程式越複雜,您需要學習的更高階的 OOP 概念才能成功掌握這種複雜度。
3.命令列和 Composer
Composer 是 PHP 用來管理依賴(dependency)關係的工具。你可以在自己的專案中宣告所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫檔案。Yii 廣泛使用了標準的 PHP 包管理器
4、安裝yii2
安裝 Composer 後,您可以通過在 Web 可訪問的資料夾下執行以下命令來 安裝Yii應用程式模板:
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
這將在一個名為basic
的目錄中安裝Yii應用程式模板的最新穩定版本。 如果需要,您可以選擇不同的目錄名稱。
驗證安裝的結果
當安裝完成之後, 或配置你的Web伺服器(看下面的文章)或使用內建Web Server, 當在專案web
目錄下可以通過下面的命令:
php yii serve
5、執行運用
安裝 Yii 後,就有了一個可執行的 Yii 應用, 根據配置的不同,可以通過http://hostname/basic/web/index.php
或http://hostname/index.php
訪問。
6、應用結構
應用中最重要的目錄和檔案(假設應用根目錄是basic
):
一般來說,應用中的檔案可被分為兩類:在basic/web
下的和在其它目錄下的。 前者可以直接通過 HTTP 訪問(例如瀏覽器),後者不能也不應該被直接訪問。
Yii的靜態結構和請求生命週期
參考連結:http://sop.4399om.com/pages/viewpage.action?pageId=121045123
7、第一行程式碼
建立動作
為了 “Hello”,需要建立一個say
操作, 從請求中接收message
引數並顯示給終端使用者。 如果請求沒有提供message
引數,操作將顯示預設引數 “Hello”。
操作必須宣告在控制器中。為了簡單起見, 你可以直接在SiteController
控制器裡宣告say
操作。 這個控制器是由檔案controllers/SiteController.php
定義的。以下是一個操作的宣告:
<?php namespace app\controllers; use yii\web\Controller; class SiteController extends Controller { // ...現存的程式碼... public function actionSay($message = 'Hello') { return $this->render('say', ['message' => $message]); } }
在上述SiteController
程式碼中,say
操作被定義為actionSay
方法。 Yii 使用action
字首區分普通方法和操作。action
字首後面的名稱被對映為操作的 ID。
涉及到給操作命名時,你應該理解 Yii 如何處理操作 ID。 操作 ID 總是被以小寫處理,如果一個操作 ID 由多個單片語成, 單詞之間將由連字元連線(如create-comment
)。 操作 ID 對映為方法名時移除了連字元,將每個單詞首字母大寫,並加上action
字首。 例子:操作 IDcreate-comment
相當於方法名actionCreateComment
。
上述程式碼中的操作方法接受一個引數$message
, 它的預設值是“Hello”
(就像你設定 PHP 中其它函式或方法的預設值一樣)。 當應用接收到請求並確定由say
操作來響應請求時,應用將從請求的引數中尋找對應值傳入進來。 換句話說,如果請求包含一個message
引數, 它的值是“Goodbye”
, 操作方法中的$message
變數也將被填充為“Goodbye”
。
在操作方法中,render()被用來渲染一個 名為say
的檢視檔案。message
引數也被傳入檢視,這樣就可以在裡面使用。操作方法會返回渲染結果。 結果會被應用接收並顯示給終端使用者的瀏覽器(作為整頁 HTML 的一部分)。
建立檢視
檢視是你用來生成響應內容的指令碼。為了說 “Hello”, 你需要建立一個say檢視,以便顯示從操作方法中傳來的message引數。
<?php
use yii\helpers\Html;
?>
<?= Html::encode($message) ?>
say檢視應該存為views/site/say.php檔案。當一個操作中呼叫了render()方法時, 它將會按views/控制器 ID/檢視名.php路徑載入 PHP 檔案。
當然了,你大概會在say視圖裡放入更多內容。內容可以由 HTML 標籤,純文字, 甚至 PHP 語句組成。實際上say檢視就是一個由render()執行的 PHP 指令碼。 檢視指令碼輸出的內容將會作為響應結果返回給應用。應用將依次輸出結果給終端使用者。
試執行
建立完動作和檢視後,你就可以通過下面的 URL 訪問新頁面了:
http://hostname/index.php?r=site/say&message=Hello+World
8、使用gii生成程式碼
準備資料庫
首先建立一個名為yii2basic
的資料庫,應用將從這個資料庫中讀取資料。 你可以建立 SQLite,MySQL,PostregSQL,MSSQL 或 Oracle 資料庫,Yii 內建多種資料庫支援。簡單起見,後面的內容將以 MySQL 為例做演示。
然後在資料庫中建立一個名為country
的表並插入簡單的資料。可以執行下面的語句:
CREATE TABLE `country` ( `code` CHAR(2) NOT NULL PRIMARY KEY, `name` CHAR(52) NOT NULL, `population` INT(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `country` VALUES ('AU','Australia',18886000); INSERT INTO `country` VALUES ('BR','Brazil',170115000); INSERT INTO `country` VALUES ('CA','Canada',1147000); INSERT INTO `country` VALUES ('CN','China',1277558000); INSERT INTO `country` VALUES ('DE','Germany',82164700); INSERT INTO `country` VALUES ('FR','France',59225700); INSERT INTO `country` VALUES ('GB','United Kingdom',59623400); INSERT INTO `country` VALUES ('IN','India',1013662000); INSERT INTO `country` VALUES ('RU','Russia',146934000); INSERT INTO `country` VALUES ('US','United States',278357000);
配置資料庫連線
開啟config/db.php
修改裡面的配置引數對應你的資料庫配置。 該檔案預設包含這些內容:
<?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=yii2basic', 'username' => 'root', 'password' => '', 'charset' => 'utf8', ];
config/db.php
是一個典型的基於檔案的配置工具。 這個檔案配置了資料庫連線yii\db\Connection的建立和初始化引數, 應用的 SQL 查詢正是基於這個資料庫。
開始 Gii
Gii是 Yii 中的一個模組。 可以通過配置應用的modules屬性開啟它。通常來講在config/web.php
檔案中會有以下配置程式碼:
$config = [ ... ]; if (YII_ENV_DEV) { $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', ]; }
這段配置表明,如果當前是開發環境, 應用會包含gii
模組,模組類是yii\gii\Module。
如果你檢查應用的入口指令碼web/index.php
, 將看到這行程式碼將YII_ENV_DEV
設為 true:
defined(
'YII_ENV')
ordefine(
'YII_ENV',
'dev');
鑑於這行程式碼的定義,應用處於開發模式下,按照上面的配置會開啟 Gii 模組。你可以直接通過 URL 訪問 Gii:
http://hostname/index.php?r=gii
生成活動記錄類
選擇 “Model Generator” (點選 Gii 首頁的連結)去生成活動記錄類。並像這樣填寫表單:
- Table Name:
country
- Model Class:
Country
然後點選 “Preview” 按鈕。你會看到models/Country.php被列在將要生成的檔案列表中。可以點選檔名預覽內容。
如果你已經建立過同樣的檔案,使用 Gii 會覆寫它, 點選檔名旁邊的diff能檢視現有檔案與將要 生成的檔案的內容區別。
想要覆寫已存在檔案,選中 “overwrite” 下的複選框然後點選 “Generator”。如果是新檔案,只點擊 “Generator” 就好。
接下來你會看到一個包含已生成檔案的說明頁面。如果生成過程中覆寫過檔案, 還會有一條資訊說明程式碼是重新生成覆蓋的。
Linux等環境軟體安裝