1 启动项目
第一步 下载源码
执行命令前确保已经安装了composer 和 php7
laravel new laravel55 --dev
如果laravel 命令报错,请参考 http://blog.csdn.net/fishermanmax/article/details/51916898
如果下载时报错,请参考 http://www.jianshu.com/p/0456dd3cc78b
第二步 生成key
如果代码下载完毕,进入代码所在文件夹,将文件.env.example 改为.env,执行以下命令生成key
php artisan key:generate
第三步 启动页面
php artisan serve
2 感受自定义错误页面的便利
生产环境下 设置.env文件的APP_DEBUG=false ,根据报错错误码 ,可以在resources/views/errors文件夹下 创建 对应的文件 例如500.blade.php ,当页面错误为500 ,将自动展示这个view页面中的错误信息。
3 感受preset 命令
preset命令用于为项目开始时候预设前端框架。preset命令共有4种(none, bootstrap, vue, react),默认为vue。 执行以下命令可以将前端切换为react设置。
php artisan preset react
具体的页面变化体现在package.json , resources/assets/js文件包等。
4 Package Auto Discovery功能
可以自动下载包中相关的文件,免去了手工下载配置的麻烦
使用方式:在composer.json中增加子节点extra 节点中的内容为一个下载的示例
"extra": {
"laravel":{
"providers":[
"\\JellyBool\\Translug\\TranslugServiceProvider"
],
"aliases":{
"Translug": "\\JellyBool\\Translug\\TranslugFacade"
}
}
}
在命令行中输入 以下命令 进行下载,这时候会自动执行package auto discovery功能 ,将相关文件自动下载
composer require jellybool/translug
我们在routes/web.php文件中添加一行代码检测translug功能是否能用
Route::get('/', function () {
dd(translug('如何安装laravel'));
return view('welcome');
});
还需要在config/services.php文件中添加以下节点
'youdao' => [
'appKey' => env('YOUDAO_APP_KEY'),
'appSecret' => env('YOUDAO_APP_SECRET'),
],
5 Migrate fresh 命令
以下命令演示 说明了 migrate fresh命令和migrate refresh命令的区别
6 Request 表单验证
在 Laravel 5.5 的时候,我们可以直接在 Request 对象上面直接写表单验证了,而且在没有提供 token 的情况下,Laravel 5.5 的错误返回也变了。
新的写法示例
7 make:rule 自定义验证
例如 自定义一个规则叫PhoneValidate
php artisan make:rule PhoneValidate
命令执行完成后就可以在app/Rules/目录下看到新生成的PhoneValidate.php文件
PhoneValidate.php文件中两个方法的实现如下
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return preg_match('/^(13[0-9]|14[579]|15[0-3,5-9]|17[0135678]|18[0-9])\\d{8}/',$value);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return '请填写正确的手机号';
}
后端调用方式
前端代码
8 make:factory 介绍
在 Laravel 5.5 的时候,新增了一个 make:factory 命令,它的主要应用场景就是:解决我们在之前的版本当中在 ModelFactory 文件里面定义太多的 Model 现象。
使用示例: 执行命令
php artisan make:factory PostFactory --model=Post
即在database/factories文件夹下生成了 PostFactory.php文件
简单修改PostFactory文件的设置如下
use Faker\Generator as Faker;
$factory->define(App\Post::class, function (Faker $faker) {
return [
'title'=>$faker->sentence,
'body'=>$faker->paragraph
];
});
在命令行中使用factory命令生成假数据
php artisan tinker
factory('App\Post',5)->create();
9 Blade if 自定义标签
Laravel 5.5 的时候针对在视图中使用很多的逻辑判断推出了 Blade::if 来满足我们自定义 Blade 标签的用法,很简单却非常的有用!
在app/Providers/AppServiceProvider.php文件中可以自定义blade标签。示例代码如下
前端页面代码
10 Markdown 邮件渲染
邮件的 Markdown 写法其实在 Laravel 5.4 的时候就已经支持了,但是对于邮件测试来说,这样的渲染结果其实不是很方便,所以在 Laravel 5.5 的时候,我们可以直接使用 Mailable 来渲染邮件模板了
使用示例:
执行命令
php artisan make:mail NewUser --markdown=emails.user
在app/Mail文件夹下生成了一个叫NewUser.php的文件 ,其中build方法如下
public function build()
{
return $this->markdown('emails.user');
}
同时在 resources/views/emails文件夹下也生成了 user.blade.php文件,内容如下, 在这里可以用markdown语法编辑邮件内容。
@component('mail::message')
# Introduction
The body of your message.
@component('mail::button', ['url' => ''])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
修改路由文件routes/web.php 内容如下,就可以在浏览器查看邮件内容
Route::get('/', function () {
return new \App\Mail\NewUser();
});
11 Route::view 路由注册
Laravel 5.5 引进了一个新的路由注册方法:Route::view,这个主要的应用场景就是在我们站点某些页面是不需要数据操作,只是返回一个静态的视图文件的时候就可以直接这样用上。
例如 注册一个welcome的路由并且传递name变量写法如下
Route::view('welcome','welcome',['name'=>'lilu']);
12 自动注册 Artisan 命令
在以前的 laravel 版本中,我们自己创建 Artisan 命令的时候需要到 Kernel 文件中注册命令才可以生效,而在 5.5 的时候,Laravel 通过 load 的方法实现,直接就在生成命令之后可以使用命令了,免去了注册这一步。
创建一个自定义命令 SayHello
php artisan make:command SayHello
对应的在app/Console/Commands文件夹下会生成一个SayHello.php文件
SayHello文件内容如下
namespace App\Console\Commands;
use Illuminate\Console\Command;
class SayHello extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'say-hello';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Hi girl!';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$this->info('Hello Girl');
}
}
在命令行执行以下命令 可以看到执行结果
php artisan say-hello
13 Api Resource
Laravel 5.5 引入了新的 API 支持:Api Resource ,这对于我们使用 Laravel 开发 API 应用的使用非常有用,我们可以快速方便的自定义 API 数据的各种格式和返回的字段等。
使用示例:创建一个User Resource
php artisan make:resource User
在app/Http/Resources文件夹下会生成一个User.php文件 此文件用于处理单个数据
输入如下命令可以处理集合数据
artisan make:resource UserCollection
在app/Http/Resources文件夹下会生成一个UserCollection.php
用法如下: