Внутренний контроллер Phalcon не загружается - PullRequest
0 голосов
/ 27 января 2020

Я новичок в фреймворке Phalcon. Я тестирую свой первый многомодульный проект phalcon с: Phalcon-4.0.3, у меня установлен psr, и я следую примеру из документации phalcon. все нормально без двигателя вольт, но мой внутренний модуль или контроллер не отвечает, и я не получаю никакой ошибки, и проблема в том, что я не могу перенаправить на beckend модуль или контроллер, если какой-либо эксперт, пожалуйста, решите мою проблему !!

enter image description here

[index.php]

use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Router;
use Phalcon\Mvc\Application;
$di = new FactoryDefault();
$di->set('router',function () {
        $router = new Router(false);
        $router->setDefaultModule('frontend');
        $router->add('/backend',
            [
                'module'     => 'backend',
                'controller' => 'index',
                'action'     => 'index',
            ]
        );
        return $router;
    }
);
$application = new Application($di);
$application->registerModules(
    [
        'frontend' => [
            'className' => 'Multiple\Frontend\Module',//\Multiple\Frontend\Module::class,
            'path'      => '../apps/frontend/Module.php',
        ],
        'backend'  => [
            'className' => 'Multiple\Backend\Module',//\Multiple\Backend\Module::class,
            'path'      => '../apps/backend/Module.php',
        ],
    ]
);
try{
    $response = $application->handle($_SERVER["REQUEST_URI"]);
    $response->send();
}catch (\Throwable $e) {
    echo $e->getMessage();
}

[Внутренний модуль]

namespace Multiple\Backend;
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\View\Engine\Volt;
use Phalcon\Di\DiInterface;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\ModuleDefinitionInterface;
class Module implements ModuleDefinitionInterface
{
    public function registerAutoloaders(DiInterface $di = null)
    {
        $loader = new Loader();
        $loader->registerClasses([
            'Multiple\Backend\Module' =>'../apps/backend/Module.php',
        ]);        
        $loader->registerNamespaces(
            [
                'Multiple\Backend\Controllers' => '../apps/backend/controllers/',
                'Multiple\Backend\Models'      => '../apps/backend/models/',
            ]
        );
        $loader->register();
    }
    public function registerServices(DiInterface $di)
    {
        $di->set('dispatcher',function () {
                $dispatcher = new Dispatcher();
                $dispatcher->setDefaultNamespace('Multiple\Backend\Controllers');
                return $dispatcher;
            }
        );
        $di->set('view',function () {
                $view = new View();
                $view->setViewsDir('../apps/backend/views/');
                return $view;
            }
        );
    }
}

[Интерфейсный модуль]

namespace Multiple\Frontend;
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\View\Engine\Volt;
use Phalcon\Di\DiInterface;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\ModuleDefinitionInterface;
class Module implements ModuleDefinitionInterface
{
    /**
     * Register a specific autoloader for the module
     */
    public function registerAutoloaders(DiInterface $di = null)
    {
        $loader = new Loader();

        $loader->registerClasses([
            'Multiple\Frontend\Module' =>'../apps/frontend/Module.php',
        ]);

        $loader->registerNamespaces([
                'Multiple\Frontend\Controllers' => '../apps/frontend/controllers/',
                'Multiple\Frontend\Models'      => '../apps/frontend/models/',
            ]);
        $loader->register();

    }
    /**
     * Register specific services for the module
     */
    public function registerServices(DiInterface $di)
    {
        // Registering a dispatcher
        $di->set('dispatcher',function () {
                $dispatcher = new Dispatcher();
                $dispatcher->setDefaultNamespace('Multiple\Frontend\Controllers');
                return $dispatcher;
            }
        );
        // Registering the view component
        $di->set('view',function () {
                $view = new View();
                $view->setViewsDir('../apps/frontend/views/');
                return $view;
            }
        );
    }
}
...