<?php
use bitExpert\Disco\Annotations\Bean;
use bitExpert\Disco\Annotations\Configuration;
use bitExpert\Disco\Annotations\BeanPostProcessor;
use bitExpert\Disco\BeanPostProcessor as PostProcessorInterface;
use bitExpert\Disco\AnnotationBeanFactory;
class Foo
{
public $baz;
public function bar() : string
{
return $this->baz . 'Disco dancing';
}
}
class PostProcessor implements PostProcessorInterface
{
public function postProcess(object $bean, string $beanName) : void
{
if ($bean instanceOf Foo) {
$bean->baz = 'No way I\'m ';
}
}
}
/**
* @Configuration
*/
class DiConfig
{
/**
* @Bean
*/
public function foo() : Foo
{
return new Foo();
}
/**
* @BeanPostProcessor
*/
public function postProcessor()
{
return new PostProcessor();
}
}
$parameters = [];
$beanFactory = new AnnotationBeanFactory(DiConfig::class, $parameters);
$foo = $beanFactory->get('foo');
echo $foo->bar();