Laravel 常用扩展包

  • Laravel提供很多的扩展包,来提高开发效率,避免很多重复造轮子的工作,这里我只推荐几个基础的,仅供参考。
一,Debugbar

Debugbar 是用来调试的扩展包,可以在显示调试信息以及运行情况。具体代码可查看 GitHub
1.使用composer安装扩展包

composer require barryvdh/laravel-debugbar

2.在 config/app.php 中注册服务 Barryvdh\Debugbar\ServiceProvider::class,添加在providers数组中
在这里插入图片描述
3.添加门面 ‘Debugbar’ => Barryvdh\Debugbar\Facade::class, 添加在aliases数组中
在这里插入图片描述
4.发布服务,生成配置文件

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

会在config目录下生成一个新的debugbar.php 配置文件,需要同时开启.env配置文件中的
APP_DEBUG=true 成功后显示如下
在这里插入图片描述
会显示当前路由、使用内存、使用sql,加载时间、PHP 版本、Session 等等信息。
可在控制器中使用,需要先引入命名空间 use Barryvdh\Debugbar\Facade as Debugbar; 不然会报错

Debugbar::info($articles);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel');
二,Laravel Query Logger

上面的debugbar使用仅限于web,我们开发Api的时候可能需要看看每次请求执行的sql,就可以使用 Laravel Query Logger 记录日志来查看
1.使用composer安装扩展包

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

2.配置参数
打开config/logging.php文件,在return中添加如下

return [
	...
	
    'query' => [
        'enabled' => env('LOG_QUERY', true),

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

在 /storage/logs/laravel.log 中就可以看见执行的sql信息。

三,Scaffold Generator

根据我们代码开发风格规范,使用一套比较适合的代码生成器Scaffold Generator来快速开发。代码生成器生成的模板相关功能文件比较齐全,实际项目中有的并不需要,简单模块还是建议手动命令行创建相关文件。具体详见 GitHub,还有一个星比较高的生成器laravel-generator 这里我就不讨论了,有待研究。
1.使用composer安装扩展包

composer require "summerblue/generator:~1.0" --dev
  1. 注册服务
    打开/app/Providers/AppServiceProvider.php 修改如下
public function register()
{
     if (app()->environment() == 'local' || app()->environment() == 'testing') {

        $this->app->register(\Summerblue\Generator\GeneratorsServiceProvider::class);

    }
}

3.运行生成命令

php artisan make:scaffold Projects --schema="name:string:index,description:text:nullable,subscriber_count:integer:unsigned:default(0)"

在这里插入图片描述
可以看见生成器帮我们生成了很多文件。
这里的 Project 就是模型名称,schema 后面跟的就是数据表迁移文件既表结构设计。命令 make:scaffold 的 --schema 选项中是以逗号分隔的字段名称和设置信息
对应数据库结构如下
在这里插入图片描述
示例:

php artisan make:scaffold Projects --schema="name:string:index,description:text:nullable,
subscriber_count:integer:unsigned:default(0)"

php artisan make:scaffold Topic --schema="title:string:index,body:text,user_id:integer: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:deault(0),order:integer:unsigned:default(0),excerpt:text:unllable,
slug:string:nullable"


php artisan make:scaffold Reply --schema="topic_id:integer:unsigned:default(0):index,user_id:integer:unsigned:default(0):index,content:text"

具体语法参照Laravel文档数据迁移 [字段]相关配置。(https://learnku.com/docs/laravel/5.7/migrations/2291#creating-columns)

四,HTMLPurifier for Laravel

HTMLPurifier for Laravel 是基于 PHP 编写的富文本 HTML 过滤器,通常我们可以使用它来防止 XSS 跨站攻击,具体详见 GitHub
1.使用composer安裝

composer require "mews/purifier:~2.0"

2.发布扩展,复制配置文件并修改

php artisan vendor:publish --provider="Mews\Purifier\PurifierServiceProvider"

配置文件里面的在这里插入图片描述
default ,test,等数组是几类的过滤规则组,我们也可自定义过滤规则组。myarticle 就是我自定义的过滤规则。

return [
'encoding' => 'UTF-8',
'finalize' => true,
'cachePath' => storage_path('app/purifier'),
'cacheFileMode' => 0755,
'settings' => [
	'myarticle' => [
            'HTML.Doctype'             => 'HTML 4.01 Transitional',
            'HTML.Allowed'             => 'div,b,strong,i,em,u,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src]',
            'CSS.AllowedProperties'    => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align',
            'AutoFormat.AutoParagraph' => true,
            'AutoFormat.RemoveEmpty'   => true,
        ],
	],
];

3.使用
最后我们可以在观察器中使用,过滤用户输入的内容 app/Observers/ArticleObserver.php

namespace App\Observers;
use App\Models\Article;
// creating, created, updating, updated, saving,
// saved, deleting, deleted, restoring, restored
class ArticleObserver
{
	public function saving(Article $article)
	{
		$article->body = clean($article->body, 'myarticle');
	}
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值