Laravel IDE Helper
barryvdh/laravel-ide-helper
扩展包可以通过执行命令生成 IDE Helper 文件,从而使用户的 IDE (PHPStorm, Sublme) 能够实现自动完成、代码跟踪和代码智能提示等功能,提高开发者的工作效率。
安装与使用
1). 使用 Composer 进行安装
1
| composer require barryvdh/laravel-ide-helper --dev
|
2). 在文件 app/Providers/AppServiceProvider.php
中注册该扩展包
1 2 3 4 5 6 7 8 9 10 11
| ... public function register() { // 生成环境不需要注册该服务 if ($this->app->environment() !== 'production') { $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class); } } ...
|
3). 执行以下命令生成 IDE Helper 文件
1
| php artisan ide-helper:generate
|
4). 也可以在文件 composer.json
进行配置,在安装或更新扩展包时自动生成 IDE Helper 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ... "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], "post-create-project-cmd": [ "@php artisan key:generate" ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "php artisan ide-helper:generate", "php artisan ide-helper:meta", "@php artisan package:discover" ] }, ...
|
5). 也可以生成模型字段智能提示的代码注释,安装以下扩展包并执行命令生成代码注释
1 2 3 4 5 6 7 8 9 10
| composer require doctrine/dbal --dev // 生成 app\User.php 模型代码注释 php artisan ide-helper:models User // 生成 app\Models\Foto.php 模型代码注释 php artisan ide-helper:models "App\Models\Foto" // 生成目录 Models 下所有模型的代码注释 php artisan ide-helper:models --dir="Models"
|
Laravel Debugbar
barryvdh/laravel-debugbar
扩展包可以将 Laravel 项目的各项开发信息呈现给开发者,可以让开发者快速定位问题,提高 Debug 效率。
安装与使用
1). 使用 Composer 进行安装
1
| composer require barryvdh/laravel-debugbar --dev
|
2). 确保文件 .env
的 APP_DEBUG
值为 true
。
3). 在文件 app/Providers/AppServiceProvider.php
中注册该扩展包
1 2 3 4 5 6 7 8 9 10
| ... public function register() { if (env('APP_DEBUG')) { $this->app->register(\Barryvdh\Debugbar\ServiceProvider::class); } } ...
|
4). 执行以下命令完成配置
1
| php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
|
5). 常用方法,需要在配置文件 config/app
的数组 aliases
添加 'Debugbar' => Barryvdh\Debugbar\Facade::class,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| // 抛出信息 Debugbar::info($object); Debugbar::error('Error!'); Debugbar::warning('Watch out…'); Debugbar::addMessage('Another message', 'mylabel'); // 计算耗时 Debugbar::startMeasure('render','Time for rendering'); Debugbar::stopMeasure('render'); Debugbar::addMeasure('now', LARAVEL_START, microtime(true)); Debugbar::measure('My long operation', function() { // Do something… }); // 抛出异常 try { throw new Exception('foobar'); } catch (Exception $e) { Debugbar::addThrowable($e); } // 启用关闭 Debugbar Debugbar::enable(); Debugbar::disable();
|
多语言
overtrue/laravel-lang
是基于 caouecs/Laravel-lang
、包含 52 种语言的扩展包。
安装与使用
1). 使用 Composer 进行安装
1
| composer require "overtrue/laravel-lang:~3.0"
|
2). 安装完毕之后,将文件 config/app.php
的代码进行替换:
1 2 3 4 5
| // 原来代码 Illuminate\Translation\TranslationServiceProvider::class, // 替换代码 Overtrue\LaravelLang\TranslationServiceProvider::class,
|
3). 然后修改文件 config/app.php
的配置项并执行命令
1 2 3 4 5 6 7 8
| ... 'locale' => 'zh-CN', ... // 需要执行的命令 php artisan lang:publish zh-CN
|
4). 需要额外添加语言项,请在 resources/lang/zh-CN
下建立文件即可,例如新增文件 resources/lang/zh-CN/example.php
,代码如下:
1 2 3 4 5 6
| <?php return [ 'hello' => '你好', 'world' => ':hello世界', ];
|
然后在可以使用函数 trans()
返回自定义语言项:
1 2
| echo trans('example.hello'); echo trans('example.world', ['hello' => '这个棒棒的']);
|
验证码
mews/captcha
是一个 Laravel 5 验证码扩展包。
安装与使用
1). 使用 Composer 进行安装
1
| composer require mews/captcha
|
2). 在文件 config/app.php
加入代码如下:
1 2 3 4 5 6 7 8
| 'providers' => [ // ... Mews\Captcha\CaptchaServiceProvider::class, ], 'aliases' => [ // ... 'Captcha' => Mews\Captcha\Facades\Captcha::class, ]
|
3). 然后执行命令如下:
1
| php artisan vendor:publish
|
4). 常用方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| // 生成图片 captcha(); Captcha::create(); // 生成 URL captcha_src(); Captcha::src(); // 生成 HTML captcha_img(); Captcha::img(); // 使用不同配置 captcha_img('flat'); Captcha::img('inverse');
|
例子
以命令 php artisan make:auth
生成的代码为例,在文件 login.blade.php
添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <div class="form-group {{ $errors->has('captcha') ? ' has-error' : '' }}"> <label for="captcha" class="col-md-4 control-label">验证码</label> <div class="col-md-6"> <input id="captcha" class="form-control" name="captcha" > <img class="thumbnail captcha" src="{{ captcha_src('flat') }}" onclick="this.src='/captcha/flat?'+Math.random()" title="点击图片重新获取验证码" style="margin-bottom: 0;margin-top: 10px;cursor: pointer;"> @if ($errors->has('captcha')) <span class="help-block"> <strong>{{ $errors->first('captcha') }}</strong> </span> @endif </div> </div>
|
然后在验证用户登录的代码块添加表单验证规则和验证错误信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public function rules() { return [ ... 'captcha' => 'required|captcha', ]; } public function messages(){ return [ ... 'captcha.required' => '验证码不能为空', 'captcha.captcha' => '请输入正确的验证码', ]; }
|
用户切换
viacreative/sudo-su
是一个允许开发人员切换为其他用户登录的扩展包,在测试用户权限时可以大大提高开发效率。
安装与使用
1). 使用 Composer 进行安装
1
| composer require viacreative/sudo-su --dev
|
2). 在文件 app/Providers/AppServiceProvider.php
中注册扩展包的服务提供者
1 2 3 4 5 6 7 8 9 10
| ... public function register() { if (config('app.debug')) { $this->app->register(\VIACreative\SudoSu\ServiceProvider::class); } } ...
|
3). 然后在视图文件中添加代码如下:
1 2 3
| @if (config('app.debug')) @include('sudosu::user-selector') @endif
|
4). 发布扩展包的相关资源到项目中
1
| php artisan vendor:publish
|
5). 修改配置文件 config/sudosu.php
1 2 3 4 5
| // 允许使用扩展包的项目环境 'allowed_tlds' => ['dev', 'local'], // 用户对应的模型 'user_model' => App\Models\User::class
|