PhalconPHP-如果控制器与加载程序同名,则无法加载控制器
在我命名我的应用程序(测试应用程序)之前,一切正常。 但在我开始命名控制器和所有东西并加载名称空间后,如下所示:PhalconPHP-如果控制器与加载程序同名,则无法加载控制器,php,phalcon,Php,Phalcon,在我命名我的应用程序(测试应用程序)之前,一切正常。 但在我开始命名控制器和所有东西并加载名称空间后,如下所示: $loader = new Loader(); $loader->registerNamespaces( array( 'Application\Controllers' => 'Application/Controllers/' ) )->register(); 我得到错误异常:无法
$loader = new Loader();
$loader->registerNamespaces(
array(
'Application\Controllers' => 'Application/Controllers/'
)
)->register();
我得到错误异常:无法加载IndexController处理程序类
我输入的命名空间是正确的:
namespace Application\Controllers;
use Phalcon\Mvc\Controller;
class IndexController extends Controller {
public function indexAction() {
echo "Hello World";
}
}
(来源:) 我通过向路由器添加默认名称空间来修复它:
$router = new Router();
$router->setDefaultNamespace('Application\Controllers');
但这可能会给我带来更多的问题,因为名称空间加载器似乎无法工作
怎么了?我认为您只需设置名称空间的根,然后加载程序将执行脚手架:
$loader = new Loader();
$loader->registerNamespaces(
array(
'Application' => 'Application'
)
)->register();
你确定你得到的应用程序文件夹是正确的吗?尝试:
$loader = new Loader();
$loader->registerNamespaces(
array(
'Application' => '~/Application/'
)
)->register();
没有问题,加载程序和路由器中的名称空间注册都是必需的步骤 首先,您只配置了加载程序。所以如果你在某处测试:
$controller=new Application\Controllers\IndexController()代码>
它会起作用的
但是,您还没有告诉路由器所有路由都应该指向Application\Controllers
名称空间。因此,它试图找到确实不存在的\IndexController
类。是的,该文件夹是正确的,因为如果我从控制器中删除名称空间,它就会工作。