sin square/composer-overload
使用 composer 覆盖类的一个简单工具
v0.1.1
2018-09-27 09:43 UTC
Requires
- php: *
- composer/composer: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-29 06:20:13 UTC
README
这是一个用于“覆盖”类的简单工具。
一个简单的例子
假设你有以下代码
use Random\Namespace\OriginalClass; ... $class = new OriginalClass();
在这种情况下,composer 会搜索文件,并加载(包含)它。但可能存在你想加载一个占位符类而不是原始类的情况,以便你的测试运行,例如。
为了做到这一点,你必须使用 ComposerOverload 自动加载器。替换原始的自动加载器。
//original autoloader $loader = require __DIR__.'/vendor/autoload.php'; //ComposerAutoloader autoloader require __DIR__.'/vendor/autoload.php'; require_once __DIR__.'/vendor/sinsquare/composer-overload/autoload_real.php'; $loader = ComposerOverLoaderInit::getLoader();
然后你可以添加你想要覆盖的类
//original autoloader $loader->addOverloadedClass('Random\Namespace\OriginalClass', __DIR__.'/overloaded/OverloadedClass.php');
要运行测试,你必须单独运行两个测试
- vendor/bin/phpunit tests/OriginalTest.php
- vendor/bin/phpunit tests/OverloadTest.php