URL dynamisch zusammenbauen (mod_rewrite an/aus)

Hier eine Klassenmethode aus meinem Framework, mit der man URLs ausgeben lassen kann, ohne zu wissen, ob mod_rewrite akzeptiert werden muss oder nicht.

Man übergibt einfach folgende Parameter:

  • $controller: Der Controllername (oft auch Modul genannt) der Ziel-URL
  • $action: Der Aktionsname der Ziel-URL
  • $additional_params: Weitere Parameter wie z.B. page=4 als array

Code

public static function getInternalURL($controller = null, $action = null, array $additional_params = array())
  {
    if($controller === null)
    {
      $url = FW_Config::getInstance()->get("www_root");
    }
    else
    {
      $mod_rewrite = (FW_Config::getInstance()->get("mod_rewrite") == "1") ? true : false;
      if($mod_rewrite)
      {
        $url = FW_Config::getInstance()->get("www_root")."/".$controller."/".(($action !== null) ? $action.".html" : "");
      }
      else
      {
        $url = FW_Config::getInstance()->get("www_root")."/?module=".$controller.(($action !== null) ? "&action=".$action : "");
      }

        if(count($additional_params) > 0)
        {
          if($mod_rewrite)
          {
            $url .= "?";
          }
          else
          {
            $url .= "&";
          }

          $counter = 1;
          foreach($additional_params as $params)
          {
            foreach($params as $paramname => $paramval)
            {
              if($counter != 1)
              {
                $url .= "&";
              }
              $url .= $paramname."=".$paramval;
            }
            $counter++;
          }
        }
      }
      return $url;
  }

Anwendungsbeispiel

echo FW_Tools::getInternalURL("index, "show_news", array(array("page" => 5)));
//gibt abhängig von meiner mod_rewrite-Einstellung in meiner config.ini das aus:
//mod_rewrite an: http://localhost/index/show_news.html?page=5
//mod_rewrite aus: http://localhost/?controller=index&action=show_news&page=5

Viel Spass damit!

Ähnliche Beiträge:
  1. Request Router / Request Resolver meines Frameworks
1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading ... Loading ...

Dieser Artikel wurde von Simon verfasst.
Gelesen: 942x heute: 2x

Dieser Artikel wurde am Samstag, Dezember 27th, 2008 um 16:25 in den Kategorien Codeschnipsel geschrieben. Du kannst die Kommentare über den Feed (RSS 2.0) beobachten. Du kannst eine Antwort hinterlassen, oder einen Trackback von deiner Seite setzen.


7 Kommentare zu “URL dynamisch zusammenbauen (mod_rewrite an/aus)”

  1. hmm pack doch einfach mal den aktuellen stand deines frameworks als download hierein ;-) vielleicht entwickelt es sich dann in verschiedene richtungen ;-)

  2. Jo, das mach ich… Muss nur noch ein bisschen aufräumen und kommentieren
    Heute Abend gibts dann hier die aktuelle Version zum Download, leider ohne Beispielprojekt. (Ich hätte da zwar eins, aber das soll eigentlich noch geheim bleiben :) )

    Simon

  3. veröffentlichst das ganze dann als open source?

  4. Nein, ich muss noch schauen, was für eine Lizenz ich verwende

    Die Hinweise auf den Autor müssen jedenfalls erhalten bleiben

  5. Konnte zwar noch nicht alles kommenteiren, aber hier ist mal die neueste Version
    http://www.net-developers.de/2008/12/27/aktuelle-version-des-mvc-frameworks-zum-download/

  6. Hy

    Keine schlechte Idee vorallem wenn man ein gröseres Projekt irgendwann mal auf Mod_rewrite umbeuane will.

    Würde es aber vieleicht noch erweitern, so das man mehr Möchlichkeiten hat.

    zb hätte ich meine URL lieber so gemacht.

    //mod_rewrite an: http://localhost/bereich/unterbereich/modul.html?page=5
    //mod_rewrite aus: http://localhost/?content=bereich/unterbreich&modul=news&page=5

  7. Hmm
    Das wäre allerdings schwererer in der Umsetzung.
    Mal schauen, ob das irgendwann mal ins FW mit eingebaut wird.

    Aber danke für den Vorschlag!

Hinterlasse einen Kommentar!

CommentLuv Enabled

Nein, mich gibt es nicht bei Twitter!

»Archiv

Easy-Profit.info
Angebote und Einkaufen klimaneutral -  bei kaufDA.de Browser-Statistiken
Dieser Blog ist gehostet bei ALL-INKL.COM - Webhosting Server Hosting Domain Provider