日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

laravel大型项目系列教程(六)之优化、单元测试以及部署

發(fā)布時(shí)間:2024/4/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel大型项目系列教程(六)之优化、单元测试以及部署 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本節(jié)教程將講解錯(cuò)誤處理、配置文件的使用、單元測(cè)試以及部署到Apache服務(wù)器。

1.錯(cuò)誤處理

如果用戶訪問(wèn)的URL不存在或者服務(wù)器存在錯(cuò)誤時(shí),我們不希望返貨一個(gè)錯(cuò)誤的頁(yè)面,而想返回一個(gè)友好提示的頁(yè)面,在Laravel中可以很輕松地實(shí)現(xiàn),Laravel有很簡(jiǎn)單的錯(cuò)誤和日志處理,當(dāng)服務(wù)器端存在錯(cuò)誤時(shí),app/start/global.php里默認(rèn)有一個(gè)處理所有異常的異常處理程序:

App::error(function(Exception $exception) {Log::error($exception); });

它會(huì)把異常信息寫(xiě)到日志中,日志文件默認(rèn)是app/storage/logs/laravel.log。

如果要顯示一個(gè)友好的錯(cuò)誤提示頁(yè)面,我們可以創(chuàng)建一個(gè)視圖:

$ php artisan generate:view error

修改error.blade.php:

@extends('_layouts.default')@section('main')Sorry, there is an error!return Index@stop

在App::error(function(Exception $exception)中增加:

return Response::view('error', array(), 500);

現(xiàn)在當(dāng)訪問(wèn)出現(xiàn)錯(cuò)誤時(shí),就會(huì)出現(xiàn)錯(cuò)誤提示頁(yè)面:

2.404處理

當(dāng)訪問(wèn)的URL不存在時(shí),我們也可以返回一個(gè)友好的提示頁(yè)面,先創(chuàng)建一個(gè)視圖:

$ php artisan generate:view notFound

修改notFound.blade.php:

@extends('_layouts.default')@section('main')Sorry, the page you requested does not exist!return Index@stop

在app/start/global.php中增加:

App::missing(function($exception) {return Response::view('notFound', array(), 404); });

現(xiàn)在當(dāng)你訪問(wèn)的URL不存在時(shí)就會(huì)出現(xiàn)下面這樣的頁(yè)面:

3.配置文件

有時(shí)候我們可能需要一些事先就設(shè)定好的值,程序執(zhí)行的時(shí)候只需要引用這個(gè)值,例如分頁(yè)顯示時(shí)每頁(yè)顯示的數(shù)量,我們可以使用配置文件,在Laravel中使用配置文件也很方便,我們可以在app/config下新建一個(gè)名為custom.php,在其中添加:

return array('page_size' => 10, );

現(xiàn)在你就可以在程序中使用了,把paginate(10)改成paginate(Config::get('custom.page_size')就行,其中custom對(duì)應(yīng)app/config下的文件名,page_size對(duì)應(yīng)相應(yīng)配置文件中的鍵名,配置文件也可以根據(jù)你是開(kāi)發(fā)環(huán)境還是生產(chǎn)環(huán)境進(jìn)行不同的配置,詳細(xì)的可以查看官方文檔。

4.單元測(cè)試

在網(wǎng)站上線前,我們通常需要進(jìn)行單元測(cè)試,Laravel提供了很方便的單元測(cè)試模塊。我這里僅實(shí)現(xiàn)一個(gè)例子,我們可以先在app/tests下創(chuàng)建一個(gè)名為MyTest.php的文件,在里面定義一個(gè)名為MyTest的類,切記要繼承TestCase類,然后就可以寫(xiě)測(cè)試代碼了:

class MyTest extends TestCase {public function testIndex(){$this->call('GET', '/');$this->assertResponseOk();$this->assertViewHas('articles');$this->assertViewHas('tags');}public function testNotFound(){$this->call('GET', 'test');$this->assertResponseStatus(404);} }

測(cè)試代碼寫(xiě)完之后,我們需要安裝一個(gè)phpunit組件,在composer.json的require-dev中添加:

"phpunit/phpunit": "3.7.*"

然后composer update安裝,完成后執(zhí)行vendor/bin/phpunit,稍等一會(huì)就會(huì)出現(xiàn)測(cè)試結(jié)果,在我們測(cè)試的時(shí)候如果想要做一些初始化操作,例如數(shù)據(jù)庫(kù)遷移和填充等,可以定義在setUp方法中,切記要先執(zhí)行parent::setUp,測(cè)試完成之后如果想要恢復(fù)現(xiàn)場(chǎng),可以在tearDown方法中進(jìn)行,如果在測(cè)試的時(shí)候想要使用特定的配置文件,我們可以在app/config/testing目錄下創(chuàng)建,測(cè)試時(shí)它會(huì)自動(dòng)覆蓋原來(lái)的配置。

5.部署至Apache

測(cè)試通過(guò)后,我們可以把網(wǎng)站部署到應(yīng)用服務(wù)器了,在生產(chǎn)環(huán)境中,我們應(yīng)該把a(bǔ)pp/config/app.php中的debug設(shè)為false。這里講解怎么部署到Apache服務(wù)器上。首先聲明我這里的LAMP環(huán)境是通過(guò)tasksel安裝的,我們先安裝mod_rewrite模塊:

$ sudo a2enmod rewrite

然后把/var/www目錄的權(quán)限設(shè)為777,這個(gè)目錄是存放網(wǎng)站的目錄:

$ sudo chmod -R 777 /var/www/

然后把我們開(kāi)發(fā)的項(xiàng)目文件夾復(fù)制到這個(gè)文件夾中,我這里是blog文件夾:

$ cd /var/www/ $ cp -r ~/laravel-project/blog/ .

上面的開(kāi)發(fā)項(xiàng)目路徑要跟你自己的一樣,之后我們需要把a(bǔ)pp/storage目錄的權(quán)限改為777,因?yàn)閟torage文件夾中會(huì)存放日志等,涉及到寫(xiě)操作:

$ cd blog/app/ $ chmod -R 777 storage/

下面配置服務(wù)器:

$ sudo vim /etc/apache2/sites-enabled/000-default.conf

把DocumentRoot/var/www/html改成DocumentRoot /var/www/blog/public,再修改apache2.conf:

$ sudo vim /etc/apache2/apache2.conf

AllowOverride all

加到

Options Indexes FollowSymLinks AllowOverride None Require all granted

之后,現(xiàn)在啟動(dòng)Apache服務(wù)器:

$ sudo service apache2 start

在瀏覽器中訪問(wèn)localhost或者127.0.0.1就可以看到我們的網(wǎng)站了,至此部署就完成了。

6.小結(jié)

本節(jié)教程講了錯(cuò)誤處理優(yōu)化、配置文件的使用、單元測(cè)試以及怎么部署到Apache服務(wù)器,你可以買一個(gè)域名和一個(gè)服務(wù)器,最好買VPS云服務(wù)器,虛擬空間非常有局限性,然后把你自己寫(xiě)的網(wǎng)站部署到服務(wù)器讓大家一起訪問(wèn)。

最后的代碼下載:

$ git clone https://github.com/shiyanlou/laravel-blog-6.git

本文詳細(xì)出自http://www.shiyanlou.com/courses/123,轉(zhuǎn)載請(qǐng)注明出處

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的laravel大型项目系列教程(六)之优化、单元测试以及部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。