ocramius / code-generator-utils
基于 PHP-Parsers 的一组代码生成工具,便于与反射结合使用
1.7.0
2024-01-09 06:43 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- nikic/php-parser: ^4.15.3
Requires (Dev)
- doctrine/coding-standard: ^12.0.0
- phpunit/phpunit: ^9.5.28
- psalm/plugin-phpunit: ^0.18.4
- roave/infection-static-analysis-plugin: ^1.28.0
- vimeo/psalm: ^5.4.0
- 1.8.x-dev
- 1.7.x-dev
- 1.7.0
- 1.6.x-dev
- 1.6.0
- 1.5.x-dev
- 1.5.0
- 1.4.x-dev
- 1.4.0
- 1.3.x-dev
- 1.3.0
- 1.2.x-dev
- 1.2.0
- 1.1.x-dev
- 1.1.0
- 1.0.0
- 0.4.1
- 0.4.0
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.0
- 0.1.0
- dev-renovate/phpunit-phpunit-11.x
- dev-renovate/all-minor-patch
- dev-renovate/nikic-php-parser-5.x
- dev-renovate/lock-file-maintenance
- dev-feature/ci-update
This package is auto-updated.
Last update: 2024-09-19 11:15:09 UTC
README
Code Generation Utils 是一个小的库,目前还没有打算用于通用。
这是一个小项目,旨在收集我经常遇到代码生成问题的常见解决方案,目前还没有一个真正稳固的结构。
我构建它是为了解决我在使用 Zend\Code
时经常遇到的限制,并且它主要基于 PHP-Parser 的逻辑。
当这两个都达到了至少 1.0.0
版本时,它将与 GeneratedHydrator 和 ProxyManager 一起稳定下来。
安装
支持的安装方式是通过 composer
php composer.phar require ocramius/code-generator-utils
提供组件
提供的组件通常与代码生成和相关问题有关。
CodeGenerationUtils\Autoloader
这是一个基于回调的小型自动加载组件 - 应在尝试自动加载生成的类时使用。
CodeGenerationUtils\FileLocator
FileLocator 基本上代表一个映射,将生成的类名映射到包含这些类的文件,这些文件应该从中读取或写入。此组件对于不遵守 PSR-0 的生成的代码可能很有用。
CodeGenerationUtils\GeneratorStrategy
提供将 PHP-Parser AST 序列化为类的逻辑。当前的策略允许:
- 将 AST 序列化为字符串
- 将 AST 序列化为字符串并在运行时评估它(通过
eval()
) - 将 AST 序列化为字符串并将其保存到文件中(通过
CodeGenerationUtils\FileLocator
)
CodeGenerationUtils\Inflector
提供各种工具:
- 将生成代码的 FQCN 转换为其生成类的 FQCN
- 给定一个原始类名和一些要编码的任意参数,生成一个生成类的 FQCN(允许从原始类生成多个生成类)
- 生成唯一的有效标识符名称
CodeGenerationUtils\ReflectionBuilder
这是一个非常基本的转换器,它从反射对象构建 PHP-Parser AST 节点(仍在进行中)
CodeGenerationUtils\Visitor
在给定的 PHP-Parser AST 中用于操作类、方法和属性的各个访问者
贡献
如果您想帮忙,请阅读 CONTRIBUTING.md 的内容!