1 回答
TA贡献1853条经验 获得超6个赞
我提供了 Phalcon 文档中描述的解决方案,但进行了一些调整以满足我的需求。
我提出的解决方案是向服务容器添加新的调度事件侦听器以处理操作依赖关系,例如:
$di->setShared('dispatcher', function() {
$evManager->attach("dispatch:beforeDispatch", function (Event $event, Dispatcher $dispatcher) {
try {
$methodReflection = new ReflectionMethod(
$dispatcher->getControllerClass(),
$dispatcher->getActiveMethod()
);
foreach ($methodReflection->getParameters() as $parameter) {
$parameterClass = $parameter->getClass();
if ($parameterClass instanceof ReflectionClass) {
$dispatcher->setParam($parameter->name, new $parameterClass->name);
}
}
} catch (Exception $exception) {
throw new \Exception('', Dispatcher::EXCEPTION_HANDLER_NOT_FOUND);
}
});
$dispatcher = new Dispatcher();
$dispatcher->setEventsManager($evManager);
return $dispatcher;
}
每个框架都有自己的机制,所以如果你需要制作一些特别的东西,你必须手动制作。
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报