nyholm/nsa
Access non-public properties and methods in PHP for testing and debugging. Nyholm/nsa provides a tiny helper to bypass visibility restrictions (private/protected) without changing production code, making it easy to inspect internals and call hidden methods safely.
This small class helps you to test your private and protected properties and methods. One could argue that you never should test private methods but sometimes it just makes the test code a lot cleaner and easier to write and understand. This library is all about DX.
$object = new Dog();
NSA::setProperty($object, 'name', 'Foobar');
$name = NSA::getProperty($object, 'name');
$result = NSA::invokeMethod($object, 'doAction', 'jump', '1 meter');
echo $name; // "Foobar"
echo $result; // "Dog just did 'jump' for 1 meter"
// Access static properties and methods
$age = NSA::getProperty('\Dog', 'age');
echo $age; // 12
class Dog
{
private $name = 'unnamed';
private static $age = 12;
private function doAction($action, $parameter)
{
return sprintf("Dog just did '%s' for %s", $action, $parameter);
}
}
$ composer require nyholm/nsa
The MIT License (MIT). Please see License File for more information.
How can I help you explore Laravel packages today?