Hi,
I tried to create my own routing. But It does not work at all. I have my domain: example.local
That should be so:
If I call "example.local/client/namespace" -> namespace = Application\Modules\"namespace"\Controllers\Client
If I call "example.local/namespace" -> namespace = Application\Modules\"namespace"\Controllers
There are also routes for "/client/namespace/controller" and "/namespace/controller" and some more.
But actually if the url is "example.local/client/namespace" phalcon handle the following: -> /namespace/controller instead of /client/namespace
The include order is: ClientRouter first, then PageRouter
Does anybody has a Idea how I can give /client (also /admin) a higer priority if it is in the url?
Here is my code:
class ClientRouter extends Phalcon\Mvc\Router\Group {
    protected $config;
    public function initialize() {
        $this->LoadConfig();
        var_dump($_SERVER['REQUEST_URI']);
        $this->setHostname($this->config->router->clientHostname);
        $this->setPrefix('/client');
        $this->add('', $this->GetFallback());
        $this->add('/', $this->GetFallback());
        //namespace only (eg. gameserver)
        $this->add(
            ':namespace',
            [
                'namespace'     => 1,
                'controller'    => 'Index',
                'action'        => 'index',
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Client';
                return $namespace;
            }
        );
        //namespace + controller (eg. gameserver/index
        $this->add(
            ':namespace/:controller',
            [
                'namespace'     => 1,
                'controller'    => 2,
                'action'        => 'index',
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Client';
                return $namespace;
            }
        );
        //namespace + controller + action + params (eg. gameserver/server/edit/34)
        $this->add(
            ':namespace/:controller/:action/:params',
            [
                'namespace'     => 1,
                'controller'    => 2,
                'action'        => 3,
                'params'        => 4,
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Client';
                return $namespace;
            }
        );
        unset($this->config);
    }
    protected function GetFallback() {
        return [
            'action'        => 'index',
            'controller'    => 'Overview',
            'namespace'     => 'Application\\Modules\\Index\\Controllers\\Client'
        ];
    }
    protected function LoadConfig() {
        $this->config = \Application\Core\System::GetInstance()->GetConfig();
    }
}
$this->router->mount(new ClientRouter());class PageRouter extends Phalcon\Mvc\Router\Group {
    protected $config;
    public function initialize() {
        $this->LoadConfig();
        $this->setHostname($this->config->router->clientHostname);
        $this->setPrefix('/');
        //fallback regeln
        $this->add('', $this->GetFallback());
        $this->add('/', $this->GetFallback());
        //namespace only (eg. gameserver)
        $this->add(
            ':namespace',
            [
                'namespace'     => 1,
                'controller'    => 'Index',
                'action'        => 'index',
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Page';
                return $namespace;
            }
        );
        //namespace + controller (eg. gameserver/index
        $this->add(
            ':namespace/:controller',
            [
                'namespace'     => 1,
                'controller'    => 2,
                'action'        => 'index',
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Page';
                return $namespace;
            }
        );
        //namespace + controller + action + params (eg. gameserver/server/edit/34)
        $this->add(
            ':namespace/:controller/:action/:params',
            [
                'namespace'     => 1,
                'controller'    => 2,
                'action'        => 3,
                'params'        => 4,
            ]
        )->convert(
            'namespace',
            function ($namespace) {
                $namespace = 'Application\\Modules\\' . ucfirst($namespace) . '\\Controllers\\Page';
                return $namespace;
            }
        );
        unset($this->config);
    }
    protected function GetFallback() {
        return [
            'action'        => 'index',
            'controller'    => 'Overview',
            'namespace'     => 'Application\\Modules\\Index\\Controllers\\Page'
        ];
    }
    protected function LoadConfig() {
        $this->config = \Application\Core\System::GetInstance()->GetConfig();
    }
}
$this->router->mount(new PageRouter());