技能 php-pro
📦

php-pro

安全

在专家指导下掌握现代PHP开发

为传统的PHP模式和低效代码而烦恼?本技能提供内存高效的生成器、SPL数据结构和PHP 8+功能,助力构建可用于生产环境的应用程序。

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“php-pro”。 生成内存高效的CSV处理器

预期结果:

一个基于生成器的PHP类,一次yield一行处理后的数据,包含类型声明、用于格式错误数据的自定义异常,以及可配置的分隔符。包含迭代器实现以兼容foreach循环。

正在使用“php-pro”。 创建类型安全的仓储模式

预期结果:

使用类似泛型的类型提示模板的抽象仓储类、针对特定实体的具体实现,以及接口契约。展示延迟静态绑定和基于trait的缓存机制。

安全审计

安全
v1 • 2/24/2026

This is a prompt-only skill with no executable code. Static analysis scanned 0 files and detected 0 security issues. The skill provides guidance for PHP development without any dangerous patterns, network access, or filesystem operations. Safe for publication.

0
已扫描文件
0
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
100
规范符合性

你能构建什么

企业级PHP开发

遵循现代标准和PSR规范,构建可扩展、类型安全的PHP应用程序,适用于企业环境。

性能优化

使用生成器和SPL结构重构内存密集型代码,减少内存占用并缩短响应时间。

PHP现代化改造

使用枚举、match表达式和构造函数属性提升将传统PHP代码库升级到PHP 8+。

试试这些提示

具有类型安全的基本PHP函数
创建一个处理用户数据数组的PHP函数。使用严格类型声明、返回类型声明,并使用异常进行适当的错误处理。
用于大型数据集处理的生成器
编写一个PHP生成器函数,读取并处理包含数百万行的CSV文件,而无需将所有数据加载到内存中。包含错误处理和验证逻辑。
SPL数据结构实现
使用SplPriorityQueue实现任务调度器的优先级队列。包含具有优先级和截止日期处理的自定义任务对象。
使用全部特性的现代PHP 8+类
创建一个全面的PHP 8+类,展示构造函数属性提升、状态值枚举、属性元数据和用于复杂逻辑的match表达式。包含接口和trait以实现可扩展性。

最佳实践

  • 始终启用strict_types=1以获得可预测的类型强制转换行为
  • 使用生成器迭代大型数据集以最小化内存使用
  • 当SPL数据结构能提供明显性能或语义优势时优先使用它们

避免

  • 在处理前将整个文件或大型数据集加载到数组中
  • 在不考虑内存的情况下对无界数据使用array_count_values或类似函数
  • 将业务逻辑与展示代码混在一起,而不是遵循关注点分离原则

常见问题

本技能针对哪个PHP版本?
本技能专注于PHP 8.0+特性,包括枚举、match表达式、联合类型和构造函数属性提升。代码示例适用于PHP 8.0及更高版本。
本技能可以帮助Laravel或Symfony框架吗?
是的,核心PHP原则适用于所有框架。虽然专注于原生PHP,但这些模式和技巧可以直接应用于Laravel、Symfony和其他框架。
本技能生成可执行代码还是仅提供指导?
本技能提供完整的代码示例和架构指导。所有代码都适用于生产环境,具有适当的类型声明、错误处理和文档。
生成器如何提升PHP性能?
生成器一次yield一个值,而不是在内存中构建完整数组。这将迭代的内存使用从O(n)减少到O(1),对于处理大型数据集至关重要。
什么时候应该用SPL数据结构而不是数组?
当需要特定行为时使用SPL数据结构:SplQueue用于FIFO操作,SplStack用于LIFO,SplHeap用于优先级排序,或在需要对象风格访问时使用ArrayObject。
本技能可以帮助PHP性能分析吗?
是的,本技能提供使用Xdebug、Blackfire和内置函数(如memory_get_usage())识别性能瓶颈的指导。它还教授常见性能问题的优化技巧。

开发者详情

文件结构

📄 SKILL.md