Zend Framework Tutorial Teil 4:
Zend_Controller, Zend_View und Zend_Tool
ACHTUNG:
Dieses Tutorial wird nicht mehr weitergeführt, da es auf ältere Versionen des Zend Frameworks aufbaut. Das neue Projekt ist hier:
Zend Framework Tutorial - Wir bauen ein Content Management System (CMS)
Im dritten Teil meines Zend Framework Tutorials habe ich kurz das Model-View-Controller Konzept erläutert. Nach einer Einführung in die Zend_Controller Komponente haben wir den IndexController erstellt. Wenn du die ersten vier Teile noch nicht gelesen hast, hole dies bitte schnell nach.
In diesem vierten Teil des Tutorials werden wir einige Aktions-Methoden anlegen und uns den Einsatz von Zend_Tool anschauen und damit arbeiten. Nach einer kurzen Einführung in Zend_View werden wir die Templates für die erstellten Aktionsmethoden für die Ausgabe erstellen. Dabei werden wir auch die grundlegende Interaktion zwischen Controller und View kennen lernen.
Wenn du über neue Tutorial Teile informiert werden möchtest, abonniere am besten den Feed dieses Blogs. Dann verpasst du garantiert keinen Teil des Tutorials. Es gibt auch Übersicht mit den bisher erschienen Teilen des Tutorials.
Inhaltsverzeichnis
- Benötigte Controller und Aktionen ermitteln
- Weitere Controller Dateien
- ArticleController
- Zend_Tool im Einsatz
- Download
- Zusammenfassung
- Changelog
- Navigation
- Kommentare
Benötigte Controller und Aktionen ermitteln
Es stellt sich zunächst mal die Frage, welche Controller und welche dazugehörigen Aktionen wir denn für unser TravelloBlog überhaupt benötigen. Um nicht blind in der Gegend herum zu raten, ziehen wir an dieser Stelle die Liste mit den Anforderungen aus dem ersten Teil des Tutorials zu Rate.
Im ersten Schritt gehen wir jede der Anforderungen durch und notieren uns die benötigten Entitäten. Dabei kommt diese Liste heraus (in Klammern die jeweilige Nummer aus unserer Anforderungsliste = Entität):
- Beitrag (1, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14)
- Benutzer (1, 2, 11)
- Kommentar (3, 11)
- Kategorie (4, 7)
- Tag (4, 7)
- Suchindex (13)
Wir sehen also, dass die Entität "Beitrag" der Kern unserer Bloganwendung werden wird, was dich nicht überraschen sollte. Am zweitwichtigsten scheint danach die Entität "Benutzer" zu sein. Wir benötigen somit fürs Erste insgesamt sechs Controller.
Im zweiten Schritt analysieren wir nun, welche Aktionen für die einzelnen Controller benötigt werden. Dies gestaltet sich ein wenig schwieriger, da nicht jede Aktion sofort ersichtlich ist.
In der folgenden Tabelle habe ich in der ersten Spalte die Controller und in der zweiten Spalte die entsprechenden Aktionen notiert (in Klammern steht wieder bei jeder Aktion die Nummer der Anforderung).
| Controller | Aktionen |
|---|---|
| Beitrag | anlegen (1), ändern (1), löschen (1), anzeigen (3), listen auf Startseite (6), listen nach Kategorie (7), listen nach Tag (7), listen nach Monat (7), Trackback verarbeiten (8), Pingback versenden (8), listen für Newsfeed (9), anzeigen als PDF (12), listen für Suche (13), zeige Bücher von Amazon (14), zeige Fotos von Flickr (14) |
| Benutzer | registrieren (1), ändern (1), einloggen (1*), ausloggen (1*), authentifizieren (1*), anzeigen (2) |
| Kommentar | schreiben (3), benachrichtigen (11) |
| Kategorie | anlegen (4*), ändern (4*), löschen (4*) |
| Tag | anlegen (4*), ändern (4*), löschen (4*) |
| Suchindex | anlegen (13*), ändern (13*), löschen (13*), durchsuchen (13*) |
Die mit (1*) markierten Aktionen werden zwar nicht explizit in den Anforderungen genannt. Ich denke aber, dass man davon ausgehen kann, dass diese Aktionen für das Handling eines Benutzer wichtig sein werden.
Zu (4*) ist zu sagen, dass diese Aktionen auch nur indirekt zu erkennen sind. Wenn ein Beitrag einer Kategorie und/oder einem Tag zugeordnet werden können soll, müssen Kategorien und Tags natürlich auch angelegt, geändert und gelöscht werden können.
Bei (13*) gilt ähnliches. Auch diese Aktionen resultieren indirekt aus der entsprechenden Anforderung. Ohne eine vorhandenen Index kann selbiger auch nicht durchsucht werden.
Nach dieser ersten Analyse haben wir nun einen ersten Überblick, welche Controller und welche Aktionen wir benötigen werden.
Weitere Controller Dateien
Nach der theoretischen Einführung in das MVC-Konzept und der Ermittlung aller benötigten Controller und Aktionen gibt es nun endlich Butter bei die Fische. Mit Hilfe der Zend_Controller Komponente hatten wir ja unsere erste Controller Klasse bereits geschrieben, den IndexController.
Du erinnerst dich: Die Controller Klasse muss mit dem Namen des Controllers starten und auf "Controller" enden, wobei der Name mit einem Großbuchstaben beginnen muss. Für unser TravelloBlog würde dies folgende Controller Namen ergeben:
- IndexController
- ArticleController
- UserController
- CommentController
- CategoryController
- TagController
- SearchController
Den IndexController wurde ja schon beim Erstellen des Projekts automatisch angelegt, im nächsten Schritt definieren wir nun unseren ArticleController mit allen notwendigen Methoden.
ArticleController
Wir erstellen im Verzeichnis "/travelloblog/application/controllers" eine Datei mit Namen ArticleController.php und folgendem Code:
-
<?php
-
-
class ArticleController extends Zend_Controller_Action
-
{
-
function indexAction()
-
{
-
-
}
-
}
-
-
?>
Was wird passieren, wenn du jetzt "http://localhost/travelloblog/public/" aufrufst? Du bekommst unsere Startseite. Wie kommen wir nun an die Article(-Seite) ran? Ganz einfach: Du musst die Seite mit Angabe des Controllernamens aufrufen, also: "http://localhost/travelloblog/public/article".
Probier es aus und schau, was passiert.
Du hast es vielleicht schon geahnt - es gibt eine Fehlermeldung:
article/index.phtml' not found in path (..\application\views\scripts\)
Das Problem: Wir brauchen eine Datei index.phtml im Verzeichnis "/article/".
Also lege bitte das Verzeichnis "views/scripts/article" an und erstelle dort eine Datei index.phtml mit dem Inhalt:
Und wenn du jetzt "http://localhost/travelloblog/public/article" in deinem Browser aufrufst, siehst du "Artikel Index-Seite".
Soweit so gut. Wenn du dir oben nochmals die gewünschten Aktionen anschaust, dann siehst du, dass wir mit den Artikeln ja einiges machen wollen, uA:
Einen Artikel anzeigen, einen neuen Artikel anlegen und einen bestehenden Artikel ändern oder löschen.
Alles Aktionen, die einen Artikel betreffen, also müssen wir den Article-Controller (ArticleController.php) um diese Aktionen (Methoden = Funktionen) erweitern. Von diesen Aktionen legen wir jetzt nur noch die showAction an:
-
<?php
-
-
class ArticleController extends Zend_Controller_Action
-
{
-
//--Default-Aktion
-
public function indexAction()
-
{
-
}
-
-
//-- Artikel anzeigen
-
public function showAction()
-
{
-
}
-
-
}
-
-
?>
Wenn du jetzt einen Artikel anzeigen möchtest, musst du "http://localhost/travelloblog/public/article/show" aufrufen. Dir ist ja inzwischen klar, dass das wieder eine Fehlermeldung geben würde, da wir ja noch kein View-Skript mit dem Namen Show angelegt haben (wenn du es nicht glaubst, probier es einfach mal aus
).
Also erstelle bitte im Verzeichnis "/view/scripts/article" eine Datei show.phtml und schreibe dort rein:
Wenn du jetzt "http://localhost/travelloblog/public/article/show" aufrust, bekommst du die Show-Seite angezeigt.
Das Prinzip ist dir inzwischen klar?
Wir haben eine bestimmte Aufgabe bzw. einen Aufgabenbereich. Um die Verwaltung der Aufgaben kümmert sich der Controller. Also legen wir im Verzeichnis controllers einen Controller an. Dieser Controller heißt so, wie unsere Aufgabe. In unserem Fall ist der erste Aufgabenbereich erstmal alles, was mit der Verwaltung von Artikeln zu tun hat. Also nennen wir unseren Controller ArticleController.
In diesem Controller werden nun die gewünschten Aufgaben als Aktionen eingetragen. Aktionen sind Methoden mit Namen ...Action(). Eine Methode ist nichts anderes als eine Funktion. Funktionen werden bei Klassen jedoch Methoden genannt - also lass dich nicht verwirren.
Eine Methode sollte/muss immer eine indexAction() sein. Das hat den Vorteil, dass eine Defaultaufgabe übernommen wird, wenn der Controller ohne weitere Angaben aufgerufen wird. Du kennst das Prinzip ja schon von vom default-Eintrag bei einer switch-Anweisung. Ich hatte das ja schon im letzten (3.) Teil unseres Tutorials genauer erläutert. Zur Auffrischung lies dir das Routing nochmals durch.
Um die jeweiligen Aktion aufrufen und optisch darstellen zu können brauchen wir ein Skript. Dieses liegt in einem Unterverzeichnis im Pfad "/views/scripts/". Das Unterverzeichnis heißt immer so, wie der jeweilige Controller, also z.B. index. article, user, error usw.
In dem entsprechenden Unterverzeichnis müssen wir dann das Skript erstellen. Der Name des Skripts ist identisch mit dem der jeweiligen Methode, also index, show, create usw. Die Endung ist immer .phtml.
Du siehst, es ist alles sehr logisch aufgebaut und, wenn man mal das Prinzip des Aufbaus verstanden hat, ist es doch wirklich einfach, oder?
Hier das Ganze noch mal zum anschauen
/application
/controllers
IndexController.php
public function indexAction()
ArticleController.php
public function indexAction()
public function showAction()
public function createAction()
public function changeAction()
public function deleteAction()
/views
/scripts
/index
index.phtml
/article
index.phtml
show.phtml
create.phtml
change.phtml
delete.phtml
Zend_Tool im Einsatz
Erste Berührungen mit Zend_Tool hatten wir ja schon beim Erstellen unseres TravelloBlog Projektes. Wir wollen es uns nun etwas genauer anschauen und auch zum Einsatz bringen. Leute, es ist ne feine Sache und spart wirklich einen Haufen Tipperei.
Es schadet auch nichts, sich das im Handbuch (nochmals) durchzulesen.
Wenn du dir oben nochmals die gewünschten Aktionen anschaust, dann siehst du, dass wir ja noch einiges machen müssen. Du kannst die ganzen Controller, Aktionen und Skripte natürlich per Hand anlegen - wie das geht, weisst du ja jetzt - schneller und komfortabler ist es jedoch mit Zend_Tool.
Gehe jetzt erstmal auf Kommandozeilen-Ebene (unter Windows: Start->Ausführen->cmd). Dort angekommen gehe bitte in das Verzeichnis "travelloblog", also cd \xampp\htdocs\travelloblog oder \programme\zend\apache2\htdocs\travelloblog oder wo immer dein TravelloBlog-Projekt liegen mag.
Wenn du jetzt zf aufrufst bekommst du eine Fehlermeldung:
An Error Has Occured
An action and provider is required
Im Anschluss daran bekommst du (als Hilfe) jedoch auch eine Anwendungshilfe, bei der alle möglichen Eingabemöglichkeiten aufgelistet werden.
So, was müssen wir jetzt tun? Zunächst einmal die weiteren Controller anlegen. Index- und ArticleController haben wir ja bereits, also kümmern wir uns als nächstes um den UserController.
Schauen wir uns die Anwendungshilfe an um herauszufinden, wie das geht:
Controller zf create controller name index-action-included[=1] module
Das index-action-included[=1] module interessiert uns zunächst mal nicht. Das brauchen wir erst viel später, wenn wir uns mit Modulen beschäftigen.
Also bleibt zf create controller name übrig.
Gut, dann gib bei dir bitte ein:
zf create controller user
Es dauert einen kurzen Moment und dann erscheinen folgende Meldungen:
Creating a controller at ... Creating an index action method in controller user Creating a view script for the index action method at ... Creating a controller test file at ... Updating project profile ...
Die Pfade habe ich jeweils durch ... ersetzt.
Was ist also passiert?
- ein Controller mit Namer User wurde angelegt (UserController.php)
- dort wurde die indexAction Methode reingeschrieben (public function indexAction())
- das Verzeichnis "user" wurde bei den view Skripten angelegt (/views/scripts/user)
- ein index Skript wurde im user Verzeichnis angelegt (index.phtml)
(den Rest lass ich jetzt mal weg, interessiert uns momentan nicht)
Glaubst du nicht? Dann schau nach.
Hausaufgabe: Lege die anderen Controller in gleicher Weise an.
HINWEIS:
Am Besten ist es, wenn du - wie im Teil 2 beschrieben - den Pfad zu den zf Dateien gesetzt hast. Damit beugst du eventuellen Problemen vor und musst nicht immer den kompletten Pfad zu zf.bat mit angeben.
Wir sind jedoch noch nicht ganz fertig.
Du erinnerst dich, dass wir beim ActionController nur die Action-Methoden index und show angelegt haben? Es fehlen noch create, change, delete.
Die legen wir jetzt an - und ebenfalls mit Hilfe von Zend_Tool.
Schau dir nochmals bei der Eingabehilfe an, wie das funktioniert.
Es ist ähnlich wie beim Anlegen eines Controllers:
Erstelle | eine Aktions-Methode (action) | mit Namen create | im Controller article
Also gib bitte bei dir ein:
zf create action create article
Ratter, ratter, ratter und dann:
Creating an action named create inside controller at ... Updating project profile ... Creating a view script for the create action method at ... Updating project profile ...
Schau nach und du wirst feststellen:
- die Aktions-Methode createAction wurde im ActionController angelegt
- die Datei create.phtml wurde im Verzeichnis "/views/scripts/article/" hinzugefügt
Als Hausaufgabe legst du jetzt noch auf gleiche Weise die beiden fehlenden Aktions-Methoden change und delete an.
Download
Der aktuelle Stand des Tutorials nach diesem vierten Teil kann auch herunter geladen werden.
So lange das Tutorial noch nicht komplett auf die Version ab 1.8 umgeschrieben ist, werden die Sourcen für beide Versionen angeboten:
- Source Zend Framework Tutorial - Teil 4 - ZF ab v1.8
- Source Zend Framework Tutorial - Teil 4 - ZF bis v1.7.8
Die Zip Datei enthält nicht die Bibliotheken (libraries) der aktuellen Version des Zend Frameworks. Die musst du bitte selber in das entsprechende Verzeichnis kopieren.
Zusammenfassung
In diesem Teil meines Zend Framework Tutorials haben wir die benötigten Controller und Aktionen anhand unserer Anforderungsliste ermittelt. Wir haben den ArticleController erstellt, Aktionsmethoden angelegt, die grundlegende Interaktion zwischen Controller und View kennengelernt und die Anwendung von Zend_Tool gelernt.
In nächsten Teil des Tutorials werden wir uns um die View und Layout Komponenten unseres Projektes kümmern. Nach einer kurzen Einführung in Zend_View werden wir die Templates für die erstellten Aktionsmethoden für die Ausgabe erstellen sowie einige Hilfsmethoden für die Ausgabe kennen lernen. Das alles wird dann noch mit Zend_Layout verfeinert.
Fragen, Probleme und Anregungen bitte nicht per E-Mail senden, sondern hier in die Kommentare stellen. Dann haben alle etwas davon.
Changelog
- 11.10.2009 - Anpassung an Version 1.8 und höher
- 11.10.2009 - Einsatz von Zend_Tool hinzugefügt
- 09.11.2009 - Hinweis zur Pfadangabe zum Zend_Tool hinzugefügt
Navigation
- Zend Framework Tutorial Übersicht
- Zurück zu Teil 3: MVC Design Pattern und Zend_Controller
- Weiter zu Teil 5: Ansichtssache: Zend_View und Zend_Layout

