标签: Yii
-
文章记录了在将 Yii Framework 从 2.0.35 升级到 2.0.41.1 后,控制台命令 ./yii 出现无输出问题的排查过程。通过测试脚本初步定位问题与 /vendor 目录有关,在对比本地环境与开发环境的差异后,发现版本同步不一致导致异常。最终通过删除 /vendor 目录和 composer.lock 文件,重新提交代码并添加依赖,成功恢复了命令行的正常输出。
-
针对 Yii 2.0 项目中出现的调用未知方法 yii2tech\\ar\\softdelete\\SoftDeleteBehavior::isTransactional() 报错问题,文章分析指出这是因为 Redis 模型使用了软删除操作所致。通过将代码逻辑修改为使用硬删除操作,问题得以解决。最终结论是 yii2tech\\ar\\softdelete\\SoftDeleteBehavior 并不支持 Redis 的 AR 模型进行软删除。
-
本文针对 Yii 2.0 框架下需要基于 MySQL ActiveRecord 与 Redis ActiveRecord 同时查询资源的问题,实现了对 Redis 中存储的用户昵称进行模糊搜索的功能。鉴于 Redis ActiveRecord 不支持 like 操作符,文章采用先通过 MySQL 获取用户 ID 列表,再利用 in 操作符从 Redis 读取对应昵称数组,最后使用 PHP 函数模拟 SQL LIKE 语句进行过滤。测试结果表明,该方案能够正确生成符合预期的 SQL 语句并获取准确的查询结果。
-
本文针对基于 Yii 2.0 的 Supervisor 命令行脚本在持续运行期间占用内存过高的问题进行了分析与解决。通过监控 Docker 容器资源,定位了 Redis AR 模型查询和高频执行导致的内存增长。优化措施包括使用 unset() 释放变量、利用 asArray() 获取数组形式结果、修复 HTTP 客户端 400 错误以及引入同步标识控制执行频率。最终测试表明,调整查询方式和执行策略有效降低了内存占用,证明了优化方案的可行性。
-
本文介绍了在 Yii 2.0 中实现 RESTful APIs 在移动应用端复用与微调的方法。通过编辑 \api\rests\plan\ViewAction.php 文件,利用 Yii::$app->controller->id 获取控制器 ID。根据路由为 /v1/plans/2 时值为 plan,而 /v1/mobile/plans/2 时值为 mobile/plan 的区别,进行条件判断。最终实现了在待审状态下,移动端接口正确返回编辑与更新权限为 0,桌面端保持为 1 的差异化控制效果。
-
针对 Yii 2.0 桌面与移动端应用接口复用需求,文章介绍了在保证大部分业务逻辑一致的前提下,为应对未来差异而规划不同路由的实现过程。通过配置 urlManager、建立控制器子目录及继承 Action 类,实现了移动端代码的隔离与复用。最终测试显示,在无差异时可直接继承,而在存在差异时仅需覆盖相关方法即可进行微调。
-
本文针对 Rancher 容器升级后需手动执行初始化与数据库迁移命令的问题,通过编写 SHELL 脚本实现了基于环境变量的自动化运行。脚本根据 PCS_API_CFG_ENV 和 PCS_API_CFG_MIGRATE 等环境变量的值,自动执行应用初始化或数据库迁移操作,同时设置了默认值与错误提示。针对执行顺序导致的命令报错,通过重命名脚本文件确保在配置文件加载后运行。最终测试表明,该方案成功实现了容器升级后的自动化初始化与迁移。
-
本文记录了将 Sentry 9 与 Yii 2 高级项目模板集成的过程。鉴于官方不直接支持 Yii2,文章选用 GitHub 中的 hellowearemito/yii2-sentry 扩展,通过在开发和生产环境配置文件中设置参数及配置日志组件实现对接。测试结果表明,启用 Sentry 后接口异常日志能成功发送至平台,禁用后则停止发送,符合预期。
-
本文介绍了在 Yii 2 高级项目模板中,使用 Nginx 实现单域名配置以支持 frontend、backend 和 api 三个应用的过程。通过修改 hosts 文件、调整各应用的配置文件以及 Nginx 配置文件,设定了正确的 baseUrl、会话与 Cookie 处理方式及路由规则。最终测试显示,各应用的静态资源访问、页面路由及调试模块均能按预期正确响应。
