| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | ||
| Moderator Registriert seit: 18.07.2005
Beiträge: 4.071
![]() ![]() | Hi, interessantes Thema. Ich streu hier einfach mal meinen aktuellen Ansatz rein. Meine .htaccess - Datei für ein Testprojekt sieht aktuell so aus: Code: RewriteEngine on RewriteBase /admin/PHPFrog2/ RewriteRule ^(([a-z0-9_\-\/]+\/)?[a-z0-9_\-]+)\/?$ template.php?href=$1 RewriteRule ^(([a-z0-9_\-\/]+\/)?[a-z0-9_\-]+)\/index([0-9]+)\.html$ template.php?href=$1&p=$2 Code: /ordner/ordner2/foo/bar/ Der Pfad wird also erstmal auseinander genommen und dann wird rekursiv nach einem entsprechenden Datenbankeintrag gesucht, der mir dann wiederum sagt, welche Datei eingebunden wird. Die Funktion zerlegt den Pfad natürlich anhand der / in Einzelteile und schaut sich dann von hinten nach vorne jedes Element an, ob es in der Datenbank vorkommt. Begonnen wird also, die Beispieladresse oben mal angenommen, mit bar. Kommt es zu einer Übereinstimmung, ist aber noch nicht gesagt, dass es sich dabei nicht um einen Parameter handeln kann, denn alle weiteren Elemente (ordner, ordner2 und bar) müssten dann jeweils ein Elternteil des nachfolgenden Elements sein. Sollte also bar kein Parameter sein, müsste es ein Kind von foo sein, welches ein Kind von ordner2 sein müsste und dieses Element müsste wiederum ein Kind von ordner sein. Befinden sich in der Datenbank also nur 3 Einträge wie: Code: id | href | parentID | file 1 | ordner | 0 | seite1 2 | ordner2 | 1 | seite2 3 | foo | 0 | foo Diese Parameter sind dann gleichzeitig Parametername(-schlüssel) und Wert in einem. Es wird also die Datei seite2.php ausgewählt und eingebunden, da ordner2 in der Datenbank auftaucht und ordner als Elternteil hat. --------------------------------------------------------------------------------------------- Die von Dr. E. verlinkten Informationen zum URL-Schema finde ich auch sehr interessant. Die Form meiner URLs könnte ich wohl noch an die Form Code: /{key1}/{value1}/{key2}/{value2}/
Was passiert z.B., wenn ein Schlüssel fehlt? Code: /{key1}/{value1}/{value2}/
Zitat:
__________________ HalloPHP | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Also ich schreibe einfach immer fast alles auf die index.php um und erledige den Kram in PHP, da ist man flexibler und hat nicht etliche rules die sich unter umständen irgendwann in die queere kommen (vor allem hässlich zu testen/debuggen) RewriteRule !(robots.txt|favicon.ico)$ index.php in PHP komm ich dann via $_SERVER an den kompletten Pfad und kann damit machen was ich will.
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| Moderator Registriert seit: 18.07.2005
Beiträge: 4.071
![]() ![]() | Ah, danke, hilft mir weiter! Jetzt erscheint es mir plötzlich gar nicht mehr sinnvoll, überhaupt auf ein bestimmtes URL-Schema innerhalb der .htaccess zu prüfen. Das kann ich ja alles in PHP erledigen.
__________________ HalloPHP |
| | |
| | |
| Moderator und Wett-König | ... meine Rede im Post #2!
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |
| Moderator und Wett-König | Das kann man so machen. Allerdings hast du üblicherweise bei einem Modul nur eine (Front-Controller-)Aktion zu einer Zeit. Das URL-Layout (egal ob nun Trennung per "/" (Rewrite-URL) oder per "&" (Normale URL)) muss daher die Möglichkeit bieten, mehrere Actions mit beliebiger Anzahl von Parametern zu "codieren". Sofern es um eine konkrete Applikation geht, sollte das Konzept auch die Möglichkeit bieten ein "eigenes" URL-Layout einzusetzen, das explizit auf den Anwendungsfall zugeschnitten ist. Hier ist insbesondere das Thema SEO aktuell. Hierzu sollen vor allem die Keywords einer Applikation in der URL erscheinen, weniger explizite Steuer-Paremeter wie Sprache oder ID der Seite. Hierzu empfiehlt sich dann, das URL-Layout mit einer generischen Front-Controller-Action in die Infortmationen der Applikation zu übersetzen und eine zentrale Komponente zur Generierung der URL vorzusehen, die dieses Schema "kennt". Hierzu hatten wir aber schon zahlreiche Diskussionen im Software-Design-Forum. Z.B. hier (URL-Design für PAC-Ansatz) oder hier (Front-Controller und MVC Verständnisprobleme).
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP Default charset für Funktionen | MasterQ | PHP-Fortgeschrittene | 6 | 06.01.2011 10:03 |
| COM Exception "Typkonflikt" bei array parameter by reference | k_m_becker | PHP-Fortgeschrittene | 6 | 11.11.2010 20:14 |
| Controller Hierarchie | Dark Guardian | Software-Design | 18 | 27.10.2009 13:22 |
| [Erledigt] Warning: mysql_result() expects parameter 1 to be resource, boolean given | FloRic | Datenbanken | 8 | 19.10.2009 20:15 |
| Mehrere Controller auf einer Seite | fat32 | Software-Design | 6 | 27.07.2009 16:55 |
| parameter von interfaces in klassen richtig mit anwenden? | litterauspirna | PHP Tipps 2009 | 27 | 30.06.2009 20:58 |
| [Erledigt] Parameter in JavaScript übergeben | stefanus | JavaScript, Ajax und mehr | 3 | 24.09.2008 22:51 |
| Templatesystem mit Funktionen und Variablen drin? | BartTheDevil89 | PHP Tipps 2008 | 6 | 01.07.2008 09:32 |
| Klassen und externe Funktionen ? | ssm | PHP-Fortgeschrittene | 17 | 18.07.2007 11:59 |
| Funktionen überprüfen und Grafik Funktionen | hans.karl2 | PHP Tipps 2006 | 10 | 31.07.2006 20:08 |
| Parameter überschreiben | Igäl | PHP Tipps 2006 | 8 | 04.06.2006 19:55 |
| Variable als optionalen Parameter? | Mex | PHP Tipps 2006 | 3 | 20.04.2006 07:05 |
| Globale Variabeln in Funktionen | finerip | PHP Tipps 2007 | 3 | 28.11.2005 16:00 |
| einen parameter verstecken | seven-12 | PHP Tipps 2005-2 | 8 | 27.07.2005 16:57 |
| Eure Ideen sind gefragt: eigene Funktionen verwalten | PHP-Fortgeschrittene | 12 | 17.01.2005 15:00 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php mehrere controller auf index seite, php controller url überprüfen, controller funktionen |