Php Proxy объект - PullRequest
       24

Php Proxy объект

0 голосов
/ 13 сентября 2018

У меня проблема с созданием динамического прокси-объекта в 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, но тогда я потеряю проверку типов.

...