phalcon: 【非官方】多模块
配合router使用
例如:我的模块叫做: home
入口文件增加引入:
use Phalcon\Mvc\Router;
在自动引入前面增加,自动引入命名空间:
/**
* 注册命名空间
*/
$loader->registerNamespaces(array(
'controllers' => '../app/controllers'
))->register();
$loader->registerDirs(
array(
'../app/controllers/',
'../app/models/'
)
)->register();
增加router规则:
//router
$di['router'] = function() {
$router = new Router();
$router->add("/home/?([a-zA-Z0-9_-]*)/?([a-zA-Z0-9_]*)/:params",
array(
"namespace" => 'controllers\home',
"controller" => 1,
"action" => 2,
"params" => 3,
));
$router->add("/index/:params",
array(
"namespace" => 'controllers\home',
"controller" => 'index',
"action" => 'index',
"params" => 1,
)
);
$router->setDefaults(array(
"namespace" => 'controllers\home',
"controller" => "Index",
"action" => "index"
));
return $router;
};
第二步:在你home的controller文件夹下,都要定义命名空间
如:IndexController
<?php
namespace controllers\home;
use Phalcon\Mvc\Controller;
class IndexController extends Controller
{
public function indexAction()
{
echo "gaga";
$this->view->pick('home/index');
}
}
目录结构如下: