Mock class constructor args based on the reflection class
reecem/mocker is a Laravel package for mock class constructor args based on the reflection class.
It currently has 7 GitHub stars and 260.851 downloads on Packagist (latest version v1.2.1).
Install it with composer require reecem/mocker.
Discover more Laravel packages by reecem
or browse all Laravel packages to compare alternatives.
Last updated
This package is initially made to for an issue on the MailEclipse package, but improvements are welcome. It currently is probably stupid simple, but deals with the one job of reading a file and mocking it.
Generate a mocked instance of the un-typed params in a __construct() method
This searches the file retrieved from the reflection class and looks for all object like arrow calls; ie:
...
public function __construct($objectArg, string $arg)
{
$this->value = $objectArg->value; // this will be picked up
$this->name = $arg;
}
...
You can install the package via composer:
composer require reecem/mocker
use ReeceM\ReflectionMockery;
/**
* The class __construct Method is automatically read and args created
*/
$mock = new ReflectionMockery('\App\User');
// or
$mock = new ReflectionMockery(new \ReflectionClass('\App\User'));
// some time later
/**
* Use call a variable from the class that don't exist
*/
{{ $mock->get('somethingNotInUser') }}
{{ $mock->somethingNotInUser }}
// both would return
"mock->somethingNotInUser"
// if something was set in user
'mock->somethingNotInUser => ["value that set"]'
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
$this->internal = $param; searching so it works later on in the codeConsider supporting some code if it is useful to you :smile:
The MIT License (MIT). Please see License File for more information.
|