Zend Framework Tutorial Teil 1: Einführung und Anforderungen

Dieses mehrteilige Tutorial soll einen Einblick in die Entwicklung von dynamischen Websites basierend auf dem Zend Framework geben. Das Zend Framework existiert derzeit in der Preview Version 0.6.0 (Stand: 28.12.2006).

Da es bisher noch kein Tutorial zum Zend Framework in deutscher Sprache gibt, ist es natürlich an der Zeit, endlich eines zu starten. Tutorials in anderen Sprachen findest du weiter unten.

Ich werde versuchen, alle durch neue Versionen des Zend Frameworks notwendigen Änderungen jeweils in älteren Teilen des Frameworks nachzupflegen, damit es möglichst immer auf dem neuesten Stand ist und somit nutzbar bleibt.

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.

Wichtig: Dieses Tutorial setzt die Zend Framework Preview Version 0.6.0 voraus und kann bei der Verwendung einer aktuelleren Version aus dem SVN unter Umständen nicht zu 100% funktionieren.

Inhaltsverzeichnis

Zend Framework Komponenten

Folgende Komponenten des Zend Frameworks werden im Rahmen des Tutorials vorgestellt:

  • Zend (Basisklasse)
  • Zend_Cache
  • Zend_Config
  • Zend_Controller
  • Zend_Controller_RewriteRouter
  • Zend_Db
  • Zend_Http_Client
  • Zend_Filter_Input
  • Zend_Log
  • Zend_Mail
  • Zend_Pdf
  • Zend_Search
  • Zend_Service_Amazon
  • Zend_Service_Flickr
  • Zend_View
  • Zend_XmlRpc

Zusätzlich werden im Rahmen dieses Tutorials auch andere Komponenten außerhalb des Zend Frameworks in unser Projekt integriert, z.B. die Template Engine Smarty oder einige Komponenten der eZ components (z.B. ezcTemplate). Damit zeige ich, wie einfach es ist, weitere externe Komponenten in eine auf dem Zend Framework basierende Anwendung zu integrieren.

Unsere Anwendung

Ich habe lange hin und her überlegt, welche Anwendung sich am besten für dieses Tutorial eignen könnte. Neben einer Bildergalerie habe ich auch über ein Linkverzeichnis, ein Forum oder ein kleines CMS nachgedacht. Auch die klassische Verwaltung für den eigenen CD Bestand oder eine Rezeptesammlung standen genauso auf meiner Liste. Sogar über einen kleinen Shop habe ich kurz nachgedacht.

Letztendlich fiel meine Wahl jedoch auf eine der beliebtesten Anwendungen, die für die Einführung in ein PHP Framework oft Verwendung findet: ein Weblog. In diesem Tutorial soll somit eine Weblog Software mit dem Zend Framework von Grund auf neu erstellt werden. Sicher wird unser Blog nicht den Funktionsumfang von WordPress oder Serendipity haben können (zumindest nicht im Laufe dieses Tutorials). Aber ich denke schon, dass die Anwendung am Ende auf jeden Fall auch in der freien Wildbahn der Blogosphäre ihren Mann stehen wird. ;-)

Da das Kind natürlich auch einen Namen braucht, habe ich es einfach mal nach unserer Firma benannt und TravelloBlog getauft. Wenn du das Tutorial durcharbeitest, kannst du dir auch einen eigenen Namen dafür ausdenken.

Anforderungen an das TravelloBlog

Um die Anwendung realisieren zu können, brauchen wir natürlich auch eine Liste mit den Anforderungen, damit wir wissen, was das TravelloBlog denn eigentlich leisten können soll. Die Liste ist bewusst schwammig gehalten, schließlich erhält man vor dem Start eines Projektes oftmals genau solche Listen.

  1. Nur registrierte Autoren können Blogbeiträge schreiben, ändern oder löschen.
  2. Registrierte Benutzer sollen ein Profil mit Beschreibung, Link zur eigenen Homepage sowie einem Foto einrichten können, das bei ihren Beiträgen verlinkt wird.
  3. Nicht registrierte Benutzer können Blogbeiträge nur lesen und kommentieren.
  4. Jeder Beitrag kann einer oder mehreren Kategorien sowie beliebig vielen Stichworten, den so genannten Tags, zugeordnet werden.
  5. Jeder Beitrag soll über einen Permalink erreichbar sein.
  6. Die Beiträge sollen auf der Startseite nach Datum sortiert ausgegeben werden (beginnend mit dem aktuellsten).
  7. Zu dem sollen die Beiträge anhand ihrer Kategorie, der zugeordneten Tags sowie Monatsweise aufgelistet werden.
  8. Das TravelloBlog soll Trackbacks und Pingbacks ermöglichen, so dass sich unser Blog mit anderen Blogs automatisch vernetzen kann.
  9. Das TravelloBlog soll einen Newsfeed bereitstellen.
  10. Die Performance des TravelloBlogs ist sehr wichtig, d.h. Daten müssen sinnvoll gecached werden.
  11. Autoren sollen über neue Kommentare per E-Mail benachrichtigt werden.
  12. Alle Beiträge sollen eine Druckversion im PDF Format erhalten.
  13. Es soll eine Volltextsuche geben, möglichst mit Gewichtung.
  14. Passend zum Beitrag sollen Bücher von Amazon sowie Fotos von Flickr angezeigt werden.
  15. Das TravelloBlog soll mehrsprachig sein, d.h. neben deutschsprachigen Benutzern sollte das TravelloBlog auch für englischsprachige Benutzer zugänglich sein.

Technische Voraussetzungen

Um dieses Tutorial durcharbeiten zu können, benötigst du folgende Voraussetzungen:

  • einen Apache Webserver mit mod_rewrite Unterstützung
  • PHP 5.1.4 oder höher (wird vom Zend Framework vorausgesetzt)
  • eine MySQL Datenbank (sollte aber auch mit SQLite funktionieren)

Ich selber entwickele auf einem Windows XP Rechner und betreibe meine Projekte online auf einem Linux Server. Deshalb gehe ich an der einen oder anderen Stelle auch auf die Besonderheiten diese unterschiedlichen Systemumgebungen für Entwicklung und Betrieb ein.

Wenn du auf einem Linux Rechner entwickelst, kann es also sein, dass du das ein oder andere anpassen musst. Bei größeren Problemen bitte die Kommentare der Tutorial Beiträge nutzen, damit auch andere Leser informiert sind.

Weitere Vorbemerkungen

Wie du sicher schon gemerkt hast, spreche ich alle Leser dieses Tutorials pauschal mit dem persönlichen “Du” an. So ist das Schreiben irgendwie einfacher als mit einem pauschalen “Ihr” oder dem förmlicheren “Sie”. Ich hoffe, das stört dich / euch / Sie nicht. :-)

Hinterlasse deine Fragen, Verbesserungen und Anregungen bitte als Kommentar bei dem jeweiligen Beitrag und sende sie nicht per E-Mail an mich. Dann haben auch andere Leser etwas von deinen Anmerkungen bzw. meinen Antworten darauf.

Weitere Tutorials

Wenn du dir bis zum nächsten Teil dieses Tutorials noch weitere Tutorials in anderen Sprachen anschauen möchtest, habe ich hier ein paar Links gesammelt. Manche Tutorials sind schon etwas älter und beziehen sich nicht auf die aktuelle 0.6.0 Version des Zend Frameworks. Andere sind dagegen sehr aktuell:

Zusammenfassung

In diesem ersten Teil meines Zend Framework Tutorials habe ich den Aufbau des Tutorials erläutert und die Komponenten benannt, welche in dem TravelloBlog Verwendung finden werden. Zudem habe ich die Anforderungen an das TravelloBlog aufgelistet.

