分类: PHP
-
文章针对 Yii2 队列扩展中进程运行超过 300 秒超时限制的问题进行了分析。经检查队列配置项确认超时设定后,通过在方法中输出日志文件,最终定位到代码中存在死循环导致无限运行。修复该死循环问题后,不再报错超时,队列恢复正常处理。
-
文章针对XML数据解析代码进行了重构,移除了自PHP 8.0起被废弃的libxml_disable_entity_loader函数。通过修改解析逻辑,不再将数据转换为数组,而是直接使用对象进行处理,并设置LIBXML_NOCDATA选项将CDATA合并为文本节点,最终实现了数据的直接读取与利用。
-
针对 Yii 2.0 项目中手动引入微信消息加解密代码导致的问题,文章记录了将其重构为符合 PSR-4 标准的过程。主要操作包括调整文件名与类名保持一致、为类文件添加命名空间、拆分包含多个类的文件,并配置 Yii 自动加载器映射根路径,最终在代码中通过引用命名空间替代手动加载,重新运行后解密数据符合预期。
-
本文记录了在 Yii 2.0 中使用 like 操作符查找反斜杠时结果为空的问题。经排查,在 MySQL 5.7.19 版本下,当字段排序规则为 utf8mb4_unicode_ci 时,需在 SQL 中多增加一根反斜杠才能查出数据。对比测试 utf8mb4_general_ci 排序规则则无此现象。查阅官方文档得知这是特定版本下 utf8mb4_unicode_ci 的已知 Bug,该问题在 MySQL 8.0.18 中已修复。
-
接口响应报错提示 SQL 语法错误,经排查发现当请求参数 filter 包含特定单引号时,生成的 FIND_IN_SET 语句因缺少转义导致异常。对比发现,同条件下 LIKE 语句未报错是因为进行了转义。为解决此问题,参考相关文档在 Yii 2.0 中新增了支持 FIND_IN_SET 函数的条件构建器,并在 ActiveDataFilter 中使用 addslashes 函数对参数值进行转义,修改后接口响应成功,SQL 语句正常执行。
-
本文介绍了在 Yii 2.0 中通过命令行脚本将数据从 csp 数据库迁移至 cloud 数据库的实现过程。通过编写自定义控制器并执行相关命令,从源表筛选出 95 条记录并插入目标表。操作完成后,目标表记录总数变为 253 条,实际新增 95 条数据,符合迁移预期。
-
文章记录了在 Docker 环境下部署 Yii 2.0 时,实现单域名与多域名模式同时支持的过程。通过修改 frontend 配置文件与 Nginx 配置文件,并设定环境变量控制模式,利用 Shell 脚本判断变量值执行相应的文件拷贝操作。在解决因脚本执行顺序导致 Nginx 无法启动的问题后,成功完成了该部署配置。
-
本文记录了将 Yii Framework 从 2.0.35 升级至 2.0.41.1 的过程。通过更新 Composer 工具并执行更新命令,解决了 fxp/composer-asset-plugin 插件冲突及已废弃的 flow/jsonpath 包依赖问题。针对 phpunit/php-token-stream 废弃提示,经检测存在多层依赖关系,决定暂时保留该警告,同时查阅框架升级说明以确认可能的兼容性更改。
-
在 Yii 2.0 开发过程中遇到 Malformed UTF-8 characters 报错,通过打印异常信息发现包含乱码。使用 mb_convert_encoding 转换字符编码后,响应状态码变为 500 并提示无法解析主机。经排查分析,该问题与系统返回的中文编码有关,而非简单的中文内容问题,因为某些未转换编码的错误信息能正常运行,需针对特定异常信息的字符编码进行处理。
