scottaubrey / befriender
A library to enable classes to allow select foreign classes and allow them to affect internal properties
This package is not auto-updated.
Last update: 2024-12-15 01:12:10 UTC
README
A library to enable classes to allow select foreign classes and allow them to affect internal properties
Befriender gives a really simple API to allow specified classes access to the private state of other classes. It coes so through the magic methods __get, __set, etc.
Requirements
PHP 7.0+
How to use
use composer to install the library composer require scottaubrey/befriender
.
Then add the Befriender trait to the class you want to share state, like so:
#!php
<?php
class Person
{
use Befriender\Befriender;
private $name;
// the rest of the class
}
finally, call ::befriend at an appropriate point (most likely this is the point you construct your class), passing in the class to allow access as a string:
#!php
<?php
class Person
{
use Befriender\Befriender;
private $name;
public function __construct()
{
$this->befriend(MyFriend::class);
}
// the rest of the class
}
There are full examples in the examples folder.
Disclaimer
I don't use this in production. You probably shouldn't either, and wait for PHP to get better state sharing, or design your classes around it.
If you know what this does though, it's nice not to maintain it yourself.
License
Befriender is licensed under the MIT License