Hallo,
ich bastle mir gerade ein kleines Web-Framework. Oberstes Prinzip soll "Konvention über Konfiguration" sein.
ein kleines Beispiel:
http://example.com/modulename/action/optionalvalue
in htaccess:
RewriteRule ^([^/.]+)/([^/.]+)/$ /main-controller.php?module=$1&action=$2
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)$ /main-controller.php?module=$1&action=$2&value=$3
Modulename ist also das Modul (ein Verzeichnis mit etnsprechender Klassenlogik), action ist der entsprechende Kontroller (z.b. edit oder update).
nochmals drei Linkbeispiele
http://example.com/bildergalerie/show/1224
=> lädt Bildergalerie 1224 via Http-Methode GET
http://example.com/bildergalerie/update/22
=> macht ein Update via POST auf Galerie 22
http://example.com/bildergalerie/showall
=> lädt alle Bildergalerien
Ich denke, man kann sich das soweit vorstellen. ist ja jetzt nichts neues.
Mein Problem ist ein bisschen das Routing. Ich möchte nämlich die Möglichkeit schaffen, Sub-Module zu integrieren. Physikalisch sind das ganz simpel nur Unterverzeichnisse, um eine bessere Organisationsstruktur zu haben.
http://example.com/bildergalerie/thumbnailgalerie/update/22
=> macht ein Update via POST auf Thumbnail-Galerie 22
http://example.com/bildergalerie/thumbnailgalerie/showall
=> lädt alle Thumbnailgalerien
Problem:
in der htaccess-Datei kann ich nun schlecht matchen, was was genau ist...
Folgende Links zum Beispiel werden vom selben Pattern gematched:
bildergalerie/thumbnailgalerie/showall
bildergalerie/update/1224
^([^/.]+)/([^/.]+)/([^/.]+)$
Lösung:
muss ich nach einer Zahl (ID) matchen? Oder wie macht man das am besten? Was ist, wenn Value keine Zahl ist, sondern ein String?
Fragen über Fragen... wie also macht man sinnvolles Routing, ohne Konfiguration?