在 Laravel 中使用 Http::fake 模拟测试的最佳实践
Laravel 的 `Http::fake()` 不只是“把外部请求挡下来”这么简单,它还关系到测试速度、稳定性以及请求断言是否可信。本文从常见测试痛点出发,梳理 `Http::fake()` 的几种实用写法、适用场景,以及如何避免漏拦截请求。
Laravel 的 `Http::fake()` 不只是“把外部请求挡下来”这么简单,它还关系到测试速度、稳定性以及请求断言是否可信。本文从常见测试痛点出发,梳理 `Http::fake()` 的几种实用写法、适用场景,以及如何避免漏拦截请求。

PHP-FPM 是 LNMP 架构里最值得优先调的环节之一。本文从进程模型、超时、慢日志、内存限制、OPcache、连接方式和监控几个方面,整理出一套可直接落地的优化思路,并给出示例配置与调参判断方法。

这篇文章用一个最小可运行示例,梳理 Casbin 里最关键的三个概念:Model、Policy 和 Enforcer。你可以直接看到它们分别负责什么、如何配合工作,以及在 PHP 项目中完成安装、配置和一次权限校验的基本写法。

构建多层树结构时,很多代码能生成 `tree`,却遗漏了子树递归返回的 `leaf_ids` 和 `parent_ids`,结果就是叶子节点为空、父节点收集不完整。本文用一段 PHP 示例说明问题根源、修复方式、验证结果,以及在真实业务里需要注意的 ID 唯一性、根节点映射与性能边界。

PHP 项目里的权限控制,最怕的是把判断逻辑写死在业务代码里:角色一变、需求一加,权限代码就会在多个模块里反复修改。PHP-Casbin 的价值,在于把模型和策略拆开,用统一方式覆盖 RBAC、ACL、ABAC、多租户和 API 权限,让权限系统从“到处补判断”变成“集中配规则”。

这篇文章用一个精简的 Slim 4 示例说明,如何把 Casbin 接入 PHP 应用做授权控制。重点不是堆概念,而是把认证、中间件判断、模型文件和策略文件串起来,让你能快速判断这套方案是否适合自己的 API 或后台项目。

在 PHP 8.6 中启用 PHP-FPM 状态页,本质上还是配置 `pm.status_path`,再让 Nginx 以受控方式把请求转发给 FPM。本文按“进程池设置、服务重载、Nginx 路由、安全验证”四步整理,并补出容易踩到的访问限制与排错要点。 PHP 8.6 中开启 PHP-FPM 状态页并不难,真正容易出错的是请求怎么转发、哪些来源能访问,以及改完配置后为什么仍然没有响应。

在 CentOS 上排查 PHPStorm 异常时,日志通常比界面提示更直接。本文整理了几种常用查看方式,包括直接进目录、终端分页查看、实时跟踪,以及在特定场景下用 journalctl 读取 systemd 服务日志,同时补上版本号、权限和敏感信息方面的注意点。

这篇文章整理了一套偏 PHP 开发场景的 Sublime Text 配置,包括编辑器外观、代码检查、格式化和常用插件组合。你可以直接看清每项配置解决什么问题、哪些插件值得保留,以及现有命令路径和参数该放在什么位置。

文章围绕 PHP 中“刚刚、几分钟前、昨天、前天、几天前”这类相对时间显示展开,重点解释为什么直接用时间戳差值除以 86400 容易算错“天数”,并给出一段可直接使用的函数。读者可以据此判断相对时间文案该按“经过了多少秒”还是“跨了多少自然日”来计算。

PHP-Casbin并不只是把 RBAC 搬进 PHP,而是提供统一的访问控制框架,把 ACL、RBAC、ABAC 以及多租户、分布式场景放到同一套 API 和模型里处理。对正在做框架集成、策略同步或 SaaS 权限设计的团队来说,它更像一套可持续演进的权限基础设施。

网站响应慢、页面发卡,但 CPU、内存、数据库看起来都正常时,问题往往藏在代码执行链路里。本文用 XHProf 为例,整理出 PHP 7 环境下的安装、绘图依赖、项目接入与结果解读方法,帮助你更快定位真正的耗时函数和优化入口。
