Kleine Applikation

Hier dreht sich alles um die auf der Webseite veröffentlichten Tutorials. // This forum is all about the APF tutorials.
Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: Kleine Applikation

Beitrag von dr.e. » 18.07.2010, 21:31:19

Hallo ByStones,

kannst du mal deinen Quellcode zippen und posten, ich verstehe nicht ganz, warum das nicht funktionieren sollte. Bin mir aber sicher, dass es nur eine Kleinigkeit sein kann.
Ich hab das mit dem FrontController gemacht, ändert das was ?
Der Front-Controller nutzt "auch nur" den Page-Controller für das Erzeugen der Seite. Das Verhalten diesbezüglich ist als bei beiden gleich. Siehe auch http://wiki.adventure-php-framework.org ... controller.
Nochmal so ne Anfängerfrage: Wo kommt die eigentliche Logik hin, doch nicht etwas in den DocumentController ?
Es kommt darauf an, welche Logik du meinst. Die Darstellungs-Logik ist gemäß dem MVC-Pattern Aufgabe des Controllers. D.h. der Document-Controller wird sich beispielsweise Inhale holen und diese im View verarbeiten. Ist ein Formular im Spiel, wird er sich um die Benutzer-Eingaben kümmern und diejenige Aktion ausführen, die bei erfolgreicher Eingabe passieren soll.
Wie kann ich Seiten machen, die selber keinen Inhalt haben, sondern nur Sachen verrechnen und dann entsprechend weiterleiten ?
Technisch gesehen schränkt dich das APF nicht ein, du kannst beliebige PHP-Logik in Controller, Actions und Tags einbauen. Interessant ist nur, was du berechnen und wohin du weiterleiten möchtest. Handelt es sich nur um die Anzeige eines anderen Views je Rechen-Ergebnis, so kann man das auch ohne HTTP-Weiterleitung nur durch Anzeige des korrekten Views über einen eigenen Tag oder eine Front-Controller-Action in Verbindung mit einem Tag erfolgen, das an Hand der Ergebnisse der Action entscheidet, welcher Inhalt eingebunden wird.
Viele Grüße,
Christian

Benutzeravatar
Data
Beiträge: 17
Registriert: 02.02.2010, 13:08:17

Re: Kleine Applikation

Beitrag von Data » 06.08.2010, 12:32:30

Hallo zusammen,
ich klinke mich hier einfach mal mit in die Angelegenheit ein, weil ich die Applikation auch mit nachvollziehen wollte und nun an selber Stelle ins Stocken gerate.
Ich habe in der Bootstrap-Datei ebenfalls das Url-Rewriting aktiviert und habe folgende .htaccess-Datei erstellt:

Code: Alles auswählen

# Aktivierung von mod_rewrite
RewriteEngine On

# Definition der RewriteRule. Alle Anfragen ausser den ausgenommenen
# Dateien werden auf die index.php weitergeleitet
RewriteRule !(index\.php|\.css|\.jpe?g|\.png|\.gif|\.ico)$ /index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
Mit dieser Einstellung funktioniert nicht einmal mehr die Startseite :? Ich muss dazu sagen, dass die index.php über http://localhost:8080/rewriting/ aufgerufen, also nicht im Root-Verzeichnis des VirtualHost liegt. Also habe ich die RewriteRule dahingehend geändert:

Code: Alles auswählen

RewriteRule !(index\.php|\.css|\.jpe?g|\.png|\.gif|\.ico)$ /rewriting/index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
So funktioniert zumindest die Startseite. Rufe ich jetzt jedoch sowas wie http://localhost:8080/rewriting/seite/blubb auf, sollte eigentlich das Template blubb.html statt home.html eingebunden werden. Ist jedoch nicht der Fall.
Ich habe die Dateien nochmal zusammengepackt aber eigentlich ist an meinen Einstellungen nicht viel anders ;)
Zur Info: das Root-Verzeichnis des ZIP-Archivs entspricht dem Root meines VirtualHost, der DocumentRoot ist der Unterordner /sites

Gruss
Marc
Dateianhänge
rewriting.zip
Testprojekt
(2.37 KiB) 83-mal heruntergeladen

Benutzeravatar
dr.e.
Administrator
Beiträge: 4555
Registriert: 04.11.2007, 16:13:53

Re: Kleine Applikation

Beitrag von dr.e. » 06.08.2010, 15:08:13

Hallo Marc,

da das Rewriting des APF - der entsprechende InputFilter - davon ausgeht, dass die URL mit dem ersten Slash startet, musst du deine RewriteRule anpassen oder einen eigenen VHOST lokal anlegen. Aktuell mappst du mit

Code: Alles auswählen

/rewriting/index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
alles in den Parameter query. Hinterher steht da also

Code: Alles auswählen

/rewriting/seite/blubb
drin uns nicht

Code: Alles auswählen

/seite/blubb
Sofern du das mit einer RewriteRule nicht erreichen kannst, lege für dein Projekt einfach einen neuen VHOST an und schreibe die Rule auf

Code: Alles auswählen

/index.php?query=%{REQUEST_URI}&%{QUERY_STRING} [NC,L]
um.

Hoffe, das hilft dir.
Viele Grüße,
Christian

Benutzeravatar
Data
Beiträge: 17
Registriert: 02.02.2010, 13:08:17

Re: Kleine Applikation

Beitrag von Data » 06.08.2010, 16:49:29

Hallo Christian,
danke erstmal für deine Antwort. Mit dieser "Maßnahme" funktioniert es selbstverständlich. Ich hatte allerdings gehofft dass ich durch eine

Code: Alles auswählen

RewriteBase /rewriting
in der .htaccess-Datei oder so ähnlich das Problem umgehen könnte. Allerdings ohne Erfolg. Aber gut dann lege ich mir eben einen VirtualHost für meine URLRewriting-Projekte an und dann geht das schon. Danke trotzdem ;)

Gruss
Marc

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast