$ composer require ray/fake-module --dev
use Ray\Di\AbstractModule;
use Ray\FakeModule\FakeModule;
class AppModule extends AbstractModule
{
protected function configure()
{
$this->install(new FakeModule);
}
}
@FakeResource
annotation fake uri for building mock feature.
Annotate target resource, which you want to fake, with @FakeResource
annotation. Then, 'Fake' prefixed resource in same namespace will be called via interceptor when original resource method called.
this feature heavily depends on BEAR.Resource [https://github.com/bearsunday/BEAR.Resource]
Real resource
namespace FakeVendor\Sandbox\Resource\App;
use BEAR\Resource\ResourceObject;
use Ray\FakeModule\Annotation\FakeResource;
/**
* @FakeResource
*/
class User extends ResourceObject
{
public function onGet($id)
{
// ...
}
}
Fake resource
namespace FakeVendor\Sandbox\Resource\App;
use BEAR\Resource\ResourceObject;
class FakeUser extends ResourceObject
{
public function onGet($id)
{
// ...
}
}
@FakeClass
annotation work as same as @FakeResource
.
Real class.
namespace FakeVendor\Sandbox\Module;
use Ray\FakeModule\Annotation\FakeClass;
/**
* @FakeClass
*/
class TestClass
{
public function output() {
return "test class output";
}
}
Fake class.
namespace FakeVendor\Sandbox\Module;
class FakeTestClass
{
public function output() {
return "fake class output";
}
}
- PHP 5.5+
- hhvm