---
title: "Blogga med Zend Framework - Del 6: Zend_Controller_Route"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/175980-blogga-med-zend-framework-del-6-zend-controller-route"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "jme"
published: "2008-12-21T21:28:46.000Z"
updated: "2008-12-21T21:28:46.000Z"
replies: 0
views: 3526
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbutveckling/175980-blogga-med-zend-framework-del-6-zend-controller-route"
---

# Blogga med Zend Framework - Del 6: Zend_Controller_Route

## #1 — jme, 2008-12-21T21:28Z

Vi använder Apaches mod_rewrite endast till för att dirigera trafiken till index.php. ZF innehåller egen funktionalitet för att skriva om adresserna.

Detta görs med hjälp av klassen Zend_Controller_Router_Route. Exempel kan ni hitta i metoden initRoutes() i klassen Initializer.

Vår blogg behöver tre enkla "regler". För det första så vill vi att om användaren besöker adressen <http://localhost:9001> så skall han/hon dirigeras om till en sida som visar alla inlägg.

Detta görs med följande regel:

```php
$router->addRoute(
                'short', new Zend_Controller_Router_Route('/',
                array(  'module' => 'blog',
                        'controller' => 'index',
                        'action' => 'list') ) );
```

Observera att ovanstående regel aktiveras endast, om adressen inte innehåller GET-variabler.

Andra argumentet till Zend_Controller_Router_Route innehåller värden för de variabler som används då dessa inte har angivits. Vill vi tydligt ange dessa värden i adressen, skulle vi kunna göra det på följande sätt:
<http://localhost:9001/blog/index/list>

Vår blogg har endast två controller- classer, en i varje modul. Då båda dessa klasser heter IndexController så känns det onödigt att i varje URL ange ”index”. Därför har vi en passande regel för detta:

```php
$router->addRoute(
        'default', new Zend_Controller_Router_Route('/:module/:action/*',
        array( 'controller' => 'index') ) );
```

Ovanstående regel förväntar sig att adressen innehåller namnet på modulen och action-metoden. Vi har placerat två behållare för dessa värden. Nämligen ”:module” och ”:action”. Tidigare nämndes att det är onödigt att inkludera namnet på controller-klassen i adressen så här har vi lagt till ”index” som default värde.

Om vi nu t.ex. vill navigera till vår bloggs söksida så kan vi ange följande adress:

<http://localhost:9001/blog/search>

Observera att ovanstående regel avslutas med en ”\*”. Det är en wildcard och antyder att regeln accepterar flera variabler.

Våg blogg behöver rätt så enkla regler men Zend_Controller_Router_Route har mer att ge.

Mer om Zend_Controller_Router_Route kan du läsa på sidan <http://framework.zend.com/manual/en/zend.controller.router.html>.

Permalänk: https://www.webforum.nu/p/175980

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/175980-blogga-med-zend-framework-del-6-zend-controller-route
