У меня проблема с созданием динамического прокси-объекта в PHP.
например:
class ApplicationParamsService {
/*
* @Cache(time=30)
*/
public function getValue(string $key): float {
return $this->dao->getByKey($key);
}
}
Я создал собственную @Cache
- аннотацию доктрины и для этого я создал BeanProxy
и использовал __call($methodName, $arguments)
для вызова аннотированного метода прокси.
new BeanProxy($applicationParamService);
Поэтому, если кто-то использует bean.getVal('app.key')
, он вызовет кэш с таймером 30 минут (Cache - это APC или Redis).
Проблема возникает, когда я хочу передать компонент в другой конструктор компонента: __construct(ApplicationParamService $service)
<- Но это вызовет ошибку.</p>
Конечно, я могу удалить Type, но тогда я потеряю проверку типов.