guanguans
guanguans
# laravel-proxy-manager - Laravel 应用中快速的创建不同类型的代理 > [laravel-proxy-manager](https://github.com/guanguans/laravel-proxy-manager) - 集成 [`Ocramius/ProxyManager`](https://github.com/Ocramius/ProxyManager) 到 Laravel 应用。 ## 功能 * 快速创建不同类型的代理实例。 * 快速绑定不同类型的代理实例到容器。 * 快速扩展为不同类型的代理实例到容器。 ## 安装 ```shell $ composer require guanguans/laravel-proxy-manager -vvv ```...
我在 `docker` 中没有配置成功,能出一份 `docker` 中使用的教程吗? :sob:
# 分享一组比 laravel 调度事件中 AppendOutputTo 方法更为便捷的宏方法 ## 特性 * 默认根据命令名称自动生成输出日志文件路径 * 默认输出日志文件路径格式为 `storage/logs/schedules/命令名称/命令名称.log` * 由 single 渠道日志自动记录命令运行的开始运行时间,这样就会形成 laravel 标准的日志文件,可以更好的由第三方扩展去解析查看,例如 [opcodesio/log-viewer](https://github.com/opcodesio/log-viewer) * 更为便捷的一组按年、季、月、周、日切割输出日志的方法 ## 源码 - [app/Support/Macros/SchedulingEventMacro.php](https://github.com/guanguans/laravel-skeleton/blob/master/app/Support/Macros/SchedulingEventMacro.php) ```php
# 平遥古城记 甲午之春,清明前后。燕地虽寒,天气却亦渐入春和日丽之时。早闻平遥古城大观,颇有泛游古城之欲。予与高中同窗日前共商,借此休假,同赴古城,得其一观,减己未游古城之憾。 天未亮,床起漱洗。少倾,东方即白,匆启程。车至平遥之刻,时已近逼晌午,膳食亟毕,寻客栈,置其赘物,小憩俄尔,步向古城,前后两日,览之全景。 古城咸聚古迹别类之全,中外罕见,叹为观止。有庙宇双林寺、镇国寺、城隍庙、文庙、武庙之类;有道观清虚观之别;有票号日昇昌、蔚盛长、蔚泰厚、汇源当之横;有镖局中国镖局、华北第一镖局、同兴公镖局、汇武林之纵;有故居雷履泰故居之伍;有报馆中国珍奇报纸陈列馆之队;有钱庄协同庆钱庄之排;有书院西河书院之团。余之县衙,城墙,客栈古迹等不胜枚数。此诚世间第一古城哉! 众之景观,予觉以文庙为之最盛。文庙地处古城东南一隅。由其北门而入,面临屏墙一处,循墙侧门进,回首屏墙,其墙雕一鱼跃龙门之图,纹理细腻,栩栩如生。择巷西小门续进,赫然一大壂。名曰:大成殿。 临于壂前,观之,全属木质,层高为三,青砖蓝瓦,画栋雕梁,一派森然古风气象。微风徐来,香烟袅袅,顿生浩浩乎如冯虚御风,而不知其所止;飘飘乎如遗世独立,羽化而登仙之感。越之,现一庭院。中路青石铺成,路侧各立柳树两苗。叶泽鹅黄,葱葱郁郁,不禁想起“不知细叶谁裁出,二月春风似剪刀”一句。柳条长抵至地,随风飘扬,宛如少女长发,引引动人,扶风羞舞,婀娜多姿,迎风作笑。 后参其余殿,皆如斯,小异大同。唯南门处,有一大钟。予与同行随游众一至,自我祈福,献钱一元,撞钟一下,照拍一张,留作纪念。 此程最后一观者,城墙也。行于城墙之上,向下遥望,小巷大街,遍地人群。或总角嬉戏,或老妇互扶,或夫妻双游,或挟子挈夫。再看路旁店铺小贩者,时而呼喊叫卖,时而讲解特产,时而欣然指路。熙熙攘攘,人来人往,接踵磨肩,热闹至极,繁华一片。 拂面迎光,清风徐来,惬意自如。试想,此刻倘有一桌,一酒,一肴核。与同行小马也,举杯换盏,开怀畅饮,酾酒临城,盖夫美哉矣!叹之,人生之幸事,莫过于邀三知己,伴结而行,遍游河川名迹! --- 时年三月初九作
# 统一规范化代码的命名风格 > 最近在迁移一个 `上古` 项目到 laravel 中。我这边的做法是先用 [rector](https://github.com/rectorphp/rector) 做一个整体初步的语法升级与 laravel 写法的替换,然后主要就是手动重写数据操作的部分。到目前为止除了应用到 rector 自带的规则外,还写了一些自定义的规则,其中有一个规范化命名风格的规则([RenameToPsrNameRector](https://github.com/guanguans/laravel-skeleton/blob/master/app/Support/Rectors/RenameToPsrNameRector.php))适用于所有的 PHP 项目,所以在此分享出来。该规则主要是针对常量、变量、函数、类、属性、方法等命名进行统一的规范。其中,常量名遵循大写蛇形命名风格,函数名遵循小写蛇形命名风格,类名遵循大驼峰命名风格,变量名、属性名、方法名遵循小驼峰命名风格。 ## 效果 ```diff
# laravel 中合并控制器的多个表单请求为一个的解决方案 > laravel 中一个动作(action)方法需要对应编写一个表单请求(FormRequest)类。因此经常懒的去编写表单请求,而是直接在动作中编写验证规则。所以我扩展了表单请求基类,可方便的使一个控制器共用同一个表单请求类。 ## 扩展之后的表单请求基类([app/Http/Requests/FormRequest](https://github.com/guanguans/laravel-skeleton/blob/master/app/Http/Requests/FormRequest.php)) ```php
# 使用 OpenAI Finetune API 创建自己的微调模型 > 年后公司开始考虑是否使用 OpenAI 去解决一些业务。网上结合业务使用 AI 的资料并不是很多。虽然最后并未落地,还是要记录一下相关的探索过程。 ## 安装 cli 客户端 ```shell pip install --upgrade openai export OPENAI_API_KEY="" ``` ## 准备训练数据 ### [JSONL](https://jsonlines.org/) 格式数据 ```json...
# PHP-Parser 应用之生成源代码的单元测试方法 > [PHP-Parser](https://github.com/nikic/PHP-Parser) 是由 nikic 开发的一个 PHP 抽象语法树(AST)解析器,可方便的将代码与抽象语法树互相转换。工程上常用来生成模板代码(如 rector)、生成抽象语法树进行静态分析(如 phpstan)。最近学习应用(生成模板代码)了一下,编写了一个简单的生成源代码的单元测试方法的命令([GenerateTestsCommand](https://github.com/guanguans/laravel-skeleton/blob/master/app/Console/Commands/GenerateTestsCommand.php))。 ## 效果 ## 流程概述 1. 扫描拿到指定目录的 PHP 文件结果集 2. 提取文件内容转化为抽象语法树 3. 遍历抽象语法树节点 4. 从源类节点提取测试类的基本信息 5. 获取需要生成的测试方法节点 6. 遍历修改模板测试类(或源测试类)抽象语法树...
## 推荐项目 - 项目地址:[https://github.com/guanguans/ai-commit](https://github.com/guanguans/ai-commit) - 类别:PHP - 项目标题:使用 AI 自动生成 [conventional](https://www.conventionalcommits.org/en/v1.0.0/) 格式的 git 提交信息 - 项目描述:ai-commit 是一个根据 `git diff` 的内容通过 AI 自动生成规范的 git 提交信息的工具。 - 亮点: - 支持多驱动生成器自动生成提交信息(目前支持 OpenAI 的...
# laravel 中自动批量注册验证规则到验证器 ## 创建抽象验证规则 `App\Rules\Rule`、`App\Rules\RegexRule` ```php