sebk / small-class-manipulator
1.0.0
2023-01-03 02:07 UTC
Requires
- php: >=8.1
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 9.5.*
README
此库允许您读取和解析包含类的 PHP 文件到 PHP 对象。
然后您可以轻松地添加或删除组件并重写带有修改的文件。
迁移
此库已迁移到 framagit 项目。
在 https://packagist.org.cn/packages/small/class-manipulator 可用新的 composer 包
未来的提交将在 framagit 上进行。
此存储库将在几个月后删除。
解析和生成类
操纵器实例化
要解析一个类,您必须实例化 ClassManipulator
$classManipulator = new ClassManipulator([ 'rootDir' => __DIR__ . '/../data', 'selectors' => [ 'test' => [ 'testing' => [ 'namespace' => 'DataTest\Testing', 'path' => 'DataTest', ], 'empty' => [ 'namespace' => 'Empty', 'path' => 'Empty', ], ] ], ]);
"rootDir" 参数是您的 "src" 目录。
选择器允许您通过类别隔离命名空间参数。这里我们只注入了一个 "test" 选择器。
在测试选择器中,我们可以有我们想要的任意数量的命名空间,每个命名空间必须包含一个命名空间和相应的目录路径。
解析
现在您可以解析一个类了
$classFile = $this->classManipulator->getClass('test', \Empty\Testing\TestClass::class);
这将返回一个 ClassFile
单元测试
要运行单元测试,您需要安装 docker 和 docker-compose
$ apt-get install docker docker-compose
然后进入库的根目录并运行
$ docker-compose up -d --build
如果测试失败,命令将返回错误。
在开发过程中,您可以在 docker-compose.yml 中将 "BUILD" 参数设置为 0,然后容器将不会停止,允许您使用以下命令运行测试
$ bin/test