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 阶段,因此代码非常简约。

我想添加(也许)

  • 不评估更改的文件,而是将它们保存到缓存中以便更容易调试
  • ... ?