亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

?? ??? ??
閱讀前篇 簡(jiǎn)介 Yii 是什么 從 Yii 1.1 升級(jí) 入門 安裝 Yii 運(yùn)行應(yīng)用 第一次問候 使用Forms 數(shù)據(jù)庫應(yīng)用 使用 Gii 生成代碼 進(jìn)階 應(yīng)用結(jié)構(gòu) 概述 入口腳本 應(yīng)用(Applications) 應(yīng)用組件(Application Components) 控制器(Controllers) 模型(Models) 視圖(views) 模塊(Modules) 過濾器(Filters) 小部件(Widgets) 前端資源(Assets) 擴(kuò)展(Extensions) 請(qǐng)求處理 運(yùn)行概述 啟動(dòng)引導(dǎo)(Bootstrapping) 路由和創(chuàng)建URL 請(qǐng)求(Requests) 響應(yīng)(Responses) Sessions 和 Cookies 錯(cuò)誤處理(Handling Errors) 日志(Logging) 關(guān)鍵概念 組件(Component) 屬性(Property) 事件(Events) 行為(Behaviors) 配置(Configurations) 別名(Aliases) 類自動(dòng)加載(Autoloading) 服務(wù)定位器(Service Locator) 依賴注入容器(Dependency Injection Container) 配合數(shù)據(jù)庫工作 數(shù)據(jù)庫訪問 (Data Access Objects) 查詢生成器(Query Builder) 活動(dòng)記錄(Active Record) 數(shù)據(jù)庫遷移(Migrations) Sphinx Redis MongoDB Elasticsearch 接收用戶數(shù)據(jù) 創(chuàng)建表單(Creating Forms) 輸入驗(yàn)證(Validating Input) 文件上傳(Uploading Files) 收集列表輸入(Collecting Tabular Input) 多模型的復(fù)合表單(Getting Data for Multiple Models) 顯示數(shù)據(jù) 格式化輸出數(shù)據(jù)(Data Formatting) 分頁(Pagination) 排序(Sorting) 數(shù)據(jù)提供器(Data Providers) 數(shù)據(jù)小部件(Data Widgets) 客戶端腳本使用(Working with Client Scripts) 主題(Theming) 安全 認(rèn)證(Authentication) 授權(quán)(Authorization) 處理密碼(Working with Passwords) 客戶端認(rèn)證(Auth Clients) 最佳安全實(shí)踐(Best Practices) 緩存 概述 數(shù)據(jù)緩存 片段緩存 頁面緩存 HTTP 緩存 RESTfull Web服務(wù) 快速入門(Quick Start) 資源(Resources) 控制器(Controllers) 路由(Routing) 格式化響應(yīng)(Response Formatting) 授權(quán)認(rèn)證(Authentication) 速率限制(Rate Limiting) 版本(Versioning) 錯(cuò)誤處理(Error Handling) 開發(fā)工具 調(diào)試工具欄和調(diào)試器 使用Gii生成代碼 生成API文檔 測(cè)試 概述(Overview) 配置測(cè)試環(huán)境(Testing environment setup) 單元測(cè)試(Unit Tests) 功能測(cè)試(Function Tests) 驗(yàn)收測(cè)試(Acceptance Tests) 測(cè)試夾具(Fixtures) 高級(jí)專題 高級(jí)應(yīng)用模板 創(chuàng)建自定義應(yīng)用程序結(jié)構(gòu) 控制臺(tái)命令 核心驗(yàn)證器(Core Validators) 國(guó)際化 收發(fā)郵件 性能優(yōu)化 共享主機(jī)環(huán)境 模板引擎 集成第三方代碼 小部件 Bootstrap 小部件 Jquery UI 助手類 概述 Array 助手(ArrayHelper) Html 助手(Html) Url 助手(Url)
??

使用 Gii 生成代碼

使用 Gii 生成代碼

本章將介紹如何使用?Gii?去自動(dòng)生成 Web 站點(diǎn)常用功能的代碼。使用 Gii 生成代碼非常簡(jiǎn)單,只要按照 Gii 頁面上的介紹輸入正確的信息即可。

貫穿本章節(jié),你將會(huì)學(xué)到:

  • 在你的應(yīng)用中開啟 Gii
  • 使用 Gii 去生成活動(dòng)記錄類
  • 使用 Gii 去生成數(shù)據(jù)表操作的增查改刪(CRUD)代碼
  • 自定義 Gii 生成的代碼

開始 Gii

Gii?是 Yii 中的一個(gè)模塊。可以通過配置應(yīng)用的 yii\base\Application::modules 屬性開啟它。通常來講在?config/web.php?文件中會(huì)有以下配置代碼:

$config = [ ... ];

