安装包的时候 后置参数 –dev 表明只在开发环境中使用。
Debugbar
1 | composer require "barryvdh/laravel-debugbar:~3.6" --dev |
翻译包
支持了 52 个国家的语言
1 | composer require "overtrue/laravel-lang:~6.0" |
如果你想修改扩展包提供的语言文件,可以使用以下命令发布语言文件到项目里:
1 | php artisan lang:publish zh_CN |
图形验证码
1 | composer require "mews/captcha:~3.0" |
生成配置文件
1 | php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider' |
调用
1 | <img class="thumbnail captcha mt-3 mb-2" src="%7B%7B%20captcha_src('flat')%20%7D%7D" onclick="this.src='/captcha/flat?'+Math.random()" title="点击图片重新获取验证码"> |
验证
1 | 'captcha' => ['required', 'captcha'], |
图片裁切
1 | composer require "intervention/image:^2.7" |
代码示例
1 | use Intervention\Image\Facades\Image; |
代码生成器
1 | composer require "summerblue/generator:9.*" --dev |
示例
1 | php artisan make:scaffold Topic --schema="title:string:index,body:text,user_id:bigInteger:unsigned:index,category_id:integer:unsigned:index,reply_count:integer:unsigned:default(0),view_count:integer:unsigned:default(0),last_reply_user_id:integer:unsigned:default(0),order:integer:unsigned:default(0),excerpt:text:nullable,slug:string:nullable" |
生成的文件作用
创建话题的数据库迁移文件 —— 2018_12_23_104258_create_topics_table.php;
创建话题数据工厂文件 —— TopicFactory.php;
创建话题数据填充文件 —— TopicsTableSeeder.php;
创建模型基类文件 —— Model.php, 并创建话题数据模型;
创建话题控制器 —— TopicsController.php;
创建表单请求的基类文件 —— Request.php,并创建话题表单请求验证类;
创建话题模型事件监控器 TopicObserver 并在 AppServiceProvider 中注册;
创建授权策略基类文件 —— Policy.php,同时创建话题授权类,并在 AuthServiceProvider 中注册;
在 web.php 中更新路由,新增话题相关的资源路由;
新建符合资源控制器要求的三个话题视图文件,并存放于 resources/views/topics 目录中;
执行了数据库迁移命令 artisan migrate;
因此次操作新建了多个文件,最终执行 composer dump-autoload 来生成 classmap。
laravel active
1 | composer require "summerblue/laravel-active:9.*" |
active_class 函数的用法,此函数的定义如下:
1 | /** |
if_route () - 判断当前对应的路由是否是指定的路由;
if_route_param () - 判断当前的 url 有无指定的路由参数。
if_query () - 判断指定的 GET 变量是否符合设置的值;
if_uri () - 判断当前的 url 是否满足指定的 url;
if_route_pattern () - 判断当前的路由是否包含指定的字符;
if_uri_pattern () - 判断当前的 url 是否含有指定的字符;
示例用法
1 | active_class(if_route('topics.index')) |
HTMLPurifier for Laravel
HTMLPurifier for Laravel 是对 HTMLPurifier 针对 Laravel 框架的一个封装。本章节中,我们将使用此扩展包来对用户内容进行过滤。
1 | composer require "mews/purifier:~3.3" |
配置 HTMLPurifier for Laravel
1 | php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider" |
config
1 | return [ |
示例
1 | $topic->body = clean($topic->body, 'user_topic_body'); |
中文转拼音
PinYin 是 安正超 开发的
1 | composer require "overtrue/pinyin:~4.0" |
示例
1 | use Overtrue\Pinyin\Pinyin; |
队列监控 Horizon
1 | composer require "laravel/horizon:~5.6" |
配置文件发布
1 | php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider" |
访问 域名/horizon
Horizon 是一个监控程序,需要常驻运行,我们可以通过以下命令启动:
1 | php artisan horizon |
启动 Horizon 之后,就不需要queue:linsten监控了
laravel-permission
1 | composer require "spatie/laravel-permission:~3.0" |
生成数据库迁移文件
1 | php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations" |
生成配置信息
1 | php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config" |
加载 HasRoles
1 | use Spatie\Permission\Traits\HasRoles; |
用法
新建角色,只需要提供 name 字段即可
1 | use Spatie\Permission\Models\Role; |
为角色添加权限
1 | use Spatie\Permission\Models\Permission; |
赋予用户某个角色:
1 | #单个角色 |
检查用户角色
1 |
|
检查权限:
1 |
|
直接给用户添加权限
1 | #为用户添加『直接权限』 |
用户切换工具
1 | composer require "viacreative/sudo-su:~1.1" |
添加 Provider
1 | //在 app/Providers/AppServiceProvider.php 的 register 方法中添加 |
发布资源文件
1 | php artisan vendor:publish --provider="VIACreative\SudoSu\ServiceProvider" |
修改配置信息
1 | return [ |
模板植入
1 | @if(app()->isLocal()) |
注: 配置信息中的 allowed_tlds 的值一定要配置,自己域名的顶级域名,即top,com等
短信发送组件
1 | composer require "overtrue/easy-sms" |
该组件还没有 Laravel 的 ServiceProvider
添加配置文件(config/easysms.php)
1 | return [ |
然后创建一个 ServiceProvider
1 | php artisan make:provider EasySmsServiceProvider |
写入
1 | namespace App\Providers; |
最后打开config/app.php
在 providers中增加App\Providers\EasySmsServiceProvider::class,
调用
1 | $sms = app('easysms'); |
通过迁移文件修改字段属性需要doctrine/dbal 组件
1 | composer require doctrine/dbal |
Include 机制
1 | composer require spatie/laravel-query-builder |
1 | use Spatie\QueryBuilder\QueryBuilder; |
sql日志
1 | composer require overtrue/laravel-query-logger --dev |
1 | tail -f ./storage/logs/laravel.log |
配置信息(在logging中添加如下内容)
1 | 'query' => [ |