Таким образом, я читаю тонну потоков stackoverflow и phalcon. (Я начинаю ненавидеть эту фреймворк), но ничего не работает, и это не объясняет, например, например, как Laravel.
Я просто пытаюсь работать с этой структурой приложения:
Как вы можете видеть, все, что я хочу, это использовать контроллеры с именами в подпапках, чтобы сделать больше заказов для моего кода.
Согласно всем объяснениям, вот мой 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();
AFAIK, Phalcon должен пересекать все подпапки для не найденных классов при использовании через 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 / controller / soccer / IndexController.php, но вместо этого он говорит мне:
Класс обработчика SoccerController не может быть загружен
Что в основном означает, что он ищет каталог SoccerController.php в / контроллеры и полностью игнорирует определение и маршруты вложенных папок.
Phalcon 1.3.0
Застрял на этом в течение недели. Любая помощь – очень ценится.