if (YII_ENV_DEV) {
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

這段配置表明,如果當(dāng)前是開發(fā)環(huán)境,應(yīng)用會(huì)包含?gii?模塊,模塊類是 yii\gii\Module。

如果你檢查應(yīng)用的入口腳本?web/index.php,將看到這行代碼將?YII_ENV_DEV?設(shè)為 true:

defined('YII_ENV') or define('YII_ENV', 'dev');

鑒于這行代碼的定義,應(yīng)用處于開發(fā)模式下,按照上面的配置會(huì)打開 Gii 模塊。你可以直接通過 URL 訪問 Gii:

http://hostname/index.php?r=gii

補(bǔ)充: 如果你通過本機(jī)以外的機(jī)器訪問 Gii,請(qǐng)求會(huì)被出于安全原因拒絕。你可以配置 Gii 為其添加允許訪問的 IP 地址:

'gii' => [
    'class' => 'yii\gii\Module',
    'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // 按需調(diào)整這里
],

Gii

生成活動(dòng)記錄類

選擇 “Model Generator” (點(diǎn)擊 Gii 首頁的鏈接)去生成活動(dòng)記錄類。并像這樣填寫表單:

  • Table Name:?country
  • Model Class:?Country

模型生成器

然后點(diǎn)擊 “Preview” 按鈕。你會(huì)看到?models/Country.php?被列在將要生成的文件列表中??梢渣c(diǎn)擊文件名預(yù)覽內(nèi)容。

如果你已經(jīng)創(chuàng)建過同樣的文件,使用 Gii 會(huì)覆寫它,點(diǎn)擊文件名旁邊的?diff?能查看現(xiàn)有文件與將要生成的文件的內(nèi)容區(qū)別。

模型生成器預(yù)覽

想要覆寫已存在文件,選中 “overwrite” 下的復(fù)選框然后點(diǎn)擊 “Generator”。如果是新文件,只點(diǎn)擊 “Generator” 就好。

接下來你會(huì)看到一個(gè)包含已生成文件的說明頁面。如果生成過程中覆寫過文件,還會(huì)有一條信息說明代碼是重新生成覆蓋的。

生成 CRUD 代碼

CRUD 代表增,查,改,刪操作,這是絕大多數(shù) Web 站點(diǎn)常用的數(shù)據(jù)處理方式。選擇 Gii 中的 “CRUD Generator” (點(diǎn)擊 Gii 首頁的鏈接)去創(chuàng)建 CRUD 功能。本例 “country” 中需要這樣填寫表單:

  • Model Class:?app\models\Country
  • Search Model Class:?app\models\CountrySearch
  • Controller Class:?app\controllers\CountryController

CRUD 生成器

然后點(diǎn)擊 “Preview” 按鈕。你會(huì)看到下述將要生成的文件列表。

[[NEED THE IMAGE HERE / 等待官方補(bǔ)充圖片]]

如果你之前創(chuàng)建過?controllers/CountryController.php?和?views/country/index.php?文件(在指南的使用數(shù)據(jù)庫章節(jié)),選中 “overwrite” 下的復(fù)選框覆寫它們(之前的文件沒能全部支持 CRUD)。

試運(yùn)行

用瀏覽器訪問下面的 URL 查看生成代碼的運(yùn)行:

http://hostname/index.php?r=country/index

可以看到一個(gè)柵格顯示著從數(shù)據(jù)表中讀取的國(guó)家數(shù)據(jù)。支持在列頭對(duì)數(shù)據(jù)進(jìn)行排序,輸入篩選條件進(jìn)行篩選。

可以瀏覽詳情,編輯,或刪除柵格中的每個(gè)國(guó)家。還可以點(diǎn)擊柵格上方的 “Create Country” 按鈕通過表單創(chuàng)建新國(guó)家。

國(guó)家的數(shù)據(jù)柵格

編輯一個(gè)國(guó)家

下面列出由 Gii 生成的文件,以便你研習(xí)功能和實(shí)現(xiàn),或修改它們。

  • 控制器:controllers/CountryController.php
  • 模型:models/Country.php?和?models/CountrySearch.php
  • 視圖:views/country defined('YII_DEBUG') or define('YII_DEBUG', true); // fcgi 默認(rèn)沒有定義 STDIN 和 STDOUT defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w')); // 注冊(cè) Composer 自動(dòng)加載器require(__DIR__ . '/vendor/autoload.php'); // 包含 Yii 類文件require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); // 加載應(yīng)用配置$config = require(__DIR__ . '/config/console.php'); $application = new yii\console\Application($config); $exitCode = $application->run(); exit($exitCode);

    定義常量

    入口腳本是定義全局常量的最好地方,Yii 支持以下三個(gè)常量:

    • YII_DEBUG:標(biāo)識(shí)應(yīng)用是否運(yùn)行在調(diào)試模式。當(dāng)在調(diào)試模式下,應(yīng)用會(huì)保留更多日志信息,如果拋出異常,會(huì)顯示詳細(xì)的錯(cuò)誤調(diào)用堆棧。因此,調(diào)試模式主要適合在開發(fā)階段使用,YII_DEBUG?默認(rèn)值為 false。
    • YII_ENV:標(biāo)識(shí)應(yīng)用運(yùn)行的環(huán)境,詳情請(qǐng)查閱配置章節(jié)。YII_ENV?默認(rèn)值為?'prod',表示應(yīng)用運(yùn)行在線上產(chǎn)品環(huán)境。
    • YII_ENABLE_ERROR_HANDLER:標(biāo)識(shí)是否啟用 Yii 提供的錯(cuò)誤處理,默認(rèn)為 true。

    當(dāng)定義一個(gè)常量時(shí),通常使用類似如下代碼來定義:

    defined('YII_DEBUG') or define('YII_DEBUG', true);
    

    上面的代碼等同于:

    if (!defined('YII_DEBUG')) {
        define('YII_DEBUG', true);
    }
    

    顯然第一段代碼更加簡(jiǎn)潔易懂。

    常量定義應(yīng)該在入口腳本的開頭,這樣包含其他 PHP 文件時(shí),常量就能生效。
?? ??: ?? ??: