1. 程式人生 > 其它 >入門1-基礎入門

入門1-基礎入門

1.PHP

Yii 是一個 PHP 框架,因此請確保您閱讀並理解語言參考。 用 Yii 進行開發時,您將以面向物件的方式編寫程式碼,因此請確保您熟悉類與物件以及名稱空間

2.面向物件程式設計

對面向物件程式設計的基本理解是必需的。如果您不熟悉它,請選中其中一個 可用的教程,如tuts+

請注意,您的應用程式越複雜,您需要學習的更高階的 OOP 概念才能成功掌握這種複雜度。

3.命令列和 Composer

Composer 是 PHP 用來管理依賴(dependency)關係的工具。你可以在自己的專案中宣告所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫檔案。Yii 廣泛使用了標準的 PHP 包管理器

Composer,因此請確保您閱讀 並理解其指南。

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.phphttp://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') or define('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等環境軟體安裝