Recommend this page to a friend! |
Download .zip |
Info | View files (4) | Download .zip | Reputation | Support forum | Blog | Links |
Last Updated | Ratings | Unique User Downloads | Download Rankings | |||||
2013-05-22 (3 years ago) | Not enough user ratings | Total: 307 | All time: 6,925 This week: 935 |
Version | License | PHP version | Categories | |||
public-wrap 1.0 | BSD License | 5.3 | PHP 5, Language, Testing |
Description | Author | ||||||||
This class can access an object private attributes and methods. |
|
PublicWrap Set properties and methods visibility to public This class doesn't change behaviour of your original object : it only wraps property and method calls to make them visibles using reflection. This is useful when you're doing unit tests on protected and private methods, or if you want to mock a protected/private dependancy of an object. --- Quick usage sample : class A { private $x = 42; } Normal behaviour : $test = new A(); echo $test->x; // fatal error: $x is private With PublicWrap : $test = new A(); $proxy = new PublicWrap($test); echo $test->x; // 42 See demo for more details (works with private and protected methods and properties). --------- How does it work ? PHP has magic methods: __get($property) let us implement the access of a $property on an object __set($property, $value) let us implement the assignation of a $property on an object __call($method, $args) let us implement a $method call PHP has reflectiion classes: Reflection is a powerful tool that let us access internal constructs of classes in PHP. --------- Changelog 1.0 *** Original version *** |
Files |
File | Role | Description |
---|---|---|
PublicWrap.php | Class | Core class |
PublicWrap.demo.php | Example | Demo: a full usage example |
readme.txt | Doc. | Documentation |
PublicWrap.test.php | Test | PHPUnit tests |
Version Control | Unique User Downloads | Download Rankings | |||||||||||||||
0% |
|
|
Applications that use this package |
If you know an application of this package, send a message to the author to add a link here.