sinsquare / composer-overload
A simple tool to overload classes using 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-11-10 06:49:05 UTC
README
A simple tool that is used to "overload" classes.
A simple example:
Lets say you have the following code
use Random\Namespace\OriginalClass; ... $class = new OriginalClass();
In this case composer will search the file, and load(include) it. But there might be a case when you want to load a dummy class instead of the original class, so your tests run for example.
To do it you have to use the ComposerOverload autoloader. Replace the original autoloader.
//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();
Then you can add the classes you want to overload
//original autoloader $loader->addOverloadedClass('Random\Namespace\OriginalClass', __DIR__.'/overloaded/OverloadedClass.php');
To run the tests you have to run the two tests separately
- vendor/bin/phpunit tests/OriginalTest.php
- vendor/bin/phpunit tests/OverloadTest.php