您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Laravel大型项目系列教程(六)
实验楼官方网站:大型项目系列教程(六)优化、单元测试以及部署一、前言本节教程将讲解错误处理、配置文件的使用、单元测试以及部署到Apache服务器。二、Let'sgo1.错误处理如果用户访问的URL不存在或者服务器存在错误时,我们不希望返货一个错误的页面,而想返回一个友好提示的页面,在Laravel中可以很轻松地实现,Laravel有很简单的错误和日志处理,当服务器端存在错误时,app/start/global.php里默认有一个处理所有异常的异常处理程序:App::error(function(Exception$exception){Log::error($exception);});它会把异常信息写到日志中,日志文件默认是app/storage/logs/laravel.log。如果要显示一个友好的错误提示页面,我们可以创建一个视图:$phpartisangenerate:viewerror修改error.blade.php:@extends('_layouts.default')@section('main')Sorry,thereisanerror!returnIndex@stop在App::error(function(Exception$exception)中增加:实验楼官方网站:('error',array(),500);现在当访问出现错误时,就会出现错误提示页面:2.404处理当访问的URL不存在时,我们也可以返回一个友好的提示页面,先创建一个视图:$phpartisangenerate:viewnotFound修改notFound.blade.php:@extends('_layouts.default')@section('main')Sorry,thepageyourequesteddoesnotexist!returnIndex@stop在app/start/global.php中增加:App::missing(function($exception){returnResponse::view('notFound',array(),404);});现在当你访问的URL不存在时就会出现下面这样的页面:实验楼官方网站:配置文件有时候我们可能需要一些事先就设定好的值,程序执行的时候只需要引用这个值,例如分页显示时每页显示的数量,我们可以使用配置文件,在Laravel中使用配置文件也很方便,我们可以在app/config下新建一个名为custom.php,在其中添加:returnarray('page_size'=10,);现在你就可以在程序中使用了,把paginate(10)改成paginate(Config::get('custom.page_size')就行,其中custom对应app/config下的文件名,page_size对应相应配置文件中的键名,配置文件也可以根据你是开发环境还是生产环境进行不同的配置,详细的可以查看官方文档。4.单元测试在网站上线前,我们通常需要进行单元测试,Laravel提供了很方便的单元测试模块。我这里仅实现一个例子,我们可以先在app/tests下创建一个名为MyTest.php的文件,在里面定义一个名为MyTest的类,切记要继承TestCase类,然后就可以写测试代码了:classMyTestextendsTestCase{publicfunctiontestIndex(){$this-call('GET','/');$this-assertResponseOk();$this-assertViewHas('articles');$this-assertViewHas('tags');}publicfunctiontestNotFound(){$this-call('GET','test');$this-assertResponseStatus(404);}}测试代码写完之后,我们需要安装一个phpunit组件,在composer.json的require-dev中添加:phpunit/phpunit:3.7.*然后composerupdate安装,完成后执行vendor/bin/phpunit,稍等一会就会出现测试结果,在我们测试的时候如果想要做一些初始化操作,例如数据库迁移和填充等,可以定义在setUp方法中,切记要先执行parent::setUp,测试完成之后如果想要恢复实验楼官方网站:现场,可以在tearDown方法中进行,如果在测试的时候想要使用特定的配置文件,我们可以在app/config/testing目录下创建,测试时它会自动覆盖原来的配置。5.部署至Apache测试通过后,我们可以把网站部署到应用服务器了,在生产环境中,我们应该把app/config/app.php中的debug设为false。这里讲解怎么部署到Apache服务器上。首先声明我这里的LAMP环境是通过tasksel安装的,我们先安装mod_rewrite模块:$sudoa2enmodrewrite然后把/var/,这个目录是存放网站的目录:$sudochmod-R777/var/然后把我们开发的项目文件夹复制到这个文件夹中,我这里是blog文件夹:$cd/var/~/laravel-project/blog/.上面的开发项目路径要跟你自己的一样,之后我们需要把app/storage目录的权限改为777,因为storage文件夹中会存放日志等,涉及到写操作:$cdblog/app/$chmod-R777storage/下面配置服务器:$sudovim/etc/apache2/sites-enabled/000-default.conf把DocumentRoot/var/改成DocumentRoot/var/,再修改apache2.conf:$sudovim/etc/apache2/apache2.conf把AllowOverrideall加到OptionsIndexesFollowSymLinksAllowOverrideNoneRequireallgranted之后,现在启动Apache服务器:实验楼官方网站:在浏览器中访问localhost或者127.0.0.1就可以看到我们的网站了,至此部署就完成了。6.小结本节教程讲了错误处理优化、配置文件的使用、单元测试以及怎么部署到Apache服务器,你可以买一个域名和一个服务器,最好买VPS云服务器,虚拟空间非常有局限性,然后把你自己写的网站部署到服务器让大家一起访问。最后的代码下载:$gitclone本文详细出处:
本文标题:Laravel大型项目系列教程(六)
链接地址:https://www.777doc.com/doc-5152646 .html