Im nächsten Teil geht es dann ans Eingemachte und wir starten mit der Zend Basisklasse und unserer Bootstrap Datei. Dann gibt es auch endlich PHP Code zu sehen… ;-)

Change Log

An dieser Stelle werden Änderungen an diesem Tutorial Teil zusammengefasst, die nach dem Ersterscheinen (26.8.2006) notwendig waren, z.B. durch neuere Versionen des Zend Frameworks oder Änderungen am Konzept des Tutorials oder den Anforderungen an unser TravelloBlog.

  • 10.09.2006: Reihenfolge der Kapitel geändert und ein neues Kapitel über die Formularverarbeitung eingefügt
  • 30.09.2006: Kapitel für Smarty und ezcTemplate verschoben
  • 04.11.2006: für neues Release 0.2 aktualisiert
  • 28.12.2006: für Release 0.6.0 aktualisiert

Navigation

59 Antworten für “Zend Framework Tutorial Teil 1: Einführung und Anforderungen”

  1. Ralf bloggt » Zend Framework Tutorial Teil 2: Systemaufbau mit Bootstrap Datei und der Zend Basisklasse sagt:

    [...] Im ersten Teil dieses Tutorials habe ich in einer Einführung den Aufbau dieses Tutorials erläutert und einen Überblick über die in diesem Tutorial verwendeten Zend Framework Komponenten gegeben. Zudem habe ich die Anforderungen an das TravelloBlog, unserer Beispiel-Anwendung, zusammengefasst. Wenn du den ersten Teil noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  2. Daniel's Weblog sagt:

    Tutorials zu Zend Framework…

    Ralf Eggert plant eine Veröffentlichung von deutschen Tutorials zum Zend Framework:
    Dieses mehrteilige Tutorial soll einen Einblick in die Entwicklung von dynamischen Websites basierend auf dem Zend Framework geben
    Ich selbst habe mir das Framework ei…

  3. Marc Jakubowski sagt:

    Hi Ralph, finde ich toll, dass du dich entschlossen hast diese Tutorialreihe zu starten, vor allem weil noch keine vernünftigen deutschen Artikel darüber gibt und gerade ja in Deutschland genügend PHP Entwickler aktiv sind, wobei ja jeder irgendwann mal an den Punkt kommt und ein Framework einsetzen möchte um Arbeit zu sparen und dann mangels hilfreicher Anleitungen verzweifelt aufgibt.

    Ich beschäftige mich nun auch seit dem ersten ZF Release mit dem Framework und bastel an einer etwas umfangreicheren Community Seite mithilfe des ZF und bin gespannt wie du die oben genannten Komponenten einsetzt, da ich noch nich alle habe ausprobieren können.

    Vielleicht schaffe ich es ja bald endlich mal mein langgeplantes Tutorial zum Thema ZF LiveUser( Smarty) zu schreiben.

    Also fröhliches Tutorialschreiben dir :]

    PS: In welchen Abständen hattest du geplant die Artikel zu veröffentlichen?

  4. Ralf Eggert sagt:

    Hallo Marc,

    genau, dass sind auch die Gründe, warum ich das Tutorial schreibe. Eben weil es noch nicht so viele Infos auf deutsch dazu gibt (außer das komplett übersetzte Manual). Ich hoffe, dass dadurch der ein oder andere einen Einstieg in die Materie findet.

    Geplant ist derzeit, dass ich einen Teil pro Woche veröffentliche. Die nächsten beiden sind zwar schon fast fertig geschrieben (und auch deutlich umfangreicher als die beiden ersten), ich möchte mich aber nicht zu sehr unter Druck setzen. Zumal ich auch auf Anregungen und Vorschläge der Leser warte… :-)

    Gruß,

    Ralf

  5. T. Neumann sagt:

    Hallo Ralf,
    ich habe mich nun gerade durch den ersten Teil des Tutorials gelesen und finde es schade das es keine Druckbare Version von dem ersten Teil gibt, oder zumindest habe ich den Link noch nicht gefunden.
    Wird es den eine Drucker optimierte Fassung des Tutorials geben?

  6. Ralf Eggert sagt:

    Hallo T.,

    ich hatte da schon drüber nachgedacht, bin aber an der Installation eines PDF Plugins für Wordpress gescheitert. Da ich das Tutorial aber in einer Textverarbeitung vorschreibe, werde ich mal schauen, dass ich daraus dann auch ein PDF generieren kann. Bitte habe aber ein wenig Geduld.

    Gruß,

    Ralf

  7. Ralf’s PHP Blog » Zend Framework Tutorial Teil 3: MVC Design Pattern und Zend_Controller sagt:

    [...] Nach der Einführung in das TravelloBlog Projekt im ersten Teil dieses Tutorials haben wir im zweiten Teil unser grundlegendes System aufgebaut, die Verzeichnisstruktur eingerichtet und eine erste rudimentäre Bootstrap Datei erstellt. Wer mochte, hat sich auch einen VirtualHost auf seinem Entwicklungsrechner eingerichtet. Wenn du die ersten beiden Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  8. Me, Myself & I » Blog Archive » Zend Framework Tutorials sagt:

    [...] http://www.ralfeggert.de/2006/08/26/einfuehrung-und-anforderungen/ [...]

  9. Ralfs PHP Blog » Zend Framework Tutorial Teil 4: MVC Design Pattern und Zend_Db sagt:

    [...] Im dritten Teil des Zend Framework Tutorials haben wir das Model-View-Controller Entwurfsmuster kennen gelernt. Basierend auf der Komponente Zend_Controller haben wir dann unsere Controller Klassen für unser TravelloBlog erstellt. Wenn du die ersten drei Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  10. Ralfs PHP Blog » Weiteres deutschsprachiges Zend Framework Tutorial sagt:

    [...] bei sich zu hosten. Tags: Linktipp, PHP, Tutorial, Zend Framework Bookmark: del.icio.us yigg.de mister-wong.de  [...]

  11. Fabian sagt:

    …schliesse mich meinem Vorgänger an: PDF Version wäre super! ;)

  12. Ralf Eggert sagt:

    Hallo Fabian,

    danke für den Reminder. Ich arbeite noch an einer Lösung.

    Das Problem ist, dass die Vorlage zwar in OpenOffice geschrieben ist, wo ein PDF Export ja ein Klacks ist, ich die letzten Änderungen aber im Blog gemacht und nicht nachgepflegt habe. Zwei Versionen pflegen, ist irgendwie doof.

    Vielleicht würde eine Printversion per CSS schon für das Erste ausreichen? Oder ich muss mir ein Plugin für WordPress mit Zend_Pdf basteln, wenn ich mal Zeit habe.

    Bitte noch ein wenig Geduld.

    Gruß,

    Ralf

  13. butters sagt:

    Hi,

    warum eigentlich beim dem Blog Kategorien und Tags. Ist doch eigentlich das gleiche. Vor allem dann, wenn ich einem Beitrag mehrere Kategorien und Tags zuweise. Oder?

    Gruß
    butters

  14. Ralf Eggert sagt:

    Hallo butters,

    im Prinzip hast du schon Recht. Tags und Kommentare sind sich sehr ähnlich. Wesentlicher Unterschied ist, dass die Kategorien in einem Blog in der Regel in der Navigation rechts oder links auftauchen, während die Tags meistens in einer Tagwolke angezeigt werden. Tags wiederum werden z.B. bei Technorati verwendet, um Beiträge aus vielen Blogs für einen Tag zusammen zu fassen.

    Bei den meisten Blogsoftware Lösungen ist dies aber heute fast Standard, dass es sowohl Kategorien als auch Tags gibt. Ist auch irgendwie historisch gewachsen. Deshalb wollte ich auch beides im TravelloBlog Tutorial anbieten.

    Gruß,

    Ralf

  15. Ralfs PHP Blog » Zend Framework Tutorial Teil 5: MVC Design Pattern und Zend_View sagt:

    [...] Im vierten Teil vom Zend Framework Tutorial haben wir die Zend_Db Komponente und deren Teilkomponenten kennen gelernt, um auf einen Datenbank zugreifen zu können. Die Ausgabe haben wir aber nur unformatiert auf dem Bildschirm ausgegeben, da wir bisher noch keine Templates eingesetzt hatten. Wenn du die ersten vier Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  16. Ralfs PHP Blog » Zend Framework Tutorial Teil 6: MVC Design Pattern und Formularverarbeitung sagt:

    [...] Im fünften Teil vom Zend Framework Tutorial haben wir die Zend_View Komponente kennen gelernt und schon für die Anzeige der Artikelliste und eines einzelnen Artikels verwendet. Wir haben ein Haupttemplate mit dem Seitenaufbau sowie mehrere Subtemplates erstellt. Zudem haben wir ein wenig CSS unser TravelloBlog ein wenig aufgehübscht. Wenn du die ersten fünf Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  17. Ralfs PHP Blog » Zend Framework Tutorial Teil 7: MVC Design Pattern für weitere Controller sagt:

    [...] Im sechsten Teil vom Zend Framework Tutorial hhaben wir mit Hilfe der Zend_View Hilfsmethoden die Formularverarbeitung für unser TravelloBlog erstellt. Wir haben ein Formulartemplate erstellt, die Validierung eingerichtet und die Daten in der Datenbank gespeichert. Zudem haben wir Funktionen für das Ändern und Löschen bestehender Artikel eingerichtet. Wenn du die ersten sechs Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  18. Ralfs PHP Blog » Zend Framework Tutorial Teil 8: Konfiguration mit Zend_Config sagt:

    [...] Im siebten Teil vom Zend Framework Tutorial haben wir uns ein wenig intensiver mit Zend_Controller, Zend_Db und Zend_View auseinander gesetzt und unsere Anwendung navigierbarer und mit Hilfe von CSS auch ein wenige hübscher gemacht. Wenn du die ersten sieben Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  19. Ralfs PHP Blog » Zend Framework Tutorial Teil 9: Benutzereingaben filtern mit Zend_Filter_Input sagt:

    [...] Im achten Teil vom Zend Framework Tutorial haben wir die Zend_Config Komponente für das Laden unsere Konfigurationsdaten verwendet, unsere Bootstrap Datei stark entschlackt und noch ganz nebenbei zwei Bugs aus dem siebten Teil bereinigt. Wenn du die ersten acht Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  20. Ralfs PHP Blog » Zend Framework Tutorial Teil 10: Sinnvoll cachen mit Zend_Cache sagt:

    [...] Im neunten Teil vom Zend Framework Tutorial haben wir die Zend_Filter Komponente für das Filtern von Benutzereingaben kennen und anwenden gelernt. Zudem hast du in einer umfangreicheren Übung (so hoffe ich zumindest) die Kommentarfunktion für unser TravelloBlog realisiert. Wenn du die ersten neun Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  21. Ralfs PHP Blog » Zend Framework Tutorial Teil 11: Nützliche Komponenten Zend_Log und Zend_Mail sagt:

    [...] Im zehnten Teil vom Zend Framework Tutorial haben wir die Zend_Cache Komponente für das Cachen von Templates und Datenbankabfragen kennen gelernt und in unser Projekt integriert. Wenn du die ersten zehn Teile noch nicht gelesen hast, hole dies bitte schnell nach. [...]

  22. J.Wachtel sagt:

    Hallo Ralf,

    super Sache dein Tutorial, ich bin echt begeistert!
    Hinterlasse ich dir mal einen Eintrag, das du siehst das sich die Arbeit für dieses Tut auch lohnt!

    Weiter so ;)

    Danke & gruß
    Jens

  23. Ralfs PHP Blog » Zend Framework Tutorial verzögert sich sagt:

    [...] wenig Geduld. Tags: PHP, Zend Framework, Zend Framework Tutorial Bookmark: del.icio.us yigg.de mister-wong.de  [...]

  24. Heiko sagt:

    Hallo Ralf

    Es ist immer wieder bemerkenswert das es Menschen wie Dich gibt, die Ihr Wissen mit anderen Menschen teilen. Danke!

    Ich beobachte das ZEND Framework nun schon eine ganze weile und mit Hilfe Deines Tutorial habe ich mich die letzten zwei Tage mal tiefer in die Materie eingearbeitet. Am Anfang war ich sehr euphorisch am Ende eher enttäuscht.

    Es soll keine Kritik an Deinem Tutorial sein, vielmehr eine Aussage an das Framework im Allgemeinen. Als Entwickler und Projektleiter für Web-Applikationen würde ich derzeit keine Gründe sehen kommenden Programmcode auf Basis des ZEND Framework auf zubauen. Es gibt zwar viele Erweiterungen für irgendwas aber an grundlegendes ist bis heute nicht gedacht worden oder ich übersehe es.

    VIEWS vs. Template:
    Ich vermisse eine Template Engine! Mir ist bewusst, dass es SMARTY, FLEXY u.v.a. gibt. Ein Programmierer wird auch sicherlich in der Lage sein, produzierten Code mit dem ZEND Framework und genannten Programmen zu verarbeiten. Sollte dieses aber nicht bereits ein Bestandteil dieses Frameworks sein?

    Die Ansätze auf der ZEND Framework Homepage und in Deinem Tutorial für die Ausgabe (VIEWS) sind für eine produktive Entwicklung in meinen Augen nicht geeignet und falsch. Meine Designer wissen nicht was PHP ist und dieser Code zur Ausgabe von Inhalten hat dort nichts verloren! Des Weiteren bringt es eine Fehlerquelle mit sich, falsch geschriebener Code verursacht einen „Parse Error“. Was produktiv nicht tragbar sein kann!

    MVC Design Pattern:
    Zitat: „Derzeit (Version 0.2.0) ermöglicht das ZEND Framework nicht so ohne weiteres, dass Controller Klassen auch in verschiedenen Unterverzeichnissen vorgehalten werden können. Wenn du auf deiner Website neben einem Blog vielleicht auch noch ein Forum oder eine Bildergalerie anbieten möchtest, wäre es ganz sinnvoll, alle Controller Klassen sinnvoll in Unterverzeichnissen ablegen zu können. Es kann durchaus sein, dass dies in naher Zukunft möglich sein wird.“

    Größter Kritikpunkt! Komplexe Applikationen bestehen nun mal aus mehreren Modulen. Stellen wir uns ein CMS mal vor mit seinen verschiedensten Modulen. (Gästebuch, Shop, Galerie …) Es kann doch nicht tragbar sein Controller Klassen alle in die gleiche Verzeichnis Ebene packen zu müssen. Hier geht der Überblick selbst für einen Programmierer schnell verloren. Sind an einem Projekt mehrere Entwickler beteiligt wird das ganze wohl im Chaos enden.

    Kommt dazu die Anforderung, dass jedes der Module in sich auch eigenständige Applikationen darstellen sollen, ist dass nur erschwert möglich.

    Fazit:
    Es gibt noch einige Punkte die mich derzeit abhalten würden mit dem hier vorgestellten Framework arbeiten zu müssen. Dieses gilt aber auch für die mir bekannten Frameworks Symfony, Cake PHP & Seagull.

    Jeder gute Programmierer der auf Basis von OOP arbeitet, sollte bereits heute im Besitz von Programmcode sein die alle Anforderungen Objekt Orientierter Programmierung erfüllt. Also mit seinem eigenen Framework.

    mfg Heiko

  25. Ralf Eggert sagt:

    Hallo Heiko,

    vielen Dank für deinen ausführlichen Kommentar. Mir gefallen die Templates in diesem Tutorial auch nicht so sehr, aber das ist derzeit die einzige vom Zend Framework mitgelieferte Möglichkeit, den View Part umzusetzen.

    Die Integration von Smarty ist im Grossen und Ganzen aber eigentlich trivial. Du kannst Zend_View_Abstract erweitern, z.B. als Travello_View_Smarty Klasse, und dann innerhalb des Objekts ein Smarty Objekt verwenden. Dann kannst du z.B. weiterhin ohne Probleme Smarty als Template Engine verwenden. Schau zur Not mal hier http://devzone.zend.com/node/view/id/120 und http://devzone.zend.com/node/view/id/156 nach (ist aber nicht mehr unbedingt aktuell, aber das Prinzip sollte klar werden).

    Es war in der Mailingliste auch mal im Gespräch, eine Komponente zu schaffen, welche Templates im Smarty-Style in Templates im PHP-Zend-Framework-Style übersetzt. Dann kann man quasi die Template Engine sogar problemlos selber erweitern.

    Die MVC Komponenten wurden stark umgebaut, nur sind die Änderungen noch nicht in der Library verfügbar. Das Problem ist ja kein dauerhaftes und wird sicher bald gelöst werden. Als Workaround kannst du auch verschiedene Bootstrap Dateien verwenden oder den Pfad zu den Controller Dateien abhängig vom aktuellen Verzeichnis setzen. Ist meiner Meinung nach also nicht unbedingt ein Show Stopper.

    Bitte nicht vergessen: das Zend Framework befindet sich noch nicht mal in einem Beta Stadium. Dass noch nicht alles läuft, sollte einleuchten. Ich bin aber optimistisch, dass die Macken über kurz oder lang ausgemerzt werden.

    Gruß,

    Ralf

  26. Heiko sagt:

    Hallo Ralf

    Damit man sich nicht falsch versteht. Ich halte absolut nichts von SMARTY als Template Engine. Habe zwar nur noch einen Programmstand vor über einen halben Jahr im Kopf, aber ich glaube mich zu erinnern, dass man auch hier Smarty Codes einführen muss. Soll also heißen, dass ich eine von mir entwickelte Template Klasse in meinem Programmcode benutze. Die frei von jeglichem ausführbaren Code ist und somit keine Programmfehler liefert, wenn nur Ausgabefehler.

    In Bezug auf das ZEND Framework ist mir persönlich klar, dass noch nicht alles fertig sein kann und in zukünftigen Major Relases es viele weitere nützliche Features geben wird. Es sei aber als unabhängiger Programmierer erlaubt, darauf aufmerksam zu machen, dass viele Programmierer der Annahme sein können, dass alleine aus der Tatsache heraus, dass für dieses Framework die Firma ZEND dahinter steht, es auch das Absolute muss darstellt.

    In Meinen Augen ist das derzeit (noch) nicht der Fall. Als kommerzieller Anbieter von Web-Applikationen ist unsere Firma immer bestrebt das absolute aus PHP heraus zuholen und wir wollen immer beweisen, dass wir uns vor .NET Applikationen nicht verstecken müssen.

    Das bedeutet, dass wir als Firma auch immer mit finanziellen Mitteln bestrebt sind, unseren produzierten Code auf die aktuellsten PHP Major Relases mit allen neuen Features am laufen zu haben. Mit Einführung von PHP 5.2.0 standen uns somit die Filter & Json Methoden zur Verfügung. Diese hatten wir vorher natürlich in unseren Klassen in PHP implementiert, können aber jetzt auf den Kern von PHP zu greifen.

    In meinen Augen sind daher die dafür implementierten Methoden des ZEND Framework in der aktuellen Version hinfällig. PHP 5.2.0 ist ja nicht von heute auf morgen fertig gestellt worden und neue Features standen seit Monaten als „–dev“ Version zur Verfügung.

    Auch wenn ein allgemeines Framework vielleicht abwärts kompatibel zu früheren PHP Versionen sein muss (sollte). Das ZEND Framework hält sich nicht an diesen Passus. Wie von Dir mehrmals in Deinem Tutorial darauf hingewiesen sind die hier nach vollziehbaren Anwendungen auch nur mit dem aktuellen „Preview 0.2.0“ nach vollziehbar.

    Meine Person hat sich vor vier Jahren aus allen Aktivitäten von Open Source Projekten zurückgezogen, ein Grund dafür war das von mir in den beiden letzt genannten Absätzen geschilderte. In den einschlägigen Developer-Mailing-Listen wurde sich monatelang vor PHP 5.2.0 darüber gestritten „ob eine statische Methode als abstrakt deklariert wird“.

    Zitat: „Diverse PHP- Entwickler sahen in dieser strengen Vorgehensweise keinen Sinn und befürchteten, das solcher Code in der Praxis eben doch Verwendung gefunden habe und das Update auf 5.2.0 somit zur Folge hätte, dass eventuell bestehende Anwendungen nicht mehr laufen. Mit der Begründung, dass dies die ohnehin behäbige Adoptionsrate von PHP5 nicht weiter verbessern und zudem einen Sturm der Entrüstung unter den Anwendern auslösen würde.“

    Eine behäbige Adoptionsrate von PHP5 ist in meinen Augen, dass genau über so etwas diskutiert werden muss. Eine PHP4 Anwendung hat nun mal nichts mit PHP5 zu tun und das es erlaubt worden ist mit Einführung von PHP5 standardmäßig (default) nicht deklarierte Klassen und Methoden als „public“ zu interpretieren war falsch.

    Mit PHP5 ist man in der Lage gleichwertige Programme wie in C# oder Pascal zu programmieren. Die dazu gehörigen Entwicklungsumgebungen Visual Studio und Delphie hatten in der Vergangenheit auch immer Abhängigkeiten zu einer neuen Version (Entwicklungsumgebung). Alter Code war (ist) [kompilierbar] daher nicht immer lauffähig gewesen.

    Mit dem von Dir veröffentlichen Tutorial Ralf trittst Du genau in diese Scherbe. Bei jedem neuen Relases des ZEND Framework bist Du immer damit beschäftigt das aktuelle TuTo auf dem neusten Stand für das ZEND Framework zu bringen. Gleichfalls musst Du Dich im Blog entschuldigen, dass weiter führende Kapitel zum Tutorial’s sich verzögern, da man ja erst aktualisieren muss.

    Kommerziell alles Schwachsinn! Wenn man nichts zu sagen hat, ist Stillschweigen die bessere Alternative. Als kommerzieller Anbieter (wie es unsere Firma ist) von Web-Applikationen die auf das ZEND Framework aufbauen könnte, um es zu profilieren und voran zu treiben sollte man als Anwender (Programmierer) von diesem zu 100% überzeugt sein. Von PHP5 bin ich überzeugt aber nicht vom ZEND Framework.
    Warum?

    * fehlendes Template System (keine PHP Funktion darf zur Ausgabe verwendet werden)
    * Trennung von Code und Ausgabe über Multi VIEWS (evtl. MVC2)
    * OOP Klasse für PDO Abstraktion nach SQL 92 (MySql vs. Limit kenne ich nicht)
    * Transaktion Handling (vielleicht nicht gefunden) [beginTransaction, commit & rollBack]
    * Anlegen von Unterverzeichnissen für CONTROLLER Klassen
    * AJAX Implementation
    * keine „htaccess“ Dateien (Vorraussetzung mod_rewrite [Apache] vs. IIS) [Abhängigkeit]
    * u.v.m.

    mfg Heiko
    http://www.intpoint.org

  27. Thomas Peterson sagt:

    Ich denke mann braucht keine Template Engine denn ob ich nun Smarty als Designer lerne oder dann etwas php sollte wohl keinen Unterschied machen.

    Title: getTitle() ?>

    Ich denke das ist genauso einfach wie jede andere Template Engine.

  28. Thomas Peterson sagt:

    nun kann mann hier gar keinen code schreiben :-D

    bitte bau ne

    CODE:

    funktion ein :-D

  29. Thomas Peterson sagt:

    Tschuldigung hier das was ich oben zeigen wollte:

    CODE:
    1. Title: getTitle() ?>

  30. Thorsten sagt:

    Heiko hat in großen Teilen recht. Aus kommerzieller sicht ist das Framework im nirgendwo.
    Ich versuchte nun seit 3 Wochen eine "ordendliche" implementation eines Application Login zu finden. Die Dokumentation lässt sehr zu wünschen übrig. Eigendlich ist es keine Dokumentation, sondern Diskusionen von Entwicklern wie es sein sollte. Bis das Framework fertig ist, und damit meine ich keine Major Release 1.0.0, wird es noch dauern.(Bis es wiklich fertig ist wird es wahrscheinlich die Release 2 tragen)

    Und hier ist genau der Punkt den Heiko beschreibt. Ich bin dann damit mehr beschäftigt Änderungen nachzupflegen, als wirklichen Programmcode zu generieren. = "Kommerziell alles Schwachsinn!"
    Dass kann sich nur ein Heimprogrammierer leisten.
    Aber genau die sind jetzt gefragt es auszutesten und neue Ideen einzubringen!!!

    Kommerzielle (oder größere Applicationen) können erst danach damit generiert werden. Tatsache ist, dass wenn ich heute mit dem Framework eine Application schreiben möchte brauche ich erheblich mehr Zeit für nachpflege Arbeiten und Workarounds und am Ende ist es sinnvoll die Application vom Grund auf neu zu schreiben.

    Ich bin mir sicher mit dem Framework später zu arbeiten, aber im momenr ist dass eZ Framework mehr für mich, oder für jemanden der sofort produktiv arbeiten möchte.
    Noch was, dies ist keine Abwertung sondern nur eine Feststellung.

  31. Ralf Eggert sagt:

    Hallo Heiko,

    nach etwas längerer Zeit komme ich nun endlich dazu, dir zu antworten. :-)

    das mit Smarty war auch nur als Beispiel gedacht. Ich komme mit Smarty mittlerweile sehr gut zurecht und auch unsere Template Designer bevorzugen Smarty vor reinen PHP Templates wie es das Zend Framework derzeit nur anbietet. Wenn ich es richtig überblicke, wurde vor kurzem ein Zend_View_Interface geschaffen, mit dessen Hilfe du jede beliebige Template Engine (also auch deine eigene) problemlos integrieren kannst). Habe mir das aber noch nicht im Detail angeschaut.

    Über die Interna bei der Entwicklung von PHP 4 und PHP 5 und was auf den diversen internen PHP Mailinglisten abgeht und worüber gestritten wird, dazu kann ich nichts sagen, einfach, weil ich dies nicht verfolge. Natürlich wird es immer wieder Komponenten geben, die durch aktuelle Entwicklungen von PHP überflüssig werden. Ich denke, dass trifft aber nicht nur auf das Zend Framework sondern auch auf viele andere Frameworks und Klassensammlungen zu.

    Da sich das Zend Framework noch in einem frühen Entwicklungsstadium befindet, ist es meiner Meinung nach nur logisch, dass es zwischen einzelnen Releases Brüche in der Kompatibilität zu früheren Releases geben wird. Auch dies ist bei vielen anderen Projekten oder Frameworks so. Das Problem an dem Tutorial ist einfach, dass ich es für den geplanten Umfang einfach viel zu früh gestartet habe und dass die Form (also ein aufeinander aufbauendes schrittweises Tutorial) in einem so frühen Entwicklungsstadium eher ungeeignet war. Dies kreide ich aber nicht dem Zend Framework an, sondern ist eher meiner eigenen Ungeduld geschuldet.

    Dass du die Entwicklung des Zend Frameworks als kommerziellen Schwachsinn bezeichnest, kann ich nicht ganz nachvollziehen. Alle deine Kritikpunkte aus der abschließenden Liste sind meines Wissens nach längst als Problem erkannt und werden sicher früher oder später auch aus der Welt geschaffen. Das Ziel des Frameworks ist das 80/20 Prinzip einzuhalten. Man versucht also 80% der Entwickler das zu bieten, was sie brauchen, während den restlichen 20% die Möglichkeit geboten wird, dass Framework ihren Wünschen entsprechend anzupassen und zu erweitern.

    Niemand ist gezwungen das Zend Framework zu verwenden, vor allem nicht die vorhandene Alphaversion.

    Gruß,

    Ralf

  32. Ralf Eggert sagt:

    Hallo Thorsten,

    bitte nicht vergessen. Das aktuelle Release 0.2.0 ist eine Alphaversion! Dass das Framework noch nicht alle Komponenten und Funktionalitäten bietet, die man von einer stabilen Version erwartet, liegt in der Natur der Sache.

    Wie schon an anderer Stelle mehrfach geschrieben, wird es in Kürze das 0.6.0 Release geben, bei dem die vielen Änderungen in den MVC Komponenten in den Kern des Frameworks einfließen. Seit heute sind die im SVN schon vorhanden. Wenn du dir den morgigen Snapshot holst, wirst du sie bereits dort finden. Das Manual ist derzeit nicht aktuell. Auch die Manualkapitel für die MVC Komponenten wurden heute in den Kern übernommen. Ich bin zuversichtlich, dass bis zum Erscheinen des 0.6.0 Releases die Kapitel bereits ins Deutsche übersetzt worden sind.

    > Kommerzielle (oder größere Applicationen) können erst danach damit generiert werden.

    Für das Zend Framework wird von offizieller Seite empfohlen, dieses noch nicht im Produktiveinsatz zu verwenden, eben weil es sich an allen Ecken und Enden bis zum ersten Release Candidate noch verändern wird. Wer es also schon einsetzt, muss einfach damit rechnen, dass er bei neuen Releases seinen bestehenden Code überarbeiten muss.

    Ich umgehe das Problem damit, dass mein Projekt, welches bereits auf dem Zend Framework aufsetzt, zu 100% durch Unit und Web Tests abgesichert ist. Wenn es ein neues Release gibt, lasse ich alle Tests solange laufen, bis alle Fehler wieder aus der Welt geschaffen sind. Damit spart man jede Menge Zeit und auch für spätere Zeitpunkte, nach dem ersten 1.0 Release wird mir das sicher helfen, schnell und effizient auf Änderungen zu reagieren.

    > Ich bin mir sicher mit dem Framework später zu arbeiten, aber im momenr ist dass
    > eZ Framework mehr für mich, oder für jemanden der sofort produktiv arbeiten möchte.

    Ich habe mir die eZ components auch angesehen, konnte damit aber bisher nicht wirklich warm werden. Das letzte Mal, als ich es mir ansah, gab es noch nicht mal verwendbare Controller Komponenten, was ich persönlich als Mindestvoraussetzung für ein Framework erachte.

    Das Vorhandensein von PEAR, eZ Components und dem Zend Framework sehe ich aber als wirklich tollen Vorteil. Man kann sich jeweils die Komponenten heraus picken, die einem am meisten zusagen und auf Basis dessen, sein eigenes Framework aufbauen. Die einen Entwickler sind komplett mit PEAR zufrieden, andere bevorzugen eZ Components, wieder andere (so wie ich) das Zend Framework. Mit Symfony, Seagull, CakePHP oder CodeIgniter gibt es weitere Frameworks, so dass der Entwickler die freie Auswahl hat.

    Wie ich eben schon schrieb, niemand ist gezwungen, dass Zend Framework zu verwenden. Es als "kommerziellen Schwachsinn" zu betiteln, kann ich dennoch nicht nachvollziehen.

    Auch wenn wir unterschiedlicher Meinung sind, dennoch danke an Heiko und Thorsten für die interessante Diskussion. Wird Zeit, dass es ein deutschsprachiges Zend Framework Forum oder eine Mailingliste für den Gedankenaustausch gibt :-)

    Gruß,

    Ralf

  33. Thorsten sagt:

    Ich bin kein freund vieler Worte (manchmal zwar etwas begriffstützig :)) )
    die Idee aber mit dem "Wird Zeit, dass es ein deutschsprachiges Zend Framework Forum oder eine Mailingliste für den Gedankenaustausch gibt :-)"
    habe ich aufgegriffen. Also habe ich die Domain http://www.zendframework.de/ reserviert.
    Welche Forum Software bevorzugst du?? Ich mach das Forum dann heute noch auf.

    Gruß
    Thorsten

  34. spengler sagt:

    hallo Ralf,
    erst mal vielen Dank für dieses Tutorial, hatt es durch bis Kapitel sieben hat mich begeistert und mir den Rail-gedanken(eigene interpretation) nahegebracht.
    Hmm jetzt nach all der Kritik das alles noch nicht richtig fertig sei von zend und dieser geschichte mit dem brutkasten, wie ist denn deine einschätzung ... soll ich mich nochmal voll reinknieen oder meinst ich soll momentan noch etwas warten.
    Ich schätze du hast gute chancen am ende, wenn alles ausgearbeitet ist, von dem ganzen ein buch draus zu machen ... wär sicher ein buch welches sich lohnen würde.

    grüsse

  35. Marco sagt:

    Hallo,

    ich antw. ma hier rein, weil Ralf mich angeschrieben hat, dass hier das Stichwort Forum gefallen ist. Ich konnte jetzt leider die comments nicht alle durchzulesen, weil ich am Donnerstag ne Projektabgabe habe, und bis dahin busy bin.

    Ich habe vor ner Woche Ralf schonmal persönlich angeschrieben. Habe mir schon länger Gedanken um ein Forum zum Zendframwork gemacht, und würde es gerne machen. Als Domain habe zfforum.de schon mal registriert. Nen eigenen schnellen Root habe ich auch, auf dem ich Webspace zu Verfügung stellen könnte. Als Forensoftware würde ich ganz klar zu vbBoard tendieren, kostet auch nicht die Welt.

    Der größte Knackpunkt an Forensachen ist die Moderation, aber ich denke da werden sich bestimmt die ein oder anderen finden lassen, die Lust haben ein bisschen zu helfen.

    Würde mich auf jeden Fall super freuen, wenn jemand bereit wäre mitzumachen und zu helfen! Wenn Ressonanz da ist, könnte man ja vielleicht hier nen Blogeintrag aufmachen und durch Kommentare ein wenig die Sachen koordinieren. Bzw, ich habe gerade eine Projektorganisationsplattform fertiggestellt, darüber könnten wie den "Forumsbau" koordinieren. Wer will kann ja mal auf http://www.vitaminp.org schauen, allerdings werden public Registrierungen erst nächster Woche freigeschaltet - aber es gibt schon mal Screenshots :)

    Viele Grüße!
    Marco

    sorry

  36. Ralf Eggert sagt:

    Hallo Thorsten,

    es wäre schön, wenn du dich mit Marco koordinieren könntest. Es macht in diesem frühen Stadium sicher keinen Sinn, jetzt zwei verschiedene deutsche Foren für das Zend Framework aufzusetzen. Wie ich es Marco schon geschrieben habe, bei der Administration und Moderation werde ich mich heraus halten. Aber ich werde sicherlich die eine oder andere Frage beantworten können, wenn es mir die Zeit erlaubt. Zu Beginn werden die Fragen sicherlich eher tröpfchenweise auftauchen. Aber spätestens mit dem Release 1.0 Ende März wird es sicher einen Schub geben. Das Forum kann ich hier natürlich auch verlinken. :-)

    Gruß,

    Ralf

  37. Ralf Eggert sagt:

    Hallo spengler,

    also mit dem voll reinknien würde ich zumindest bis zum Erscheinen des 0.6.0 Releases warten, das voraussichtlich Mitte Dezember erscheinen wird. Hauptgrund sind die gründlich überarbeiteten Zend_Controller Komponenten, die ich mir gestern das erste Mal intensiver angeschaut habe, und die sich nach dem 0.6.0 nur noch im Detail ändern werden.

    Gruß,

    Ralf

  38. spengler sagt:

    Hallo,
    also das mit dem forum würde ich auch sehr begrüssen.
    Würde es auch gerne unterstützen mit Beiträgen und sicher auch jeder Menge Fragen von mir.
    Bei der Frage nach der richtigen Forumsplattform schlage ich vb-forum ... wir haben bei uns im :aden mal ne Fraktion abgestellt um die gängigen Systeme zu vergleichen. vb war am sichersten und am flexibelsten.
    Wär auch gern bereit 10 Euro zu spenden für die Lizenz von vbulletin.

    Grüsse,
    V.

  39. Marco sagt:

    Wäre super, wenn jeder, der Interesse an nem Forum hätte und bereit wäre mitzuhelfen ne kurze Mail an

    zfforum @ omoo . de

    schicken könnte. So kann man die Sache besser abschätzen, wieviel Leute zusammenkommen. Die obige adresse natürlich zusammengeschrieben ;)

    Ich habe noch mit dem Gedanken gespielt neben dem Zendframwork Kategorien, noch ein paar Kategorien für professionelle php-Skills mit aufzunehmen. Interessant wäre es bestimmt auch u.a. auf einen eigenen Root-Webserver mit php einzugehen...

    Was meint Ihr?

    gruß marco

  40. spengler sagt:

    Hallo Marco hallo Thorsten ... und die anderen
    fänd ich definitiv gut ein Forum für Zendframework, Ralphs blog im Speziellen, und Themen aus dem Umfeld wie Apacheconfig, php.ini, MVC, eben alles was man braucht um das Framework zum laufen zu bringen. Wenn dann Ralph noch den Link dazu hier unterbringt und abundzu Fragen beantwortet hätte es sicher potenzial.

    Wie ist es denn nun eigentlich mit den doppelten initiatoren Marco und Thorsten .. können wir nicht was zusammen machen ... wir legen zusammen jeder 10 Euro, kaufen uns ne instanz von vBulletin und starten das Ding.

    Grüsse V

  41. Thorsten sagt:

    Hallo Spengler
    Das mit der vBulletin Instanz ist nicht das Problem. Die kann ich ggf. auch als Vollversion kaufen und über meine Firma absetzten. Server ist schon fertig und steht bereit. Nur so ne Frage. Was spricht eigendlich gegen phpBB? Hab keine Erfahrung damit und deshalb interessiert mich die allgemeine Meinung.
    Und wenn du auch noch mithilft die themen zu pflegen, können wir die Sache angehen.
    Meine Mail tsedeke at feigenblatt dot de.

    gruß Thorsten

  42. Marco sagt:

    Hallo,

    also ich warte jetzt erstmal auf Feedback von Zend ab. Ich habe eine längere Email geschickt, da auch Zend ab der 1.0er ein Forum plant. Vielleicht kann man sich zusammentun, bzw. Support von Zend bekommen. Neben Zend habe ich den Projektleiter von Zend-Forum und Ralf auf CC gesetzt, er ist also auch auf dem aktuellen Stand.

    Ich denke jetzt ein paar Tage abzuwarten, wird auszuhalten sein. Gab ja die ganze Zeit keine Aktivitäten in Richtung Forum. Ein Forum errichten heisst auch nicht einfach installieren und los gehts, da kommt noch einige Sachen mehr dazu, die man bedenken und planen muss.

    @thorsten, sorry das ich noch nicht auf die Mail zurückgeschrieben habe, bin eben erst nach Hause gekommen. Gerne können wir die Sachen zusammen machen. Wegen Details können wir später nochmal reden

    gruß Marco

  43. Ralf Eggert sagt:

    Hallo,

    nachdem das Feedback von Zend positiv war, spricht ja nichts mehr gegen die Einrichtung des Forums. Wie ich schon geschrieben habe, werde ich mich in Sachen Adminstration und Moderation jedoch aufgrund von Zeitmangel sehr bedeckt halten. Ich beantworte aber gerne Fragen, soweit es mir möglich ist.

    Welche Forensoftware letztendlich eingesetzt wird, ist IMHO zweitrangig, solange der Administrator nicht alle paar Tage Securityfixes aufspielen muss... ;-)

    Gruß,

    Ralf

  44. Marco sagt:

    Jepp, der Marketing Manager von Zend hat heut morgen geantwortet und fand die Idee gut :)

    Ich richte mal ein Forum ein, da können wir zusammen diskutieren, welche Rubriken interessant sind! Melde mich wenn es steht.
    Werde ein VBulletin Board mit einer ein Jahres Lizenz holen,

    melde mich wenn ich es installiert habe.

    gruße marco

    @ thorsten: hast du icq? meine nr ist 9 6 7 3 9 6 6 4 - melde dich grad mal, lass uns das zusammen machen

  45. Christian sagt:

    Hi Ralf und Heiko,

    um noch mal die Diskussion über Template-Engines anzuheizen :-)

    - Eigentlich ist PHP eine/die Template-Engine!
    Warum noch eine Sprache lernen? Und die Designer brauchen PHP ja auch nicht lernen, sie sollen ja nur den Html-Code schreiben. Die Programmierer schreiben dann den PHP-Code in den Html-Code rein. Dreamweaver zeigt den PHP-Code auch richtig an und der Designer kann trotzdem den Html-Code weiter verändern. Der Smarty-Code wird im Dreamweaver nicht richtig angezeigt.

    - Weiterer PHP-Code kann in Parse-Errors enden.
    Kann schon sein :-) Ich weiß nicht wie es das Zend-FW hält, aber Savant (phpsavant.com) eine Template-Engine, die so funktioniert wie Zend_View, benutzt output-buffering um solche Fehler abzufangen und gibt dann einen Fehlerzurück. In der aktuelllen "phpsolutions" kann man nachlesen, dass Savant schneller als Smartys ist.

    Somit denke ich, ist das genau der richtige Weg. Mir gefällt es jedenfalls sehr gut, vorallem die Helfer-Klassen für Form-Elemente.
    Falls ihr eine detailierte Diskussion über Vor- und Nachteile der Template-Engines lesen wollt: http://www.phpwact.org/pattern/template_view

    Happy Coding und Grüße,
    Christian

  46. Richtiges Arbeiten mit Smarty - PHP @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe sagt:

    [...] AW: Richtiges Arbeiten mit Smarty Das ist ja super. Hab mich jetzt mal durchgeklickt bis zu dieser Seite: Zend-Framework Tutorial Scheint mir ein gutes Tutorial zu sein! [...]

  47. Heiko sagt:

    Hi zusammen

    Ich melde mich selten, denn ich muß programmieren. Meine Meinung hat sich aber nicht geändert!

    Unter http://www.pinod.com findet man meine neusten Arbeiten, keine Template Engine, reines XML vs. XSLT. Jede aufgerufene Seite mit der Endung .html kann in .xml umbenannt werden. Ein Template besteht nur aus reinem XML aufbereitetem Code via XSLT. Mit anderen Worten muß ich nichts lernen, mich wie immer nur an offene Standarts halten.

  48. www.simonfella.de » Blog Archiv » Tutorial Zend Framework ver 0.2 sagt:

    [...] Einführung und Anforderungen [...]

  49. Zend Framework - Ein Tutorial at benedikt | niessen sagt:

    [...] Link: http://www.ralfeggert.de Share This [...]

  50. ZF-Blog.de » Blog Archive » ZF Video Tutorials sagt:

    [...] erfahrenen Entwicklern die mit Zend Framework arbeiten oder Arbeiten werden.     Weiterlesen    Einen Kommentarverfassen [...]

  51. Labschi sagt:

    hallo leute :)

    ich hab mir mal die zeit genommen sämtliche kommentare zu lesen, und ich denke das mittlerweile einiges in bezug aufs zf passiert ist. es sind hier einige punkte angesprochen worden, die mir so net gefallen bzw zu denen ich gern etwas sagen würde.

    sinngemäß habe ich folgendes rausgelesen:
    1. zend ist für schnelles entwickeln von kommerziellen applikationen nicht geeignet, ein Login ist nicht "mal eben so" fertig.
    2. andere frameworks sind besser/ schneller einsatzbereit/ ausgereifter.
    3. template engines - insbesondere smarty - sind schrott.

    meine meinung dazu:
    zu 1: zf ist mittlerweile in version 1.5 erhältlich, d. h. viele lücken wurden seit version 0.6 (die hier glaub noch vorlag) geschlossen. zf ist IMO kein (!) framework im sinne von snippet-sammlung, davon gibt es wahrlich genug. man denke bitte an folgendes szenario: zf bietet eine login-komponente an, die ... ja? da fangen die probleme an: ... auf welchem authentifizierungsverfahren basiert? ... welche art backend (datei, datenbank) benutzt?!

    zf stellt für mich eine solide sammlung an basisklassen dar, mit der ich durchaus schnell eine applikation schreiben kann. natürlich bedarf das einiger vorüberlegungen und auch einiges an u. u. "unnützer" arbeit wie klassenableitung etc! aber dafür habe ich dann eine applikation, deren core-komponenten durch das zf realisiert wurden und durchaus recht flexibel auf änderungen reagieren können.

    es wurde in diesem zusammenhang auch von (mangelnden) oop-kenntnissen gesprochen ... also, ich hab mein test-projekt daheim komplett oop-basiert umgesetzt und habe mit zf 1.5 gar keine probleme, egal ob mit vererbungen, implemetierungen oder komponentenentwicklung. was die modularität von applikationen angeht: zf unterstützt auch module innerhalb einer applikation, mal genauer nachgeschaut?! ;)

    zu 2: gemessen daran, das die version des hier diskutierten standes 0.6 war denke ich ist es mehr als logisch, das es "bessere" frameworks als zf gegeben hat :) ich denke mal, das da persönliche vorlieben laut gemacht wurden. ich beschäftige mich jetzt seit 3 monaten sehr genau (an der stelle ein lob an das buch von carsten möhrke) mit zf und muss (persönliche meinung) sagen, das es besser ist als z. b. cake oder ähnlichem.

    zu 3: um gottes willen, was hat euch smarty getan?! :D man bedenke dazu eins: smarty ist in php geschrieben, natürlich ist das nur ne schönere art und weise php-code in html einzubetten. aber für otto-normalprogrammierer reicht das allemal aus, es wird von php propagiert und ist somit recht verbreitet. und ich würde mal behaupten, das es für jeden designer leichter ist, "mal eben schnell" ein paar smarty-tags zu lernen als beispielsweise xslt zu lernen.

    wobei ich zugeben muss dass das derzeitige projekt, an dem ich mitarbeite komplett mit xml/xslt umgesetzt wird und das sehr genial ist - aber ohne zweifel eine sch* arbeit für den designer. bei uns macht das ein programmierer (xml + xslt + css), und selbst der verzweifelt manchmal daran. eine 100%ige trennung von code und template wird man aber nur dadurch erreichen ...

    kleines persönliches fazit:
    eure argumente haben alle etwas für sich, aber ich denke, ich habe meine meinung dazu klar dargelegt. hier scheinen sich eine kluge leute zu tummeln, aber teilweise zeigen sich da etwas festgefahrene meinungen. zf bietet eine fülle von core-elementen, mit denen sich schnell und flexibel alle arten von applikationen (auch kommerzielle) erstellen lassen. man sollte net die hybris haben zu behaupten, zf könne nichts richtig gut weil man sowas wie ein login net vergekaut bekommt. dafür ist zf net gemacht worden ... :)

    ein kleines "über mich" zum abschluss:
    ich habe vor 5 jahren eine ausbildung zu mediengestalter digitale medien angefangen und diese als fachinformatiker anwendungsentwicklung abgeschlossen. ich arbeite seitdem als entwickler für internet-anwendungen (zahlungssysteme, communities, mmogs). daher auch meine meinung bezüglich smarty, es ist einfacher einem grafiker/html-schubser zu erklären, was {foreach} ist als ein schwanz an xslt-anweisungen. zu meinen kenntnissen gehören php, javascript, html/xhtml/xml und mysql. derzeit bereite ich mich auf meine zce-zertifizierung vor und beschäftige mich nebenher mit zf 1.5

    gruß labschi

  52. Heiko sagt:

    Hi Labschi

    Es ist schon wieder 9 Monate her nach meinem letzten Posting! (wie die Zeit vergeht und wieder mal spät abends)

    Labschi, ZF mag jetzt in der Version 1.5 erhältlich sein. Als rein kommerzieller Programmierer habe ich mit ZF, seid meinem letzten Posting, nie wieder gearbeitet. Was ich früher nicht konnte wurde verspielt und mein Interesse ist gleich NULL. (gleiches gilt für SMARTY)

    OpenSource Projekte mögen gut und schön sein und haben bestimmt auch Ihren Anreiz. Für eine kommerzielle Programmierung verlangen Kunden aber etwas mehr. Leider gibt es in jeder Programmiersprache viele Leute die für "Just for Fun" programmieren. Wir wissen aber alle, dass es von diese Leute nur kurzfristig am Markt sind.

    ZF und Smarty sind für meine Arbeiten nach vie vor nicht relevant. XSLT ist Standard -> Smarty nicht. PHP kann OOP programmiert werden, SF ist das meiner Meinung aber nicht.

    Lg. Heiko

  53. Labschi sagt:

    hallo heiko,
    das sollte ja kein persönlicher angriff auf deine meinung werden, ich habe ja immer wieder betont das ihr über eine alte version diskutiert etc :)

    -> "Als rein kommerzieller Programmierer ..."
    was verstehst du unter "kommerzieller programmierer"?! ich arbeite nicht "just for fun" mit php, sondern habe schon an (kommerziellen, immer noch im einsatz befindlichen, stabilen) finanz-anwendungen gearbeitet, die damit programmiert wurden. und ich behaupte einfach mal das zf durchaus in der lage ist, mir bei großen teilen meiner arbeit zu helfen.

    jeder hat seine herangehensweise an projekte, da gibt es kein falsch oder richtig.
    aber ich denke, das es einem kunden egal ist, mit was ich sein projekt programmiere, solange das produkt das tut, wofür es ausgelegt wurde, weswegen ich deine argumentation mit dem wörtchen "kommerziell" gar nicht nachvollziehen kann. "just for fun" programmiert, glaube ich, keiner freiwillig. aber wieso denn immer fertige produkte benutzen, die u.u. oversized sind, teuer geld kosten und mich je nach dem später mal wieder in abhängigkeiten treibt, die ich vermeiden möchte.

    zf ist ein CORE-framework, für mich heißt dass das ich eben NICHT fertige komponenten verwende sondern diese selbst entwickle und auf meine bedürfnisse anpassen kann. das ich dafür nichts bezahlen muss ist doch ein netter nebeneffekt :)

    -> "PHP kann OOP programmiert werden, SF ist das meiner Meinung aber nicht."
    was meinst du mit SF?

    lg labschi

  54. Zend Studio for Eclipse und Zend Framework - php.de sagt:

    [...] ich den überhaupt? ) sondern in meine htdocs von xampp erstellt. Ich wollte dazu ein einfaches Zend Framework tutorial machen. Ich weis dieses tutorial ist für eine viel ältere ZF Version und auch nicht für das [...]

  55. Zend Framework Help » Blog Archiv » Herzlich Willkommen! sagt:

    [...] möchte ich das fantastische - aber leider auf eine sehr alte ZF Version basierende - Tutorial von Ralf Eggert der (momentan) aktuellen Version (1.7) anpassen. Tags » Autor: Uwe E. Schirm Datum: [...]

  56. Zend Framework Help » Blog Archiv » Zend Framework Tutorial für Anfänger sagt:

    [...] Dieses Tutorial ist eine Aktualisierung des Tutorials von Ralf Eggert. [...]

  57. Internetagentur sagt:

    Hallo,

    wo findet man eine genaue Anleitung der API für dieses Framework? Gibt es die vielleicht auch in deutsch?

  58. Almir sagt:

    Hallo Ralf, ich bedanke mich zunächst für diesen tollen Blog und finde das sehr nett was Du hier betreibst.
    Ich habe Heute endlich mein neues Buch erhalten "Das Zend Framework" (konnte es kaum erwarten) und bisch schon dran es zu lesen :) resp. das Kapitel Schnellstart Kzu verstehen und umzusetzen.
    Wobei ich die Ordnerstruktur von der CD entpackt habe, mir das neuste ZF 1.9.5 heruntergeladen und das Verzeichnis /library entpackt habe. Beim Aufruf von http://localhost/myapp/public erscheint eine Warnung (Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in C:\xampp\htdocs\myapp\library\Zend\Loader.php on line 207). Habe mir dann den Anhang A.1, Zend_Application mal angeschaut, aber ich werd einfach nicht schlau. bzw sehe den Wald vor lauter Bäume nicht mehr.

    Kannst du aufgrund der Fehlermeldung erkennen was ich falsch mache?
    Vielen Dank schon mal im Voraus.

    Gruss Almir

  59. Ralf Eggert sagt:

    Hallo Almir,

    das Buch basiert auf dem ZF 1.7.4. Seitdem gab es einige Änderungen. Schau mal hier, dort habe ich es beschrieben:

    http://www.zendframeworkbuch.de/2009/07/22/skripte-angepasst-fur-zend-framework-1-8-4/

    Danke und Gruss,

    Ralf

Hinterlasse eine Antwort