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

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

使用 Gii 生成代碼

使用 Gii 生成代碼

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

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

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

開始 Gii

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

$config = [ ... ];

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

這段配置表明,如果當前是開發(fā)環(huán)境,應(yīng)用會包含?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ā)模式下,按照上面的配置會打開 Gii 模塊。你可以直接通過 URL 訪問 Gii:

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

補充: 如果你通過本機以外的機器訪問 Gii,請求會被出于安全原因拒絕。你可以配置 Gii 為其添加允許訪問的 IP 地址:

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

Gii

生成活動記錄類

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

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

模型生成器

然后點擊 “Preview” 按鈕。你會看到?models/Country.php?被列在將要生成的文件列表中。可以點擊文件名預覽內(nèi)容。

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

模型生成器預覽

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

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

生成 CRUD 代碼

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

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

CRUD 生成器

然后點擊 “Preview” 按鈕。你會看到下述將要生成的文件列表。

[[NEED THE IMAGE HERE / 等待官方補充圖片]]

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

試運行

用瀏覽器訪問下面的 URL 查看生成代碼的運行:

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

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

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

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

編輯一個國家

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

  • 控制器:controllers/CountryController.php
  • 模型:models/Country.php?和?models/CountrySearch.php
  • 視圖:views/country defined('YII_DEBUG') or define('YII_DEBUG', true); // fcgi 默認沒有定義 STDIN 和 STDOUT defined('STDIN') or define('STDIN', fopen('php://stdin', 'r')); defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w')); // 注冊 Composer 自動加載器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 支持以下三個常量:

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

    當定義一個常量時,通常使用類似如下代碼來定義:

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

    上面的代碼等同于:

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

    顯然第一段代碼更加簡潔易懂。

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