kdyby / strict-objects
Simple trait to make your class strict, when calling or accessing undefined member (property or method).
Installs: 1 504 975
Dependents: 21
Suggesters: 0
Security: 0
Stars: 31
Watchers: 6
Forks: 12
Open Issues: 1
Requires
- php: ^7.1
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^1.0
- kdyby/coding-standard: ^1.0@dev
- nette/tester: ~2.3.1
- phpstan/phpstan-shim: ^0.11
This package is auto-updated.
Last update: 2024-11-08 00:21:55 UTC
README
Simple set of traits to make your classes strict, when calling or accessing an undefined member (property or method).
This library is heavily inspired by Nette\ObjectMixin
.
Installation
The best way to install Kdyby/StrictObjects is using Composer:
composer require kdyby/strict-objects
Usage
Simply include the trait in your class and it will behave strictly!
use Kdyby\StrictObjects\Scream; class MyClass { use Scream; // my code }
If you for some reason can't or don't want to make all undefined property and method access strict, you can enable the behavior selectively by using specific traits:
Kdyby\StrictObjects\PropertyReadScreamer
: Will throw when attempting to read an undeclared property.Kdyby\StrictObjects\PropertyWriteScreamer
: Will throw when attempting to write to an undeclared property.Kdyby\StrictObjects\PropertyExistsScreamer
: Will throw when attempting to check existence of an undeclared property.Kdyby\StrictObjects\PropertyRemovalScreamer
: Will throw when attempting to unset an undeclared property.Kdyby\StrictObjects\InstanceMethodCallScreamer
: Will throw when attempting to call an undefined instance method.Kdyby\StrictObjects\StaticMethodCallScreamer
: Will throw when attempting to call an undefined static method.
For convenience, there are also:
Kdyby\StrictObjects\PropertyScreamer
: Combines all property access, will throw on any interaction.Kdyby\StrictObjects\MethodCallScreamer
: Combines both method call types, will throw for all methods.Kdyby\StrictObjects\Scream
combines all screamers into one.
Homepage https://www.kdyby.org and repository https://github.com/Kdyby/StrictObjects.