摘要:高性能始終是的首要目標(biāo)之一。版是上代的老版本,現(xiàn)在處于維護(hù)狀態(tài)。版是一個(gè)完全重寫的版本,采用了最新的技術(shù)和協(xié)議,包括依賴包管理器代碼規(guī)范命名空間特質(zhì)等等。所以,我們學(xué)習(xí)版本。啟用本鏡像服務(wù)系統(tǒng)全局配置即將配置信息添加到的全局配置文件中。
一、YII簡介 1、什么是YII工作中需要用到Y(jié)II框架,于是乎,系統(tǒng)的學(xué)習(xí)下這套框架,詳細(xì)教程請看考該站完整系列:YII2教程
Yii 是一個(gè)高性能,基于組件的 PHP 框架,用于快速開發(fā)現(xiàn)代 Web 應(yīng)用程序。
2、YII優(yōu)點(diǎn)和其他 PHP 框架類似,Yii 實(shí)現(xiàn)了 MVC(Model-View-Controller)設(shè)計(jì)模式并基于該模式組織代碼。
Yii 的代碼簡潔優(yōu)雅,這是 Yii 的編程哲學(xué)。它永遠(yuǎn)不會(huì)為了要迎合某個(gè)設(shè)計(jì)模式而對代碼進(jìn)行過度的設(shè)計(jì)。
Yii 是一個(gè)全棧框架,提供了大量久經(jīng)考驗(yàn),開箱即用的特性,例如:對關(guān)系型和 NoSQL 數(shù)據(jù)庫都提供了查詢生成器(QueryBuilders)和 ActiveRecord;RESTful API 的開發(fā)支持;多層緩存支持,等等。
Yii 非常易于擴(kuò)展。你可以自定義或替換幾乎任何一處核心代碼。你還會(huì)受益于它堅(jiān)實(shí)可靠的擴(kuò)展架構(gòu),使用、再開發(fā)或再發(fā)布擴(kuò)展。
高性能始終是 Yii 的首要目標(biāo)之一。
3.Yii 版本Yii 當(dāng)前有兩個(gè)主要版本:1.1 和 2.0。 1.1 版是上代的老版本,現(xiàn)在處于維護(hù)狀態(tài)。2.0 版是一個(gè)完全重寫的版本,采用了最新的技術(shù)和協(xié)議,包括依賴包管理器(Composer)、PHP 代碼規(guī)范(PSR)、命名空間、Traits(特質(zhì))等等。 2.0 版代表了最新一代框架,是未來幾年中我們的主要開發(fā)版本。所以,我們學(xué)習(xí)2.0版本。
二、安裝YII2 1.使用composer安裝什么是Composer? 由于墻的原因,會(huì)下載很慢,所以,這里我們使用Composer中國鏡像。
啟用本鏡像服務(wù),系統(tǒng)全局配置: 即將配置信息添加到 Composer 的全局配置文件 config.json 中。
composer config -g repo.packagist composer https://packagist.phpcomposer.com2.第二步
php composer.phar global require "fxp/composer-asset-plugin:~1.1.1"
如果你的Composer是全局安裝的,那么就不需要輸入php composer.phar,只需要用composer命令即可。
composer global require "fxp/composer-asset-plugin:~1.1.1"
安裝這個(gè)玩意兒,不然你會(huì)發(fā)現(xiàn)新增加好的項(xiàng)目中沒有vendor目錄
3.下載yiiphp composer.phar create-project --prefer-dist yiisoft/yii2-app-advanced advanced
全局安裝方法:
composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
前最好有g(shù)ithub賬號(hào),需要授權(quán)拉取的,不然。。。。
坑爹啊,還需要Github授權(quán)-_-!!!
輸入這個(gè)鏈接,在瀏覽器中打開,需要登錄到自己的Github賬戶:
https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+kaiyideMacBook-Pro.local+2016-12-31+0302
獲取到Token授權(quán)之后,復(fù)制粘貼到這里:
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+kaiyideMacBook-Pro.local+2016-12-31+0311 to retrieve a token. It will be stored in "/Users/kaiyiwang/.composer/auth.json" for future use by Composer. Token (hidden):(注意這里是從Github獲取到的授權(quán)Token) Token stored successfully. Reading bower.json of bower-asset/jquery.inputmask (3.2.5)4.下載好YII后,初始化操作
如果你是類linux系統(tǒng),切換到advanced目錄執(zhí)行php init命令進(jìn)行初始化,如果你是windows系統(tǒng),請雙擊advanced目錄下的init.bat文件
php init5.服務(wù)器配置 5.1 更改hosts文件內(nèi)容
127.0.0.1 www.demo.com 127.0.0.1 admin.demo.com5.2 更改apache服務(wù)器設(shè)置
(更改完成后需要重啟Apache服務(wù)器)
更改apache下conf/extra/httpd-vhosts.conf
DocumentRoot "位置advancedfrontendweb" ServerName www.demo.com ServerAlias www.demo.com DocumentRoot "位置advancedackendweb" ServerName admin.demo.com ServerAlias admin.demo.com
配置完成后打開瀏覽器,輸入配置的本地域名:www.yii.dev訪問,成功了^_^
如果跳轉(zhuǎn)到apache服務(wù)器,還需要將apache
httpd-conf中Include conf/extra/httpd-vhosts.conf
前面的#注釋去掉,重啟apache服務(wù)器即可
安裝小結(jié):
1、通過官網(wǎng)或Composer下載Yii
2、解壓后拷貝advanced目錄放到web可訪問目錄,文件名advanced,不做改動(dòng)
3、如果你是類linux系統(tǒng),切換到advanced目錄執(zhí)行php init命令進(jìn)行初始化,如果你是windows系統(tǒng),請雙擊advanced目錄下的init.bat文件
4、接下來會(huì)讓我們選擇開發(fā)環(huán)境 0開發(fā)環(huán)境 1生產(chǎn)環(huán)境 這里我們選擇0 開發(fā)環(huán)境,輸入后回車,會(huì)讓我們輸入yes或者no進(jìn)行確認(rèn),這里我們輸入yes確認(rèn)即可
5、ok了之后,你仍然需要做得是切換到根目錄下,執(zhí)行命令composer install
6、驗(yàn)證下是否安裝成功了,這個(gè)時(shí)候你可以在瀏覽器地址欄輸入http://localhost/advanced/fro...看效果了,界面上顯示一個(gè)大大的Congratulations即代表安裝成功!
三、第一個(gè)程序-Hello,world更多詳情請參考該博文:yii2入門-安裝 Yii2
先來看幾個(gè)重要的文件夾:
// 1.視圖文件夾: frontendviews // 2.控制器 frontendcontrollers // 3.Model層 frontendmodel
再來看一段程序TestController.php
namespace frontendcontrollers; use yiiwebController; class TestController extends Controller { public function actionIndex () { return $this->render("index"); } public function actionCreate () { } }
創(chuàng)建模板:frontend/views/test/index.php
Hello World!
Yii2語法規(guī)定:聲明的控制器必須帶上Controller后綴,同時(shí)操作必須帶上前綴action!
yii2中操作名(action)遵循駝峰式命名,也就是說如果你是多個(gè)單詞,請保證你的命名規(guī)則是actionCreateArticle而不是actionCreatearticle!當(dāng)然,這只是一種規(guī)范,你不這樣做也沒人攔你。需要提醒注意的是多個(gè)單詞駝峰式命名,訪問操作的時(shí)候,多個(gè)單詞需要像create-article這樣用連接符連接而不是createArticle哦
訪問第一個(gè)測試文件前的配置:
首先我們先配置下域名yii.dev指向frontendweb目錄,我們后文所指的該域名均指向這里。
在frontendcontrollers目錄下新建TestController.php文件,內(nèi)容參考上面我們創(chuàng)建Test控制器的代碼。
地址欄輸入http://www.yii.dev/index.php?...訪問看看結(jié)果
如果需要傳遞參數(shù),則是這樣:
http://www.yii.dev/index.php?...
public function actionIndex($name) { return $this->render("index", [ "name" => $name, ]); }
修改模板:
Hello = yiihelpersHtml::encode($name) ?>!
使用遷移命令migration出現(xiàn)了這樣的問題:
? advanced yii migrate/create create_blog_table zsh: command not found: yii ? advanced
什么原因呢???
原來Mac下的遷移命令是php yii:
? advanced php yii migrate/create create_blog_table Yii Migration Tool (based on Yii v2.0.10)
禍不單行,使用gii Module Gnenrator又出現(xiàn)了這樣了問題,郁悶啊。。。
找了許多答案,終于找到了兩個(gè)靠譜的解決方案:
快速解決方法;把Yii根目錄下的/common/config/mail-local.php 文件中的localhost改成127.0.0.1
根本問題解決方法;windows不會(huì)出現(xiàn)這種問題,mac容易出現(xiàn)這種問題,是因?yàn)閙ac里面本來就有一個(gè)PHP了,如果還用XAMPP的話,這個(gè)時(shí)候就有兩個(gè)PHP,但如果不經(jīng)過配置,命令行方式的PHP默認(rèn)執(zhí)行的是系統(tǒng)自帶的,所以要修改默認(rèn)執(zhí)行的PHP
修改方法: 找到Y(jié)ii根目錄下的/yii文件打開,
第一行#!/usr/bin/env php 改成 #!/usr/bin/env /Applications/XAMPP/xamppfiles/bin/php
然后重啟服務(wù)器再試試:)
這里我們使用第一種簡單的方法,改下配置文件,/common/config/mail-local.php,將localhost改為127.0.0.1.
[ "db" => [ "class" => "yiidbConnection", // "dsn" => "mysql:host=localhost;dbname=yii", "dsn" => "mysql:host=127.0.0.1;dbname=yii", "username" => "root", "password" => "518666", "charset" => "utf8", ], "mailer" => [ "class" => "yiiswiftmailerMailer", "viewPath" => "@common/mail", // send all mails to a file by default. You have to set // "useFileTransport" to false and configure a transport // for the mailer to send real emails. "useFileTransport" => true, ], ], ];
OK,再次訪問,問題解決:
migration遷移文件步驟1.使用php yii migrate命令生成博客 blog 對應(yīng)的數(shù)據(jù)表遷移:
// 1.使用php yii migrate命令生成博客 blog 對應(yīng)的數(shù)據(jù)表遷移: php yii migrate/create create_blog_table
2.生成的遷移文件中添加字段
// 2. advancedconsolemigrations 目錄,可能你已經(jīng)注意到了,yii migrate 命令已經(jīng)在遷移文件中為我們添加了主鍵ID和表名,接下來我們要編輯該文件修改表名以及添加更多的列到數(shù)據(jù)表blog: $this->createTable("blog", [ "id" => $this->primaryKey(), "title" => $this->string(100)->notNull()->defaultValue(""), "content" => $this->text(), "create_time" => $this->datetime(), ]);
3.遷移文件生成表字段
./yii migrate
參考文章:
yii2實(shí)戰(zhàn)式教程
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22250.html
摘要:架構(gòu)的含義小石最近加入了一家生鮮電商公司。所以可以認(rèn)為所謂的框架就是確定了一些業(yè)內(nèi)規(guī)范,從某種程度上對大家形成約束或者形成都能理解的規(guī)定。沒有完美的架構(gòu)只有合適的架構(gòu)。 最近訂閱了一些架構(gòu)方面的資料,閱讀后獲益匪淺,想著整理一些自己的體會(huì)與思考,形成架構(gòu)方面的讀書筆記,一來與大家交流,二來通過文字的形式檢查自己到底收獲多少! 我們系統(tǒng)是MVC架構(gòu)的 淘寶的架構(gòu)好屌 最近在學(xué)習(xí)MySQL...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因?yàn)樵O(shè)計(jì)獅顏值同學(xué)也安利了這部。劇情簡介在獨(dú)身又勞累的小林劃重點(diǎn)一名程序員身邊突然出現(xiàn)的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因?yàn)樵O(shè)計(jì)獅顏值同學(xué)也安利了這部。劇情簡介在獨(dú)身又勞累的小林劃重點(diǎn)一名程序員身邊突然出現(xiàn)的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
摘要:出于實(shí)戰(zhàn)基礎(chǔ)加之自語言的書籍出版以來,幾乎所有的編程書籍都講述了一個(gè)的例子作為開始。操作,其實(shí)就是一個(gè)是動(dòng)作的意思,也可以描述為我們前面說的響應(yīng)地址。 作者:白狼 出處:http://www.manks.top/document/yii_first_application.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究...
閱讀 1261·2019-08-30 12:49
閱讀 3101·2019-08-28 18:14
閱讀 813·2019-08-26 11:38
閱讀 1669·2019-08-23 18:23
閱讀 2819·2019-08-23 17:04
閱讀 490·2019-08-23 16:52
閱讀 4001·2019-08-23 16:43
閱讀 2762·2019-08-23 16:12