前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >laravel5.5功能尝鲜

laravel5.5功能尝鲜

作者头像
lilugirl
发布2019-05-28 10:57:56
3K0
发布2019-05-28 10:57:56
举报
文章被收录于专栏:前端导学前端导学

1 启动项目

第一步 下载源码

执行命令前确保已经安装了composer 和 php7

代码语言:javascript
复制
laravel new laravel55 --dev

如果laravel 命令报错,请参考 http://blog.csdn.net/fishermanmax/article/details/51916898 如果下载时报错,请参考 http://www.jianshu.com/p/0456dd3cc78b

第二步 生成key

如果代码下载完毕,进入代码所在文件夹,将文件.env.example 改为.env,执行以下命令生成key

代码语言:javascript
复制
php artisan key:generate

第三步 启动页面

代码语言:javascript
复制
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设置。

代码语言:javascript
复制
php artisan preset react

具体的页面变化体现在package.json , resources/assets/js文件包等。

4 Package Auto Discovery功能

可以自动下载包中相关的文件,免去了手工下载配置的麻烦

使用方式:在composer.json中增加子节点extra 节点中的内容为一个下载的示例

代码语言:javascript
复制
"extra": {
      "laravel":{
        "providers":[
          "\\JellyBool\\Translug\\TranslugServiceProvider"
        ],
        "aliases":{
          "Translug": "\\JellyBool\\Translug\\TranslugFacade"
        }
      }
    }

在命令行中输入 以下命令 进行下载,这时候会自动执行package auto discovery功能 ,将相关文件自动下载

代码语言:javascript
复制
composer require jellybool/translug

我们在routes/web.php文件中添加一行代码检测translug功能是否能用

代码语言:javascript
复制
Route::get('/', function () {
    dd(translug('如何安装laravel'));
    return view('welcome');
});

还需要在config/services.php文件中添加以下节点

代码语言:javascript
复制
  '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

代码语言:javascript
复制
php artisan make:rule PhoneValidate

命令执行完成后就可以在app/Rules/目录下看到新生成的PhoneValidate.php文件

PhoneValidate.php文件中两个方法的实现如下

代码语言:javascript
复制
  /**
     * 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 现象。

使用示例: 执行命令

代码语言:javascript
复制
php artisan make:factory PostFactory --model=Post

即在database/factories文件夹下生成了 PostFactory.php文件

简单修改PostFactory文件的设置如下

代码语言:javascript
复制
use Faker\Generator as Faker;

$factory->define(App\Post::class, function (Faker $faker) {
    return [
        'title'=>$faker->sentence,
        'body'=>$faker->paragraph
    ];
});

在命令行中使用factory命令生成假数据

代码语言:javascript
复制
php artisan tinker
代码语言:javascript
复制
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 来渲染邮件模板了

使用示例:

执行命令

代码语言:javascript
复制
php artisan make:mail NewUser --markdown=emails.user

在app/Mail文件夹下生成了一个叫NewUser.php的文件 ,其中build方法如下

代码语言:javascript
复制
  public function build()
    {
        return $this->markdown('emails.user');
    }

同时在 resources/views/emails文件夹下也生成了 user.blade.php文件,内容如下, 在这里可以用markdown语法编辑邮件内容。

代码语言:javascript
复制
@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 内容如下,就可以在浏览器查看邮件内容

代码语言:javascript
复制
Route::get('/', function () {
   return new \App\Mail\NewUser();
});

11 Route::view 路由注册

Laravel 5.5 引进了一个新的路由注册方法:Route::view,这个主要的应用场景就是在我们站点某些页面是不需要数据操作,只是返回一个静态的视图文件的时候就可以直接这样用上。

例如 注册一个welcome的路由并且传递name变量写法如下

代码语言:javascript
复制
Route::view('welcome','welcome',['name'=>'lilu']);

12 自动注册 Artisan 命令

在以前的 laravel 版本中,我们自己创建 Artisan 命令的时候需要到 Kernel 文件中注册命令才可以生效,而在 5.5 的时候,Laravel 通过 load 的方法实现,直接就在生成命令之后可以使用命令了,免去了注册这一步。 创建一个自定义命令 SayHello

代码语言:javascript
复制
php artisan make:command SayHello

对应的在app/Console/Commands文件夹下会生成一个SayHello.php文件

SayHello文件内容如下

代码语言:javascript
复制
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');
    }
}

在命令行执行以下命令 可以看到执行结果

代码语言:javascript
复制
php artisan say-hello

13 Api Resource

Laravel 5.5 引入了新的 API 支持:Api Resource ,这对于我们使用 Laravel 开发 API 应用的使用非常有用,我们可以快速方便的自定义 API 数据的各种格式和返回的字段等。

使用示例:创建一个User Resource

代码语言:javascript
复制
php artisan make:resource User

在app/Http/Resources文件夹下会生成一个User.php文件 此文件用于处理单个数据

输入如下命令可以处理集合数据

代码语言:javascript
复制
artisan make:resource UserCollection

在app/Http/Resources文件夹下会生成一个UserCollection.php 用法如下:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 启动项目
    • 第一步 下载源码
      • 第二步 生成key
        • 第三步 启动页面
        • 2 感受自定义错误页面的便利
        • 3 感受preset 命令
        • 4 Package Auto Discovery功能
        • 5 Migrate fresh 命令
        • 6 Request 表单验证
        • 7 make:rule 自定义验证
        • 8 make:factory 介绍
        • 9 Blade if 自定义标签
        • 10 Markdown 邮件渲染
        • 11 Route::view 路由注册
        • 12 自动注册 Artisan 命令
        • 13 Api Resource
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档