laravel5.5功能尝鲜

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
用法如下:

转载于:https://my.oschina.net/lilugirl2005/blog/1546273

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值