Dienstag, 26. Mai 2009 14:24
Hallo,
ich habe Probleme wegen /article. Wenn ich http:// …/article aufrufe, bekomme ich folgender Fehlermeldung: NOT FOUND requested URL/article was not found on this Server. IndexController klappt aber. Ich arbeite mit Ubuntu und habe die aktuellste Zend Framework runtergeladen. Was mache ich falsch?
Vielleich muss ich noch irgendwie in bootstrap.php den Controllenammen “article” bekanntgeben. Auf eine schenelle Antwort freue ich mich.
Dankeschön
Canser
Samstag, 30. Mai 2009 19:38
Auch hier das Gleiche: Ab Version 1.8 wurde der Bootstarp geändert, das Tutorial ist aber noh nicht angepasst. Daher treten kurzfristig (noch) Probleme auf.
Mittwoch, 10. Juni 2009 10:47
Weiter mit meinen Erfahrungen zu 1.8.2:
Den ArticleController erstellt man mit dem Zend_Tool, das man diesmal nicht im dir htdocs aufruft, sondern im Projektverzeichnis:
zf create controller article
Dieser Befehl legt automatisch die ArticleController.php und die zugehörige View. an. Deshalb tritt der Fehler auch nicht auf.
Zum anlegen der Aktionen ruft man nacheinander wieder Zend_Tool auf:
zf create action show article
zf create action create article
zf create action change article
zf create action delete article
Dadurch werden die Actions im Controller UND die Views angelegt. Mehr ist also nicht zu tun.
Mittwoch, 7. Oktober 2009 14:41
Wenn ich die Seite (Siehe URL) aufrufe,
bekomme ich einen Fehler, der mir sagt. er findet den travelloblog controller nicht!
Es ist wie wenn den zeiten Parameter nach Host bereits als Controller-Name genommen wird.
Wo könnte es falsch sein? Version 1.9.3PL1
URL:http://localhost/travelloblog/public/article/show.phtml
An error occurred
Page not found
Exception information:
Message: Invalid controller specified (travelloblog)
Stack trace:
#0 C:\xampp\htdocs\travelloblog\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 C:\xampp\htdocs\travelloblog\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch()
#2 C:\xampp\htdocs\travelloblog\library\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run()
#3 C:\xampp\htdocs\travelloblog\application\run_app.php(26): Zend_Application->run()
#4 C:\xampp\htdocs\travelloblog\public\index.php(3): require(‘C:\xampp\htdocs…’)
#5 {main}
Request Parameters:
array(4) {
["controller"]=>
string(12) “travelloblog”
["action"]=>
string(6) “public”
["article"]=>
string(4) “show”
["module"]=>
string(7) “default”
}
Mittwoch, 7. Oktober 2009 14:56
Nun habe ich den virtual host Eintrag entfernt und es funktioniert wieder!
Ich dachte, ich könnte weiterhin den normalen URL eingeben! offenbar ist es nicht möglich.
Ich bin unsicher! Soll ich ein anderes Tutorial nehmen, oder soll ich warten, bis das Tutorial fertig revidiert ist?
Bis zum nächsten Probleme
Mittwoch, 14. Oktober 2009 14:35
Hints zur Zend ver. 1.9.3:
“zf create controller article” ging bei mir nicht, musste dazu in \projektname\application\configs\application.ini
und habe dort den folgenden “include path” entfernt (workaround auch zu finden unter google, der include path kommt wohl irgendwo doppelt vor):
includePaths.library = APPLICATION_PATH “/../library”
Application.ini sieht dann so aus:
====
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
bootstrap.path = APPLICATION_PATH “/Bootstrap.php”
bootstrap.class = “Bootstrap”
resources.frontController.controllerDirectory = APPLICATION_PATH “/controllers”
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
===
Weiterhin:
Der Befehl “zf create action show article” geht bei mir nicht, sofern ich den Controller und die View zuvor “von Hand” anlege. Hab dann zunächst den alten articleController mitsamt View gelöscht und anschließend den article controller über die console erstellt (wie weiter unten beschrieben), dann ging auch “zf create show article” => entsprechend einfach das “händisch-erstellte” löschen und über cmd arbeiten
Samstag, 24. Oktober 2009 16:04
@Stephan ich hatte das gleiche Problem, man kann anscheinend nur Actions mit dem ZF Tool erstellen wenn man auch die dazugehörige Klasse mit ZF Tool erstellt hat.
Donnerstag, 29. Oktober 2009 19:13
Hallo,
ich kann überhaupt nichts über CMD machen -.- sprich bei mir findet er den Befehl “zf” gar nicht.
[...]
Der Befehl “zf” ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Ich bin definitiv im Pfad:
C:\xammp\htdocs\travelloblog
Aber nichts tut sich -.-
Hat jemand eine Ursache für das Problem?
Danke Gruß Schorschi
Samstag, 31. Oktober 2009 20:04
Schorschi, kontrollieren zunächst einaml, ob die zf.* Dateien in c:\xampp\php sind.
Wenn ja, ok, wenn nein, kopiere sie dorthin.
Dann probier mal zf aufzurufen, indem du den Pfad zu zf angibst, denn offensichlich ist bei dir der Pfad zu dem Verzeichnis nicht gesetzt:
c:\xampp\php\zf create …
Montag, 2. November 2009 15:19
Hallo Uwe,
danke für die Antwort aber es funktioniert noch immer nicht so richtig.
Also ich habe die drei Dateien (zf.bat, zf.sh und zf.php) in dem Verzeichnis c:\xampp\php\
Wenn ich jetzt über cmd auf “cd c:\xampp\php” gehe und dann den Befehl eingebe kommt erst einmal diese Fehlermeldung: “Die Anwendung konnte nicht gestartet werden, weil iconv.dll nicht gefunden wurde. Neuinstallation der Anwendung könnte das Problem beheben.” Aber immerhin kommt im Hintergrund sprich im cmd Feld ein langer *******ZF Error******* und davor noch ein PHP Error. Ich weiß einfach nicht was da los ist. In der ZF Error wird irgendwas von ZEND_TOOL_INCLUDE_PATH erwähnt, weiß aber nicht so richtig damit etwas anzufangen.
Mein ZF Projekt liegt unter: c:\htdocs\travelloblog völlig normal. Wenn ich jetzt über cmd auf das Verzeichnis gehe und “zf” eingebe kommt: “Der Befehl “zf” ist entweder falsch geschrieben oder konnte nicht gefunden werden.”
Vielen Dank Gruß,
Schorschi
Donnerstag, 5. November 2009 19:59
Hi,
sooo ich habe nun den Apache Server komplett neu aufgespielt und auch das Framework noch einmal neu “installiert”. Jetzt funktioniert auch alles bestens. Sprich ich kann die zf.* Dateien in den Ordner /php/ packen und kann dann über CMD die “zf” funktion gebrauchen.
NUR hier im Tutorial wird beschrieben, dass man nun “cd c:\xampp\htdocs\travelloblog” eingeben soll und dann dort “zf create controller name”. Aber da sagt er mir, dass es den Befehl zf nicht gibt. Eigentlich logisch, da in dem Ordner unter htdocs auch keine zf.bat etc. liegt!
Wenn ich jetzt im den cd c:\xampp\php Pfad “zf create controller name” eingebe macht er schon das richtige nur logischerweise weiß er nicht, wo bzw. in welchem Projekt er den Controller anlegen soll.
“An Error Has Occurred
A project profile was not found.”
Wie kann ich das Problem lösen?
Danke Gruß,
Schorschi
Sonntag, 8. November 2009 18:26
Diese Meldung war wohl ein Bug von Zend_Tool und hab ich auh eine zeitlang gehabt. Seit der Installation von 1.9.5 gibt es bei mir damit aber keine Probleme mehr.
Wenn Zend_Tool bei dir – warum auch immer – momentan nicht funktioniert, leg halt die Verzeichnisse und Dateien per Hand an. Ist ja auch kein Problem
Sonntag, 8. November 2009 21:37
Aber so ist es doch 10000 mal leichter. Und wenn ich in Zukunft mit dem Zend Framework meine Projekte bauen möchte, dann will ich nicht immer per Hand die Controller etc. anlegen!
Ich hoffe mir kann jemand im Zend Forum helfen -.-
Aber ich habe das doch richtig verstanden ne? Ich muss in das Projekt Verzeichnis gehen (cd ..) und nicht in das xampp/php Verzeichnis.. obwohl im Projekt Verzeichnis gar keine zf.bat etc. liegt??!!
Dienstag, 15. Dezember 2009 17:46
Hi,
ich bekomme beim Versuch:
zf.sh create action anlegen artikel
diesen Fehler:
Fatal error: Call to undefined function token_get_all()
Das Ganze läuft auf OpenSuse mit PHP 5.2.11 und Zend 1.9.
create controller artikel klappt auch ohne Probleme.
Vielleicht weiß je jemand von euch eine Lösung.
Gruß
Dienstag, 15. Dezember 2009 17:48
Achja…
nächstes problem… ich komme zwar auf die /public/ aber auf keinen sonstigen Controller wie zb /public/atrikel/
Dienstag, 19. Januar 2010 20:33
Es kommt zu einer Fehlermeldung, wenn wie in deinem Beispiel angeben, die Seite AricleController.php am Ende ?> enthält. Wenn ich mich richtig erinnere, habe ich irgendwo gelesen, dass eine php-Datei, die das zend framework verwendet, nicht mit ?> enden darf. Korrigert mich bitte, wenn das nicht prinzipiell der Fall ist.
Gruß
Jochen
Montag, 19. Juli 2010 11:44
Fetzt… das geht.
Ist ja echt grandios was das Framework alles kann.
Danke dass du dieses Tutorial erstellt hast, das hilft echt bei der Einarbeitung.
Mach bitte weiter so.
Freitag, 24. September 2010 13:03
Hallo!
Erstmal DANKE, dieses Tutorial verdient seinen Namen wirklich!
Mir ist folgendes aufgefallen:
Nachdem ich den ArticleController ohne Zuhilfenahme des zf-tools erstellt hatte, war
die Erstellung der Methoden mittels
“zf create action create article” nicht möglich.
Nach dem händischer Eintrag des ArticleControllers in “.zfproject.xml” war
das Problem gelöst.
Gruß Uwe
Montag, 13. Dezember 2010 6:53
Hi, super tutorial. Danke.
Hast du sehr gut hinbekommen. Ich lese momentan das Buch “Zend Framework” von Ralf Eggert.
Ich muss ganz ehrlich sagen, nach 100 Seiten habe ich das Buch in die Ecke geschmießen und Arbeite nur noch dein Tutorial durch.
Klasse Arbeit!!!
Sonntag, 13. Februar 2011 5:36
Hi,
ich konnte mir alles mit dem zf tool erstellen.
)
Jedoch ist das aufrufen weiterer Controller nicht möglich (404).
Also ../public/article funzt def. so nicht.
Also ehrlich gesagt, die Mühe mit dem tollen Tutorial passt so gar nicht zu den Schwierigkeiten die das ZF Anfängern so macht.
Ich glaub ich lass den bull shit mal lieber
Sonntag, 3. April 2011 13:47
Habe Version 1.11, und da funktioniert (zumindestens bei mir) “zf create” nicht so ohne weiteres. Obwohl ich alle include_path gesetzt habe, kam immer noch ein Fehler. Die Lösung war den Inhalt der /libary/ nach /xampp/php/PEAR/ zu kopieren.
Danke und Gruß,
Klaus
Donnerstag, 26. Mai 2011 19:48
@daniel
wenn man article manuell angelegt hat funzt das anlegen weiterer methoden nicht.
man muß also noch artikel mit dem zend-befehl aufrufen.
danach gehts.
greez
ulle
Montag, 8. August 2011 23:17
einfach super
viel Dank
Sonntag, 25. September 2011 16:29
Hallo,
ich habe auch dasselbe Problem wie Schorschi. Ich habe die Version 1.11.10 (und das Inhalt von /library also Zend ist auch schon im Verzeichnis /xampp/php/PEAR/ enthalten).
wenn ich nun durch der Befehl “cd c:\xampp\htdocs\travelloblog” ins Projekt-Verziehnis gehe und dann dort “zf create controller name” eingebe, sagt er mir, dass der Befehl “zf” entweder falsch geschrieben ist oder nicht gefunden werden konnte.
Die zf.* Dateien sind in D:\myverzeichnis\xampp\php enthalten.
Und der Pfad zu dem Verzeichnis ist offensichtlich auch gesetzt, denn “zf create projekt D:\myverzeichnis\xampp\htdocs\travelloblog hat ja super funktioniert. Den Pfad habe ich gesetzt, indem ich bei der Systemerweiterungen eine neue Umgebungsvariable namens zf gesetzt habe: zf=D:\myverzeichnis\xampp\php\zf. Stimmt es so? und mit der Eingabe “set zf” bekomme ich folgende Ausgabe:
D:\myverzichnis\xampp\php> set zf
zf=D:\myverzeichnis\xampp\php\zf
ZF_SCRIPT=D:\myverzeichnis\xampp\php\\zf.php
Jedoch funktioniert es auch nicht, wenn ich es mit dem Pfadangabe zu zf angebe:
D:\myverzichnis\xampp\htdocs\travelloblog>D:\myverzeichnis\xampp\php\zf create controller user
Der Befehl “”php.exe”" ist entweder falsch geschrieben oder konnte nicht gefunden werden
Wo mache ich falsch?