Каковы разные способы настройки маршрутов? - PullRequest
1 голос
/ 17 августа 2011

Если кто-то знаком с Zend Framewor, он знает, что такое маршруты и как они влияют на систему в целом.Мой вопрос касается способов настройки этих маршрутов.Я знаю два способа их настройки, через Bootstrap.php и application.ini.

Тем не менее, не скрывая того факта, что я сам в значительной степени учусь в Zend Framework, я не знаю, какой из них лучше, а какой предпочтительнее другого.

Более того, я не знаю, доступны ли только эти способы настройки роутера?

Итак, скажите, пожалуйста, каким образом мы можем настроить маршрутизатор и какой метод лучше других?

PS: я включил два способа, которые я знал как ответ .

Ответы [ 2 ]

2 голосов
/ 17 августа 2011

Маршрутизация - это конфигурация, которая не изменяется во время выполнения, поэтому ее лучше поместить в файл конфигурации, отделенный от динамического кода. Определите маршрутизатор в Bootstrap.php, если ваш маршрутизатор зависит от некоторого условия, которое является динамическим по своей природе.

2 голосов
/ 17 августа 2011

Поскольку я пытаюсь использовать это в качестве руководства для таких, как я, я хотел бы включить два известных мне способа.

Application.ini

resources.router.routes.cat.route = "/browse/:catid/:name/"
resources.router.routes.cat.defaults.controller = index
resources.router.routes.cat.defaults.action = browse

Вот чтовы делаете это, resources.router.routes.XXX.route Определите название маршрута вместо XXX

catid и name - два параметра, которые будут приняты, когда вы передадите URL таким образом /browse/1/pc 1 будет присвоено catid и pc имени

Оставшиеся две строки определяют параметр по умолчанию из контроллера и действия, из MVC

Bootstrap.php

    $front = Zend_Controller_Front::getInstance();  
    // Get Router
    $router = $front -> getRouter();
    $routeBrowse = new Zend_Controller_Router_Route(
        '/browse/:catid/:name',
        array(
            'controller' => 'index',
            'action' => 'index'
        )
    );
    $router -> addRoute('browse', $routeBrowse);

Я буду избегать объяснений, так как почти то же самое, что и раньше.

Однако я не уверен, какой из них лучше другого.Итак, те, кто знает, обновите мой ответ.

...