自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 laravel 中自动批量注册验证规则到验证器

【代码】laravel 中自动批量注册验证规则到验证器。

2024-04-09 10:22:08 258

原创 guanguans/notify(2.x) - 多平台便捷推送通知 SDK(已支持 27 家平台)

多平台便捷推送通知 SDK(Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、PushDeer、PushPlus、Pushback、Pushover、QQ、RocketChat、ServerChan、ShowdocPush、Slack、Telegram、WeWork、XiZhi、YiFengChuanHua、Zulip)。

2024-03-06 09:46:50 400

原创 统一规范化代码的命名风格

最近在迁移一个上古项目到 laravel 中。我这边的做法是先用做一个整体初步的语法升级与 laravel 写法的替换,然后主要就是手动重写数据操作的部分。到目前为止除了应用到 rector 自带的规则外,还写了一些自定义的规则,其中有一个规范化命名风格的规则()适用于所有的 PHP 项目,所以在此分享出来。该规则主要是针对常量、变量、函数、类、属性、方法等命名进行统一的规范。其中,常量名遵循大写蛇形命名风格,函数名遵循小写蛇形命名风格,类名遵循大驼峰命名风格,变量名、属性名、方法名遵循小驼峰命名风格。

2023-05-09 18:23:51 95

原创 让 AI 为你自动生成 conventional 格式的提交信息

让 AI 为你自动生格式的提交信息。

2023-02-15 11:47:20 222

原创 PHP-Parser 应用之扫描发现代码中的打印、输出结构语句

PHP-Parse 是由 nikic 开发的一个 PHP 抽象语法树(AST)解析器,可方便的将代码与抽象语法树互相转换。工程上常用来生成模板代码(如 rector)、生成抽象语法树进行静态分析(如 phpstan)。最近学习应用(静态分析)了一下,编写了一个简单的扫描发现代码中的打印、输出结构语句的命令 FindDumpStatementCommand

2022-09-07 13:12:40 202

原创 Laravel 应用中快速的创建不同类型的代理

快速创建不同类型的代理实例 (虚拟、空对象、远程对象… 代理。Aop、懒初始化)、快速绑定不同类型的代理实例到容器、快速扩展为不同类型的代理实例到容器。

2022-08-24 15:11:07 204

原创 递归匿名函数手动实现 http_build_query 函数

