public function load(Aspect $aspect)
{
$loadedItems = [];
$refAspect = new \ReflectionClass($aspect);
if (!empty($this->loaders[AspectLoaderExtension::TARGET_CLASS])) {
$loadedItems += $this->loadFrom($aspect, $refAspect, $this->loaders[AspectLoaderExtension::TARGET_CLASS]);
}
if (!empty($this->loaders[AspectLoaderExtension::TARGET_METHOD])) {
$refMethods = $refAspect->getMethods();
foreach ($refMethods as $refMethod) {
$loadedItems += $this->loadFrom($aspect, $refMethod, $this->loaders[AspectLoaderExtension::TARGET_METHOD]);
}
}
if (!empty($this->loaders[AspectLoaderExtension::TARGET_PROPERTY])) {
$refProperties = $refAspect->getProperties();
foreach ($refProperties as $refProperty) {
$loadedItems += $this->loadFrom($aspect, $refProperty, $this->loaders[AspectLoaderExtension::TARGET_PROPERTY]);
}
}
return $loadedItems;
}