文章分析了 PHP 7.4 中 json_decode 解码失败的问题。通过对比不同数据解码结果,发现错误值等于 4 即 JSON_ERROR_SYNTAX 语法错误。检查数据后发现,未加引号的模板语法导致字符串格式异常。删除相关内容后解析成功,最终明确根本解决需确保数据类型正确,即由程序生成合法的数值格式,而非简单的字符串替换。
文章记录了在 Laravel 6 和 Lighthouse 环境中遇到 TypeRegistry::get() 参数类型错误,经排查发现是 GraphQL 类型定义与实际代码实现不符,通过打印参数值定位到 settings 字段问题,并将 theme_setting.graphql 中的类型定义从 [ThemeSetting!]! 修改为 [ThemeStyleSetting!]!,最终解决了报错并使接口正常返回。
在 Laravel 6 和 Lighthouse 5 环境下,使用 @rules 指令应用 exists 验证规则时,自定义属性名无法按语言区域正确翻译,导致返回的验证消息中包含原始字段名而非本地化名称。经过排查,排除了 nwidart/laravel-modules 版本及语言文件位置的影响,确认原因在于 Lighthouse 5 对验证属性的支持不够彻底。目前决定暂不编写自定义验证器类,暂时接受在非英语环境下属性名未被完全翻译的现状。
针对在 Laravel 6、LightHouse 5 和 PHPUnit 环境中编写 Mutation 测试时需要删除缓存数据的需求,文章参考了 REST API 测试中先操作数据库再请求删除的思路。通过调整测试策略,先直接操作缓存生成明确的缓存标识,随后执行 HTTP API 请求进行删除操作。实际运行结果显示,该方案成功通过测试,实现了对删除缓存标识 Mutation 的有效验证。
本文介绍了在 Laravel 6 结合 Lighthouse 5 及模块化架构下,为 GraphQL API 创建自定义验证规则的过程。通过在模块中生成规则类,编写逻辑判断缓存标识是否存在,并在 Schema 文件中使用 @rules 指令引用该规则,实现了验证逻辑的复用。文章还详细说明了如何配置模块内的多语言文件以返回本地化错误消息,最终完成了包含中英文错误提示的接口功能测试。
在 Windows 10 环境下使用 Laravel 6 操作缓存时,因 Predis 可能被弃用而选择使用 PhpRedis PHP 扩展。配置 .env 驱动后运行报错提示未安装扩展,遂从 PECL 下载适配 PHP 7.4 TS x64 的 redis 5.3.7。将 php_redis.dll 复制到扩展目录并修改 php.ini 启用,重启服务后通过 phpinfo 确认成功。最终首页顺利获取到缓存值,且在 Redis 数据库中验证了存储结果符合预期,同时需注意解决类命名冲突问题。
本文介绍了在 Laravel 6 中使用 Blade 模板创建组件与插槽的方法。通过编写可复用的 alert 组件文件,配置路由及新建模板文件,实现了组件的定义与调用。最终通过查看网页源代码确认了渲染结果符合预期。
在 Laravel 6.20.43 与 Lighthouse 5.45.0 环境下遇到类 ClearsSchemaCache 已弃用的问题,该类原用于在测试前清除模式缓存。查阅文档后,决定将其替换为 RefreshesSchemaCache 类。编辑指定模块的测试文件并完成代码替换后,重新运行测试并通过验证。
👨💻 个人品牌
王世强|技术实践者 · 独立博客作者
15+ 年 Web 与系统实践经验,持续关注网站基础设施、系统优化、AI 工具与自动化。
持续运营技术博客 10+ 年,累计发布 1000+ 篇原创技术文章。
长期建设个人项目,也欢迎合适的技术交流、咨询与合作。
.env (14) 404 (14) add (16) AI 翻译 (36) Array (19) A Tour of Go (78) CentOS (23) ChatGPT (31) ChatGPT Plus (18) chrome (19) Cloudflare (40) Codex (28) composer (42) composer.json (22) composer update (14) console (16) Container (25) curl (16) delete (31) Docker (33) Dockerfile (15) EdgeOne (35) environment variable (19) error (24) file (15) filter (20) Git (28) GitHub (23) Gitlab (15) GLM-5.2 (27) Go (83) go-tour-i18n (16) Google AdSense (30) Go 文档 (15) Go 语言 (24) GraphQL (24) GraphQL API (14) Gutenberg (36) http (21) https (23) Interface (19) json (24) Laravel (37) Laravel 6 (55) Laravel 9 (25) Lighthouse (17) Lighthouse 5 (14) Linux (22) Module (17) MySQL (78) MySQL 5.7 (22) Nginx (63) normalize.css (28) OKX (15) OneinStack (23) PHP (68) php-fpm (21) php.ini (24) PHP 7.1.12 (22) PHP 7.4 (26) phpmyadmin (15) PhpStorm (24) Polylang (59) postman (18) Query (17) queue (16) Rancher (24) Redis (53) RESTful (27) RESTful API (23) SEO (14) Shopify (19) SlyTranslate (22) SQL (24) String (14) TortoiseGit (14) Twenty Twenty-Five (20) Ubuntu (43) update (20) VPN (17) W3 Total Cache (41) Windows 10 (46) WireGuard (29) WordPress (136) WPCode (23) Wstunnel (16) Yii (40) Yii 2 (70) Yii 2.0 (51) ZgoCloud (14) 国际化 (17) 多语言翻译 (50) 开源项目 (16) 技术博客 (15) 故障排查 (20) 数据库迁移 (16) 本地化 (22) 浏览器 (14) 阿里云 (20) 页面缓存 (14)