Download the PHP package code-distortion/insight without Composer
On this page you can find all versions of the php package code-distortion/insight. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download code-distortion/insight
More information about code-distortion/insight
Files in code-distortion/insight
Package insight
Short Description Test protected and private object methods and properties as if they were public
License MIT
Homepage https://github.com/code-distortion/insight
Informations about the package insight
Insight
code-distortion/insight is a PHP library that allows you to access protected and private object methods and properties, as if they were public.
This might be useful when testing. It might be a good idea, or it might not. It's up to you.
Note: Using Insight for purposes other than testing is probably a code smell.
Installation
Install the package via composer:
Usage
Instantiate an Insight object:
$testObject
will then act as if it is the original object, but gives you access to its protected and private methods and properties as well.
Read and write protected and private properties:
Call protected and private methods:
These can be useful while testing your code with phpunit:
Abstract classes
You can test abstract classes (and classes whose constructor is not public) by passing the class when instantiating an Insight object.
Note: When instantiating Insight with a class like this (instead of an object) you will only be able to access it's static methods and properties.
Note: To test other functionality of an abstract class you will need to have a concrete class that extends the abstract class, and use that instead.
Static methods and properties
PHP doesn't have __getStatic()
or __setStatic()
magic methods either which would help facilitate accessing protected properties.
Instead, Insight lets you access static methods and properties in the same way as regular methods and properties. Just add StaticProp
or StaticMethod
after the property or method name respectively:
Misc
You can access the underlying object or class by accessing the ->insight
property:
Testing This Package
- Clone this package:
git clone https://github.com/code-distortion/insight.git .
- Run
composer install
to install dependencies - Run the tests:
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
SemVer
This library uses SemVer 2.0.0 versioning. This means that changes to X
indicate a breaking change: 0.0.X
, 0.X.y
, X.y.z
. When this library changes to version 1.0.0, 2.0.0 and so forth, it doesn't indicate that it's necessarily a notable release, it simply indicates that the changes were breaking.
Treeware
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
Contributing
Please see CONTRIBUTING for details.
Code of Conduct
Please see CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.