phalcon包含休息模块

时间:2013-09-03 10:29:53

标签: rest module structure phalcon

我正在尝试在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从config

注册模块

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

谢谢, 卡西姆

2 个答案:

答案 0 :(得分:2)

显然一切皆有可能!

如果你想保持你的结构与应用程序+微型我认为最好的方法是创建3个配置。

  • api和www
  • 共有的第一个配置
  • 第二个只由您的www加载一个路由器
  • 三分之一只由你的api加载一个microrouter并重新定义到其余模块的不同路径。

如果您只想将多模块应用程序与单个配置文件一起使用,那么我建议您使用the domain recognition在路由器中使用the setHostName() method

然后在配置文件中定义每次使用的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);

答案 1 :(得分:1)

  

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

是的,没问题!

  

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

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