分类: PHP 7.4
-
本文针对Laravel 6中任务队列一直处于运行状态的问题进行了排查分析。在解决了因Artisan::call未返回导致的判断失效问题后,再次遇到相同情况,日志显示PHP Fatal error,提示settingUrl()函数重复定义。经分析,这是由于include包含的文件中存在重名函数所致。最终采取的临时解决方案是将重名函数修改为不同名称,从而规避了该致命错误。
-
本文探讨了在 Laravel 6 中重构 MySQL 字段类型 json 值的方法。针对现有代码中生成的 setting_migrations 数组结构,文章介绍了如何基于辅助函数 Arr 将该字段值调整并纳入到新的 extra 字段中。通过具体的代码调整,最终将原有的数组结构转换成了以 extra 为字段名的对象结构,实现了数据存储格式的优化。
-
文章探讨了在 PHP 中调整正则表达式以允许特定捕获子组为空的问题。针对现有代码无法匹配 internal://all_collectionss/ 的情况,通过分析元字符与量词的区别,将原本代表 1 次或多次匹配的 + 调整为代表 0 次或多次匹配的 *,成功实现了对结尾斜杠后为空及非空两种情况的支持,最终给出了调整后的正则规则与代码实现。
-
文章记录了在 MySQL json 字段中设置值时遭遇 Unsupported operand types 报错的排查过程。通过调整代码逻辑,实现了在 json 字段已有值的情况下追加新数据的功能。文中展示了首次执行与再次执行后字段的最终变化,验证了数据追加成功的问题修复结果。
-
针对PHP 7.4中基于语义化版本命名的目录,文章解决了按版本号从低到高逐一执行脚本文件的问题。通过使用glob()获取子目录列表,利用usort()和version_compare()函数对目录进行规范化排序,确保了执行顺序正确。文章还介绍了在版本升级场景下,通过过滤和排序来精确获取需要执行的增量目录列表,最终实现了对特定版本范围内目录脚本的按序执行。
-
本文记录了使用 Shopify CLI 基于 PHP 模板创建应用并安装到商店的过程。操作包括导航目录初始化应用,配置 Laravel 及 SQLite 数据库,修复驱动缺失与参数报错,启动本地服务器与 Ngrok。最终通过修复会话 Cookie 问题,利用带参数的接口地址成功在开发商店中完成了应用安装。
-
本文记录了解决 count(): Parameter must be an array or an object that implements Countable 报错的过程。通过排查代码发现变量值为 NULL,导致在 PHP 7.4.26 环境下调用 count() 函数时产生警告。最终利用 null 合并运算符将变量默认值设为空数组,修复了因 countable 类型无效而引发的问题。
-
文章记录了一个 GraphQL API 耗时长达 7 秒的排查过程。经 Laravel Telescope 和独立客户端测试,实际执行时间仅约 1.8 秒。问题根源在于 Windows 10 环境下的 Nginx 与 PHP FastCGI 默认只能同时处理单一请求,导致请求排队。通过调整 Nginx 配置并启动多个 php-cgi 进程绑定不同端口,实现了并发处理。最终刷新页面测试,请求耗时缩短至 2 秒左右,符合预期。
-
在 Blade 视图中渲染 JSON 数据时,默认的双大括号会将双引号转换为 HTML 实体,导致前端解析困难。若直接使用非转义语法,虽然解决了实体问题,却可能因 URL 值未正确转义而导致 JSON 结构错误。文章最终采用 addcslashes 函数对字符串进行 C 语言风格转义,从而在防范潜在安全风险的同时,生成符合规范且便于前端解析的 JSON 结构。
-
本文记录了在 Laravel 6 中运行存储于 MySQL 的 Blade 代码并获取输出的过程。起初尝试将代码手动编译为原生 PHP 并通过输出缓冲包含文件来运行,虽验证了可行性,但因可维护性问题未被采纳。最终方案保留了后端自动完成 Blade 编译至 PHP 模板的流程,以满足前端要求并实现代码块的正常渲染。