> 最近觉得 [http_build_query](https://www.php.net/manual/zh/function.http-build-query.php) 函数的功能蛮神奇的。可以将任意一个复杂数组转换成一个复杂的 URL 查询字符串。于是自己尝试手动实现了一下([user_http_build_query](https://github.com/guanguans/laravel-skeleton/blob/master/app/Support/helpers.php#L9-L104))

2022-07-11 14:05:44 125

原创 laravel 中 in 多列特殊查询类型解决方案

SQL 查询中有一种 in 多列特殊查询类型,大概是这个样子 `select * from order where (id,buyer) in(( 1, '张三' ),( 2, '李四' )) and order.deleted_at is null`。laravel 的查询构建器并没有直接支持该类型的查询。我这边通过查询构建器 `Macroable` 新增了一个 [`whereIns`](https://github.com/guanguans/laravel-skeleton/blob/master/

2022-07-05 15:04:01 361

原创 laravel-soar(2.x) - 自动监控输出 SQL 优化建议、辅助 laravel 应用 SQL 优化

laravel-soar - 自动监控输出 SQL 优化建议、辅助 laravel 应用 SQL 优化。源码https://github.com/guanguans/laravel-soar功能支持启发式算法语句优化建议、索引优化建议支持 EXPLAIN 信息丰富解读自动监控输出 SQL 优化建议Debug bar、Soar bar、JSON、Clockwork、Console、Dump、Log、自定义输出器(多种场景输出)支持查询构建器生成 SQL 优化建议安装$ compo..

2022-04-20 12:58:58 507

原创 laravel 中根据请求路径、方法匹配路由实例

需求最近由于业务功能的需求,需要根据数据库记录的请求路径(如admin/auth/menu/46/edit)、请求方法(如GET)去匹配路由实例,拿到路由实例后续做一些其他事情。分析其实就是路由的核心功能(将一类请求映射匹配到一个回调类型的变量)。框架本身自带的功能,查找源码是以下代码块实现的:// Illuminate/Routing/RouteCollection.phppublic function match(Request $request){ // 1. 获取路由集合

2022-03-31 10:27:44 1596

原创 支持多种通道的 laravel 异常监控通知组件

laravel-exception-notify - 支持多种通道的 laravel 异常通知(Bark、Chanify、钉钉群机器人、飞书群机器人、邮件、Server 酱、企业微信群机器人、息知)。功能(2.x重构版本)监控发送 laravel 应用异常支持多种通道(Bark、Chanify、钉钉群机器人、飞书群机器人、邮件、Server 酱、企业微信群机器人、息知)支持扩展自定义通道支持自定义数据收集器支持自定义数据转换器安装$ composer require guangua..

2022-03-15 10:57:07 486

原创 在 laravel 中轻松容易的输出完整的 sql 语句

guanguans/laravel-dump-sql - 在 laravel 中轻松容易的输出完整的 sql 语句。laravel 中查询构造方法得到的 sql 语句没有绑定条件参数,类似于select * from users where id= ?。这个扩展包可辅助你获取完整的 sql 语句。User::query()->where('id', 1)->dd(); // 自带方法 `dd` 的打印结果User::query()->where('id', 1)-&gt..

2021-10-27 14:41:19 1943

原创 PHP 字符串中直接解析函数的写法

PHP 字符串中直接解析函数的写法PHP 中的字符串理论上是不能够解析函数的,仅能够解析变量。最近发现一种特殊的写法,是可以让字符串直接解析函数的。写法// 单行${!${''} = 代码}// 多行${!${''} = 代码}个人认为这种写法实际上还是通过解析变量实现的。= 左边是一个特殊名称的变量,= 右边只要符合赋值变量的代码块均可以在字符串中解析。示例以下代码仅供学习交流,实际工作中不建议用这种写法。一、$fruits = implode('、', ['appl

2021-09-15 11:05:10 112

原创 dcat-login-captcha - dcat admin 登录验证码扩展

guanguans/dcat-login-captcha - dcat admin 登录验证码扩展。环境要求dcat-admin >= 2.0安装Composer 安装$ composer require guanguans/dcat-login-captcha -vvv后台 -> 开发工具 -> 扩展列表启用本扩展。视图示例 1示例 2示例 3||源码连接https://github.com/guanguans/dcat-logi.

2021-07-27 10:13:32 2961 1

原创 laravel-exception-notify - 支持多种通道的 laravel 异常监控通知

laravel-exception-notify - 支持多种通道的 laravel 异常监控通知(钉钉群机器人、飞书群机器人、Server 酱、企业微信群机器人、息知)。功能监控发送 laravel 应用异常支持多种通道(钉钉群机器人、飞书群机器人、Server 酱、企业微信群机器人、息知)自定义发送的异常信息数据源码https://github.com/guanguans/laravel-exception-notify相关项目https://github.com/gua..

2021-07-06 09:28:52 401 1

原创 laravel-soar - 在 Laravel 中轻松容易的优化 sql 语句的扩展包

laravel-soar - 在 Laravel 应用程序中轻松容易的优化 sql 语句的扩展包。功能支持基于启发式算法的语句优化支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)支持 EXPLAIN 信息丰富解读支持 SQL 指纹、压缩和美化支持 Eloquent 查询构建器方法生成 SQL 优化报告源码链接https://github.com/guanguans/laravel-soar相关项目https://github.co.

2021-06-15 15:17:18 264 2

原创 yii-log-target - 监控系统异常且多渠道发送异常信息通知

yii-log-target - 监控系统异常且多渠道发送异常信息通知(Bark、Chanify、钉钉群机器人、飞书群机器人、Server 酱、企业微信群机器人、息知)。环境要求PHP >= 7.2yiisoft/yii2 > 2.0安装$ composer require guanguans/yii-log-target --prefer-dist -vvv配置Yii2 配置文件 config/main.php 的日志组件中配置:'log' => [ '.

2021-05-19 16:06:32 294

原创 notify - 多平台通知sdk(Bark、Chanify、钉钉群机器人、飞书群机器人、Server 酱、企业微信群机器人、息知)

guanguans/notify - 多平台通知sdk(Bark、Chanify、钉钉群机器人、飞书群机器人、Server 酱、企业微信群机器人、息知)。源码https://github.com/guanguans/notify平台支持BarkChanify钉钉群机器人飞书群机器人Server 酱企业微信群机器人息知环境要求PHP >= 7.2安装$ composer require guanguans/notify -vvv使用Barkuse Gu.

2021-05-18 11:52:28 1503

原创 PHP Callback/Callable 类型使用

测试代码<?php/** * Class ParentCallback */class ParentCallback{ /** * @param int $a * @param int $b * @param int $c * * @return int */ public static function parentSum(int $a, int $b, int $c) {

2021-05-18 09:21:16 112

原创 用 symfony/options-resolver 优雅的校验类初始化选项

示例类use Symfony\Component\OptionsResolver\OptionsResolver;/** * Class Email * composer require symfony/options-resolver */class Email{ /** * Email constructor. * * @param array $options */ public function __construct(ar

2021-02-23 12:06:04 215

原创 中国身份证号验证库

id-validator - Go 版中国身份证号验证库。功能中国身份证号验证获取身份证号信息升级 15 位身份证号为 18 位伪造符合校验的身份证号安装$ go get -u github.com/guanguans/id-validator使用这只是一个快速介绍, 请查看 GoDoc 获得详细信息。package mainimport ( idvalidator "github.com/guanguans/id-validator" "gopkg.in/ffmt.v.

2021-01-26 10:30:51 1428

原创 用 Composer 组建了个 PHP 框架

大约在两三年前自己就有过写个 PHP web 框架的想法,期间也尝试过去实践开发,但总是由于各种各样的原因并没有完成。这次终于恒心下来,忙里偷闲的组建了一个自己的 PHP 微框架。前前后后零零碎碎的开发了快一个月的时间,直到今天完成文档的编写,才向大家呈现。除了框架本身的(Coole)核心代码,还提供一个框架应用(coolephp/skeleton)模板,另外编写了一份简陋的文档, 望能给 也想写框架的人带来一点参考(大神请忽略)。生命周期客户端向入口脚本 index.php 发起请求。入口.

2020-12-22 10:13:59 171

原创 Yii 中优雅的使用事件

Yii 中使用一个事件大概是这个样子的// 绑定事件$component->on($event::EVENT_NAME, [$object, 'methodNameA']);$component->on($event::EVENT_NAME, [$object, 'methodNameB']);// 触发事件$component->trigger($event::EVENT_NAME, $event); 从上面代码中可以看出如果要触发一个 5 个监听监听的事件,是要入侵 .

2020-12-08 10:19:18 142

原创 中文注释版 Laravel 容器类(Container)

中文注释版 Laravel 容器类(Container)将 Laravel 的 illuminate/container 移除掉 illuminate/contracts 依赖,便于灵活的在非 Laravel 框架中使用,顺便机翻了一下 illuminate/container 的注释,便于理解 Laravel 的容器。相关链接https://github.com/guanguans/dihttps://github.com/illuminate/container代码<?php

2020-10-29 16:25:10 256

原创 Yii 中特殊行为 ActionFilter 的使用示例

新建 app\filters\LoggingFilter 继承 yii\base\ActionFilterLoggingFilter 的功能: 在指定请求的 action 前后各记录一条日志<?phpnamespace app\filters;use yii\base\ActionFilter;class LoggingFilter extends ActionFilter{ public function beforeAction($action) {

2020-10-15 10:24:31 315

原创 yii-goaop - 将 goaop 集成到 Yii,在 Yii 中优雅的面向切面编程

yii-goaop - 将 goaop/framework 集成到 Yii,在 Yii 中优雅的面向切面编程。项目地址https://github.com/guanguans/yii-goaop环境要求Yii >= 2.0安装$ composer require guanguans/yii-goaop -vvvcomposer.json add:"autoload": { "psr-4": { "backend\\": "backend/", .

2020-10-13 12:59:38 223

原创 yii-var-dumper - 将 symfony 的 dump server 集成到 Yii中

将 symfony 的 dump server 适配到 Yii中。项目地址https://github.com/guanguans/yii-var-dumper环境要求Yii >= 2.0安装$ composer require guanguans/yii-var-dumper -v配置配置文件 config/main.php 中添加:...'bootstrap' => [ ... 'dumper', ...],'modules' => [..

2020-10-09 16:09:20 235

原创 guzzlehttp/guzzle 配合 symfony/console 命令行中实现文件下载进度条

guzzlehttp/guzzle 配合 symfony/console 命令行中实现文件下载进度条安装 guzzlehttp/guzzle、symfony/console$ composer require guzzlehttp/guzzle$ composer require symfony/console代码示例#!/usr/bin/env php<?phprequire __DIR__.'/vendor/autoload.php';use GuzzleHttp\Clie

2020-09-24 10:30:53 374

原创 PHP 多进程处理任务

这里写自定义目录标题PHP 多进程处理任务`pcntl` 模块(非 Unix 类系统不支持此模块)spatie/async - 基于 `pcntl` 封装的扩展包相关链接原文链接PHP 多进程处理任务pcntl 模块(非 Unix 类系统不支持此模块)一个 PHP 多进程简单例子大概是这个样子:// 5 个子进程处理任务for ($i = 0; $i < 5; $i++) { $pid = pcntl_fork(); if ($pid == -1) { die

2020-09-24 09:58:01 129

原创 VScode 远程开发配置

远程主机安装 ssh-server# 根据本地 OS 选择安装方式$ sudo apt install openssh-server本地主机安装 ssh-client根据本地 OS 选择安装方式,macOS 自带,winOS 安装了 git 客户端就有了。安装 Remote Development 插件Remote Development配置 Remote Dev...

2019-11-04 09:44:53 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除