【问题标题】:How to access a controller from a different module?如何从不同的模块访问控制器?
【发布时间】:2013-10-29 15:45:12
【问题描述】:

我有一个 Phalcon 多模块应用程序,其结构如下:

  • 应用服务器
    • 应用程序
      • API
      • 后端
      • 网络
    • 配置
    • 公开

后端模块是我常用的逻辑模块。 (我认为)我需要 API 中的控制器来在后端调用控制器。我怎样才能做到这一点?或者有没有更好的方法从 api 模块访问后端模块中的逻辑?

我已经尝试将 \AppServer\Backend\Controllers 命名空间添加到 \AppServer\Api\Module->registerAutoloaders() 内的加载程序,但是当我尝试在 \AppServer\Api\Controllers\IndexController-> 内使用它时index(),它给了我一个错误,说它找不到类。

我读到我应该从路由器获取处理后的模块,但我也不知道该怎么做。

提前感谢您的帮助:)

【问题讨论】:

  • 你想达到什么目的?也许您的问题还有其他解决方案,但我不确定我是否正确理解了您的问题。您想将用户重定向到其他控制器的操作还是在模块之间共享一些通用逻辑?
  • 抱歉耽搁了,我得检查一下我的通知选项....我试图把通用逻辑和模型放在一个地方,把一些特定于 API 的特殊逻辑放在一个地方,而特定于 Web 界面的特殊逻辑在另一个地方。这里主要的是,访问API的用户和访问webUI的用户不同,但他们访问的模型和一些共同的逻辑。

标签: phalcon


【解决方案1】:

使用这个结构:

  • 应用服务器
    • 应用程序
      • API
      • 后端
      • 网络
    • 常见
      • 型号
      • 控制器
      • 观看次数
    • 配置
    • 公开

这是一个使用类似应用程序结构的示例应用程序:https://github.com/phalcon/album-o-rama

【讨论】:

  • 效果很好!现在我可以从 /apps/api 中的控制器访问 /common 中的控制器。我之前曾研究过该示例应用程序,但直到您发布答案后我才得到它。非常感谢!
猜你喜欢
  • 2015-08-03
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多