摘要:為了演示特性的基本使用,我將會帶領(lǐng)大家構(gòu)建一個簡單的博客管理系統(tǒng)。目前為止,我們借助生成了一系列操作。有好提示實際開發(fā)中,后臺管理理應(yīng)利用協(xié)助開發(fā),可快速提高開發(fā)效果。
作者:白狼 出處:http://www.manks.top/document/easy_blog_manage_system.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權(quán)利。
1、簡介
快速入門指南會對Yii2框架做一個基本介紹,包括數(shù)據(jù)庫遷移、gii操作、AR模型、路由、驗證、視圖等等。如果你是個Yii2新手甚至之前對PHP框架也很陌生,那么這里將會成為你的良好起點。如果你已經(jīng)使用并且掌握了Yii2框架基礎(chǔ),可以期待Yii2高級篇教程(后面我會更新)。
為了演示Yii2特性的基本使用,我將會帶領(lǐng)大家構(gòu)建一個簡單的博客管理系統(tǒng)。
2、安裝
我們前面寫過關(guān)于Yii2完整版的安裝教程,你可以點擊進行參考,這里只做步驟,不再做必要的講解。
composer global require "fxp/composer-asset-plugin:~1.1.1" composer create-project yiisoft/yii2-app-advanced advanced 2.0.8 cd advanced php init #之后構(gòu)建本地環(huán)境,我們配置advanced.dev指向frontend/web目錄
3、準備好數(shù)據(jù)庫
在開發(fā)和維護一個數(shù)據(jù)庫驅(qū)動的應(yīng)用程序時,數(shù)據(jù)庫的結(jié)構(gòu)會隨代碼的改變而改變。例如,在開發(fā)應(yīng)用程序的過程中,會增加一張新表且必須得加進來; 在應(yīng)用程序被部署到生產(chǎn)環(huán)境后,需要建立一個索引來提高查詢的性能等等。 因為一個數(shù)據(jù)庫結(jié)構(gòu)發(fā)生改變的時候源代碼也經(jīng)常會需要做出改變,Yii 提供了一個 數(shù)據(jù)庫遷移 功能,該功能可以記錄數(shù)據(jù)庫的變化, 以便使數(shù)據(jù)庫和源代碼一起受版本控制。
在本例中,我們使用yii migrate命令生成博客 blog 對應(yīng)的數(shù)據(jù)表遷移:
yii migrate/create create_blog_table
該命令生成的遷移文件位于 advancedconsolemigrations 目錄,可能你已經(jīng)注意到了,yii migrate 命令已經(jīng)在遷移文件中為我們添加了主鍵ID和表名,接下來我們要編輯該文件修改表名以及添加更多的列到數(shù)據(jù)表blog:
createTable("blog", [ "id" => $this->primaryKey(), "title" => $this->string(100)->notNull()->defaultValue(""), "content" => $this->text(), "create_time" => $this->datetime(), ]); } /** * @inheritdoc */ public function down() { $this->dropTable("blog"); } }
運行遷移之前,我們先把數(shù)據(jù)庫配置一番,打開commonconfigmain-local.php文件,我們看到components下面的db配置,參考如下配置就好
"components" => [ "db" => [ "class" => "yiidbConnection", // 修改host 和dbname 之前需要手動創(chuàng)建了dbname才可以 "dsn" => "mysql:host=localhost;dbname=advanced", //登錄數(shù)據(jù)庫的賬號 "username" => "root", //登錄數(shù)據(jù)庫的密碼 "password" => "", "charset" => "utf8", ], // other code ],
數(shù)據(jù)庫配置好了之后,運行執(zhí)行如下命令運行migrate
./yii migrate
期間會讓我們確認,yes后回車即可,該命令會為我們創(chuàng)建遷移文件(consolemigrations目錄)中定義的所有數(shù)據(jù)表,執(zhí)行完該命令打開數(shù)據(jù)庫會發(fā)現(xiàn),我們的blog表已經(jīng)創(chuàng)建了,其中包含了在遷移中定義的列。
4、使用gii生成AR模型和CRUD
gii是yii2中的一個模塊,是一種高度可定制和可擴展的代碼生成工具。使用它可以大幅提高我們的開發(fā)效率,后面我會也會講解如何用gii定制我們需要的模版以及程序代碼。如果你在安裝的過程中,像我們一樣選擇的是開發(fā)環(huán)境,gii默認是開啟的。也就是說我們無需再進行配置便可以使用。你也可以打開文件 advancedfrontendconfigmain-local.php查看配置代碼。
if (!YII_ENV_TEST) { // other code $config["bootstrap"][] = "gii"; $config["modules"]["gii"] = [ "class" => "yiigiiModule", ]; }
接著通過地址 http://advanced.dev/index.php?r=gii 訪問gii模塊(在一開始我們配置了advanced.dev指向了frontend/web目錄),借助其特性幫助我們生成此次操作所必需的一系列代碼。
4.1生成AR模型類
模型是MVC設(shè)計模式中的一部分,使用模型不僅能讓我們存取數(shù)據(jù)變得相對簡單和方便,更多地協(xié)助我們處理復(fù)雜的業(yè)務(wù)和邏輯。關(guān)于更多的有關(guān)模型的描述,可以參考相關(guān)手冊或文檔,有任何問題你也可以下方留言。
我們回過頭來點擊gii頁面上的Model Generator start,像下面這樣生成AR模型類。
(圖片見原文)
4.2生成CRUD代碼
所謂的CRUD無非就是Create Read Update Delete,也就是創(chuàng)建、讀取、更新和刪除。包含了常見Web開發(fā)的基本操作。如果你剛剛用gii生成了Model,此時點擊左側(cè)菜單CRUD Generator像下面這樣生成crud再好不過了。
(圖片見原文)
關(guān)于更多gii的操作你可以參考yii2 gii的詳細操作步驟。
目前為止,我們借助gii生成了model,curd一系列操作。
有好提示:實際開發(fā)中,后臺管理理應(yīng)利用gii協(xié)助開發(fā),可快速提高開發(fā)效果。
按照以上操作,我們會在如下相關(guān)目錄生成9個文件
commonmodelsBlog.php commonmodelsBlogSearch.php frontendcontrollersBlogController.php frontendviewslog\_form.php frontendviewslog\_search.php frontendviewslogcreate.php frontendviewslogindex.php frontendviewslogupdate.php frontendviewslogview.php
接著可以通過路由訪問 http://advanced.dev/index.php?r=blog 看到blog具體頁面信息。
5、添加博客
[考慮目前國內(nèi)網(wǎng)站大部分采集文章十分頻繁,更有甚者不注明原文出處,原作者更希望看客們查看原文,以防有任何問題不能更新所有文章,避免誤導(dǎo)!]
繼續(xù)閱讀
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21657.html
摘要:出于實戰(zhàn)基礎(chǔ)加之自語言的書籍出版以來,幾乎所有的編程書籍都講述了一個的例子作為開始。操作,其實就是一個是動作的意思,也可以描述為我們前面說的響應(yīng)地址。 作者:白狼 出處:http://www.manks.top/document/yii_first_application.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究...
摘要:之速率限制什么是速率限制權(quán)威指南翻譯過來為限流,為防止濫用,你應(yīng)該考慮對您的限流。如果在規(guī)定的時間內(nèi)接收了一個用戶大量的請求,將返回響應(yīng)狀態(tài)代碼這意味著過多的請求。 Yii2.0 RESTful API 之速率限制 什么是速率限制? 權(quán)威指南翻譯過來為限流,為防止濫用,你應(yīng)該考慮對您的 API 限流。 例如,您可以限制每個用戶 10 分鐘內(nèi)最多調(diào)用 API 100 次。 如果在規(guī)定的時...
摘要:前言月份開始出沒社區(qū),現(xiàn)在差不多月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉(zhuǎn)正了一般來說,差不多到了轉(zhuǎn)正的時候,會進行總結(jié)或者分享會議那么今天我就把看過的一些學(xué)習(xí)資源主要是博客,博文推薦分享給大家。 1.前言 6月份開始出沒社區(qū),現(xiàn)在差不多9月了,按照工作的說法,就是差不多過了三個月的試用期,準備轉(zhuǎn)正了!一般來說,差不多到了轉(zhuǎn)正的時候,會進行總結(jié)或者分享會議!那么今天我就...
閱讀 1682·2019-08-30 15:54
閱讀 3332·2019-08-26 17:15
閱讀 3522·2019-08-26 13:49
閱讀 2582·2019-08-26 13:38
閱讀 2291·2019-08-26 12:08
閱讀 3035·2019-08-26 10:41
閱讀 1369·2019-08-26 10:24
閱讀 3376·2019-08-23 18:35