所以我一直在閱讀大量的stackoverflow和phalcon論壇主題..(我開始討厭這個框架),但似乎沒有任何工作,它不'例如,解釋爲什麼像Laravel那樣。Phalcon路由器不會對子文件夾和命名空間聲明做出反應
我只是想能夠與該應用程序結構進行操作:
正如你看到的,我要的是用控制器命名空間中的子文件夾,以使更多的爲了我的代碼。
根據所有的解釋,這是我loader.php:
<?php
$loader = new \Phalcon\Loader();
/**
* We're a registering a set of directories taken from the configuration file
*/
$loader->registerDirs(
array(
$config->application->controllersDir,
$config->application->modelsDir,
$config->application->pluginsDir
)
)->register();
據我所知,通過registerDirs使用時爾康應該穿越了找不到類的所有子文件夾。
然後我定義我的路線,以特定的控制器在基本目錄索引控制器的主要途徑後:
<?php
$router = new Phalcon\Mvc\Router(false);
$router->add('/:controller/:action/:params', array(
'namespace' => 'App\Controllers',
'controller' => 1,
'action' => 2,
'params' => 3,
));
$router->add('/:controller', array(
'namespace' => 'App\Controllers',
'controller' => 1
));
$router->add('/soccer/soccer/:controller', array(
'namespace' => 'App\Controllers\Soccer',
'controller' => 1
));
$router->add('/soccer/:controller/:action/:params', array(
'namespace' => 'App\Controllers\Soccer',
'controller' => 1,
'action' => 2,
'params' => 3
));
return $router;
而且我的一個控制器的樣子:
<?php namespace App\Controllers\Soccer;
use App\Controllers\ControllerBase as ControllerBase;
class IndexController extends ControllerBase
{
public function indexAction()
{
}
}
有什麼不對嗎?默認的頂部命名空間沒有註冊?我錯過了什麼嗎?
這只是行不通的。當我嘗試打開myserver.com/soccer我希望去的app/controllers /足球/ IndexController.php,而是它告訴我:
SoccerController處理程序類無法加載
這基本上意味着它正在/ controllers目錄中尋找SoccerController.php,完全忽略了我的子文件夾定義和路由。
Phalcon 1.3.0
卡住了一個星期。任何幫助 - 非常感謝。
呃..爲什麼我的線程得到了一個減號?我按照規則要求提供了關於我的問題和代碼塊的最詳細的解釋。 – deb0rian
我不知道爲什麼,因爲它不是我,但如果你想猜測它是讓你的挫折滲透到你的問題,除了我同意,值得一加 – CodeMonkey