2

我正在尝试在 Phalcon Micro Application 中包含一个模块。那可能吗?

我有这样的结构

common/
    components/
      ...
    modules/
       system
          components
             ...
          controllers
             ...
       rest
          components
             ...
          controllers
             ...
       www
          controllers
             ...
www/
   index.php -> Loads /Phalcon/Mvc/Application($di);

api/
   index.php -> Loads /Phalcon/Mvc/Micro($di);

从配置中www注册模块

我希望api从配置中注册其余模块并包含该模块的控制器和组件。那可能吗?

谢谢,加西姆

4

2 回答 2

2

显然一切皆有可能!

如果你想用 application+micro 保持你的结构,我认为最好的方法是创建 3 个配置。

  • api 和 www 都通用的第一个配置
  • 第二个仅由您的 www 与它的一个路由器加载
  • 仅由您的 api 及其一个微路由器加载的三分之一,它重新定义了到其余模块的不同路径。

如果您只想使用带有单个配置文件的多模块应用程序,那么我可以建议您在路由器中使用 域识别,这要归功于setHostName()方法

然后在您的配置文件中定义您每次使用的 api 主机名和 www 主机名。为了更方便,您也可以将它们放在全局常量中。

// an api get route
$router->add("/getsomething",...)
    ->via("GET")
    ->setHostname(MyApp::HOSTNAME_API);

// an api post route
$router->add("/postsomething",...)
    ->via("POST")
    ->setHostname(MyApp::HOSTNAME_API);

// a www route
$router->add("/",...)->setHostname(MyApp::HOSTNAME_WEB);
于 2013-09-04T10:38:37.130 回答
1

我正在尝试在 Phalcon Micro Application 中包含一个模块。那可能吗?

是没有问题!

我希望 api 从配置中注册其余模块,并包含该模块的控制器和组件。那可能吗?

查看您的描述和结构,我理解为您想将 www 模块和 api 模块的配置分开。这将正常工作,您只需要在 www/index.php 中包含您的 api 配置(因为这是您启动应用程序的地方,也是您所有请求的地方)。祝你好运!

于 2013-09-05T08:35:54.860 回答