Aware Interfaces
There are two main interfaces that the Caridea\Container\Objects class supports when objects are instantiated.
ContainerAware
If an object implements Caridea\Container\ContainerAware, it will have its setContainer method called as soon as it's instantiated.
A simple trait helps with this interface.
class MyContainerAware implements \Caridea\Container\ContainerAware
{
use \Caridea\Container\ContainerSetter;
public function __construct()
{
// set the property with the no-op container instead of leaving it null.
// it's a good habit!
$this->container = new \Caridea\Container\EmptyContainer();
}
}
PublisherAware
If an object implements Caridea\Event\PublisherAware, it will have its setPublisher method called as soon as it's instantiated.
A simple trait helps with this interface.
class MyPublisherAware implements \Caridea\Event\PublisherAware
{
use \Caridea\Event\PublisherSetter;
public function __construct()
{
// set the property with the no-op publisher instead of leaving it null.
// it's a good habit!
$this->setPublisher(new \Caridea\Event\NullPublisher());
}
}