小艾的自留地

Stay foolish, Stay hungry

Laravel 开发如此高效,除了其框架本身易用之外,同时也离不开各种丰富的扩展包的支持。

辅助类

laravel-cors

所有问题,跨域先行。跨域问题没有解决,一切处理都是纸老虎。

laravel-cors 是一个解决跨域问题的扩展包,不知道是从哪个版本起,已经默认引入框架了。

1
composer require fruitcake/laravel-cors

Laravel-lang

Laravel-lang 是一个非常易用的语言包,现已支持多达75 种语言。

1
composer require "overtrue/laravel-lang:~5.0"

编辑配置文件:config/app.php

1
'locale' => 'zh_CN',

Captcha for Laravel

captcha 是一个生成验证码的扩展包。

1
composer require mews/captcha

Carbon

Carbon 可以帮助我们在 PHP 开发中处理日期 / 时间变得更加简单、更具语义化。

1
composer require nesbot/carbon

记得设置时区 config/app.php

1
'timezone' => 'PRC',

Eloquent Model Generator

Eloquent Model Generator 是一个基于代码生成器的 Eloquent Model 生成工具。

只在开发环境中安装:

1
composer require --dev krlove/eloquent-model-generator

使用:

1
php artisan krlove:generate:model UserModel --table-name=user --output-path=./Models --namespace=App\\Models

IDE Helper

Laravel IDE Helper 是一个代码提示及补全工具。

只在开发环境中安装:

1
composer require --dev barryvdh/laravel-ide-helper

对于只在开发环境中需要安装的扩展包,在 app/Providers/AppServiceProvider.php 文件中以如下方式进行注册:

1
2
3
4
5
6
public function register()
{
if ($this->app->environment() !== 'production') {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}
}

基础用法:

  • php artisan ide-helper:generate:为 Facades 生成注释
  • php artisan ide-helper:models
  • php artisan ide-helper:meta:生成 PhpStorm Meta file

为 Facades 生成注释

运行一下命令:

1
php artisan ide-helper:generate

执行完成之后会在项目根目录下生成一个 _ide_helper.php 文件。

为模型生成注解

使用Laravel 为我们提供的 make:model 默认不会为在模型文件中,生成相应的注解。

当我们需要通过对象获取模型的某个属性时,IDE 这时会提示未定义的属性,虽然不会影响功能的使用,但是对于开发人员来说并不友好。

看起来就像这样:

使用IDE Helper 来生成模型注解:

1
2
3
php artisan ide-helper:models "App\Models\UserModel"

Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead? (Yes/No): (yes/no) [no]:

建议选择『yes』,否则会生成「_ide_helper_models.php」文件,这样在跟踪文件的时候不会跳转到「_ide_helper_models.php」文件。

如果希望为所有模型都加上注解,则省略后面的参数。

看起来好多了:

注意: 为模型生成字段信息必须在数据库中存在相应的数据表。

自动为链式操作注释

1
php artisan ide-helper:meta

执行完成之后会在项目根目录下生成一个 .phpStorm.meta.php 文件。

Laravel Query Logger

1
composer require overtrue/laravel-query-logger --dev

启用日志记录 config/logging.php

1
2
3
4
5
6
7
8
9
10
11
12
// 加入以下配置,开启日志查询记录
'query' => [
'enabled' => env('LOG_QUERY', env('APP_ENV') === 'local'),

// Only record queries that are slower than the following time
// Unit: milliseconds
'slower_than' => 0,

// Only record queries when the QUERY_LOG_TRIGGER is set in the environment,
// or when the trigger HEADER, GET, POST, or COOKIE variable is set.
'trigger' => env('QUERY_LOG_TRIGGER'),
],

使用:

1
tail -f ./storage/logs/laravel.log

Logging for PHP

Logging for PHP 是一个可以将日志保存至各种位置的扩展包。

通常在测试回调时,会用得比较多。

1
composer require monolog/monolog

基础用法:

1
2
3
4
5
6
7
8
9
10
11
12
<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// add records to the log
$log->warning('Foo');
$log->error('Bar');

Laravel Debugbar

Laravel Debugbar 是一个很棒的扩展包。在很多应用程序方面,你可以使用它来收集数据。比如查询,视图,时间等等;

1
composer require barryvdh/laravel-debugbar --dev

Laravel Telescope

Laravel Telescope 是一个非常酷的工具,对 Laravel 应用,有“优雅的调试助手”的美称。

你可以用它来监控很多东西:

  • 请求
  • 命令
  • 异常
  • 日志
  • 查询
  • 事件
1
composer require laravel/telescope --dev

Faker

fzaninotto/Faker 是一个生成假数据的 PHP 库,支持非常多的语言。

1
composer require fzaninotto/faker

Poppy Faker 是基于 fzaninotto/Faker 的中文轻量级 Fake 数据生成类。

1
composer require poppy/faker

开发类

jwt-auth

jwt-auth 是 Laravel 和 lumen 下一个优秀 JWT 组件。

具体使用介绍可以查看我的——Laravel jwt-auth 使用详解

laravel-enum

laravel-enum 是一个简单易用,扩展性高的处理枚举的扩展包。

1
composer require bensampo/laravel-enum

Intervention/image

Intervention/image 是一个处理图片裁切的扩展包,对应的API 文档在这里

1
composer require intervention/image

laravel-wechat

微信 SDK for Laravel

1
composer require "overtrue/laravel-wechat"

easy-sms

easy-sms 一款满足你的多种发送需求的短信发送组件。

1
composer require "overtrue/easy-sms"

评论