jasir / unfinalizer
集成 composer 自动加载器,并在运行时从自动加载的类中移除 final 关键字。
dev-master
2013-04-11 06:47 UTC
This package is not auto-updated.
Last update: 2024-09-14 14:19:25 UTC
README
集成 composer 自动加载器并在运行时从自动加载的类中移除 final 关键字。
这允许你在单元测试中模拟 final 类和方法。
用法
将 Unfinalizer 添加到您的项目中
composer require --dev jasir/unfinalizer:dev-master
在您的测试引导文件中,在加载 composer 之前加载 Unfinalizer
include __DIR__ . '/vendor/jasir/unfinalizer/init.php' //add this line
include __DIR__ . '/vendor/autoload.php';
这就完成了。现在,所有由 composer 自动加载过程加载的文件都没有 final 方法。
添加自己的文件或带有自己的加载器的文件
一些框架,如 Nette,使用它们自己的加载器。你可以通过向加载器添加自己的文件来解决这个问题
include __DIR__ . '/vendor/jasir/unfinalizer/init.php' //add this line
$loader = include __DIR__ . '/vendor/autoload.php';
$loader->add('Nette', __DIR__ . '/vendor/nette/nette');
现在你可以模拟那些 finals 了!祝你测试愉快。
待办事项
请注意,此项目处于非常早期的 alpha 阶段,因此代码非常简约。
我想添加(也许)
- 不评估更改的文件,而是将它们保存到缓存中以便更容易调试
- ... ?