模块之间的共享基础控制器

时间:2014-11-12 10:00:59

标签: phalcon phalcon-routing

我正在设置一个多模块应用程序,到目前为止,我已将其设置为此示例http://docs.phalconphp.com/en/latest/reference/applications.html

但是如果它可以拥有后端和前端控制器都可以扩展的共享基本控制器,那么我就会徘徊。这样我就可以在基本控制器中拥有一个ACL。我该如何设置?

根据文档,我可以在任何地方创建一个控制器库,然后直接在引导程序文件中直接需要此文件,或者使用任何自动加载器加载。所以我创建了一个名为apps / shared / controllers / ControllerBase.php的文件夹,并直接在bootstrap文件中需要这个文件,但这不起作用。

如果我尝试加载这样的控制器:

 class AdminController extends ControllerBase
 {

       public function indexAction()
       {
            echo "<h1>Hello admin!</h1>";
        }
  }

我收到错误......后端\ Controllers \ ControllerBase'找不到......

那么如何根据文档使用任何自动加载器加载?我需要将其注册为自己的命名空间吗?

1 个答案:

答案 0 :(得分:1)

您没有使用基本控制器的完整命名空间路径,因此自动加载器会尝试在子类的同一命名空间中找到它。

尝试这样的事情:

namespace MyApp\Backend\Controllers;

use MyApp\Shared\Controllers\ControllerBase;

class AdminController extends ControllerBase
{
    public function indexAction()
    {
        echo "<h1>Hello admin!</h1>";
    }
}

此答案认为您已正确应用PSR-0 and PSR-4