Zend Framework von Grund auf neu
German (Deutsch) translation by Katharina Grigorovich-Nevolina (you can also view the original English article)
Sind Sie bereit, Ihre PHP-Kenntnisse auf die nächste Stufe zu heben? In dieser neuen "Von Grund auf neu"-Serie konzentrieren wir uns ausschließlich auf Zend Framework, ein von Zend Technologies entwickeltes Full-Stack-PHP-Framework. Der erste Teil unserer Tutorial-Reihe lautet "Erste Schritte mit Zend Framework".
Einführung: Was ist Zend Framework?
Zend Framework ist ein Full-Stack-PHP-Framework, das von Zend Technologies erstellt wurde. Für diejenigen, die mit dem Unternehmen nicht vertraut sind, bietet Zend Technologies Webentwicklern verschiedene Tools, die sie bei ihrer Arbeit unterstützen. Bemerkenswerte Beispiele sind Zend Server, ein Webanwendungsserver zum Ausführen und Verwalten von PHP-Anwendungen, und Zend Studio, eine voll funktionsfähige IDE für PHP. Unnötig zu erwähnen, dass Zend sehr stark in PHP investiert ist, weshalb Zend Framework ein großartiges Tool ist, um das Arsenal eines jeden Entwicklers zu erweitern.

Zend: Die PHP Company
Zend Framework besteht aus vielen verschiedenen Bibliotheken und Klassen. Dies ist ein zweischneidiges Schwert - zum einen erleichtert es Entwicklern, Bibliotheken auszuwählen, wenn sie nur einige benötigen. Der Nachteil ist, dass das Einrichten des Frameworks am Anfang nicht sehr einfach ist, da es sich nur um eine Reihe von Klassen handelt. Abgesehen davon verfügt Zend über ein Gerüstwerkzeug und eine empfohlene Methode zum Einrichten Ihrer Anwendungsstruktur, die wir in diesem speziellen Tutorial diskutieren werden.
In dieser Reihe von Tutorials werden wir uns mit der Funktionsweise von Zend Framework befassen und lernen, wie man die verschiedenen Komponenten verwendet. Bis zum Ende der Serie haben wir eine brandneue Website für soziale Netzwerke erstellt - mit Basisprofil, Netzwerk, Statusaktualisierungen und sogar API-Funktionen. Und jetzt, ohne weiteres, fangen wir an!
Schritt 1: Laden Sie Zend Framework herunter
In erster Linie müssen wir Zend Framework herunterladen. Derzeit ist die neueste Version 1.11.11. Gehen Sie zunächst zur Zend Framework-Website http://framework.zend.com und klicken Sie auf die Schaltfläche Download Now.



Zend Framework Link Download Now
Dies sollte Sie zu einem Bildschirm mit einer Liste verschiedener Downloads für Zend Framework führen. Wenn Sie in Zukunft die Zend Framework-Bibliothek aktualisieren, sollten Sie die Minimal-Version herunterladen, die nur die ZF-Dateien enthält. Laden Sie zunächst Zend Framework 1.11.11 Full herunter, das die Bibliothek mit allen Demos und Tests enthält. Es enthält auch das Gerüstwerkzeug, das wir später im Tutorial verwenden werden.



Zend Framework Download-Liste
Schritt 2: Richten Sie Ihre Zend Framework-Umgebung ein
Extrahieren Sie nach Abschluss des Downloads die Dateien auf Ihren Desktop, um eine klare Ansicht des Inhalts zu erhalten. Im Inneren gibt es viele Ordner, aber für die Zwecke dieses Tutorials benötigen wir nur zwei - den bin-Ordner und den library-Ordner.


Legen Sie aus organisatorischen Gründen den Ordner bin in Ihren PHP-Ordner und benennen Sie ihn in zend-bin um. Meins ist D:\Development\PHP, daher sollte das Endergebnis D:\Development\PHP\zend-bin sein.


Gehen Sie in den library-Ordner und Sie sollten einen Zend-Ordner finden. Platzieren Sie dies inside your PHP's include_path. Für mich ist das D:\Development\PHP\Includes. Wenn Sie es also dorthin verschieben, sollte dies zu D:\Development\PHP\Includes\Zend führen. Denken Sie daran, den Zend-Ordner in den library-Ordner zu kopieren, nicht in den library-Ordner.


Zuletzt müssen wir das Zend CLI-Tool im Ordner zend-bin so konfigurieren, dass es in jedem Verzeichnis funktioniert. Dazu müssen wir das Verzeichnis zur Variablen Path System hinzufügen, damit wir es über die Eingabeaufforderung aufrufen können.
Klicken Sie mit der rechten Maustaste auf den Link Computer unter Start, um das Fenster System Information zu öffnen. Klicken Sie hier auf Advanced System Settings.


Klicken Sie im folgenden Fenster auf die Schaltfläche Environment Variables. Suchen Sie im neuen Fenster in der Liste der System variables nach der Path-Variablen. Klicken Sie auf Edit und fügen Sie am Ende Ihren Speicherort für das zend-bin-Verzeichnis hinzu.


Wenn Sie fertig sind, klicken Sie einfach auf OK, um es zu speichern.
Um sicherzustellen, dass unsere Konfiguration funktioniert, öffnen Sie eine Eingabeaufforderung und führen Sie den Befehl zf --help aus. Dies sollte die Befehle ausgeben, die wir mit dem Zend CLI-Tool verwenden können. Wenn dies nicht der Fall ist, starten Sie Ihren Computer neu, um sicherzustellen, dass die Systemvariablen implementiert sind.


Darüber hinaus befindet sich im Ordner zend-bin eine zf.sh-Datei. Dies gilt für Unix-basierte Betriebssysteme wie OSX oder Linux. Richten Sie einfach die Umgebungsvariablen entsprechend ein, um das gleiche Ergebnis zu erzielen.
Schritt 3: Erstellen Sie Ihr erstes Zend Framework-Projekt
Jetzt beginnen wir mit den eigentlichen Entwicklungsarbeiten an unserem Zend Framework-Projekt. Wechseln Sie an der Eingabeaufforderung zu dem Verzeichnis, in dem Sie Ihre Projektdateien ablegen möchten (idealerweise sollte dies das Verzeichnis sein, auf das Ihr lokaler Webserver verweist). Für mich ist es D:\Development\htdocs\nettuts, daher führe ich den Befehl cd D:\Development\htdocs\nettuts an meiner Eingabeaufforderung aus.


Geben Sie den folgenden Befehl ein, um unser Basis-Zend-Framework-Projekt zu erstellen: zf create project thenextsocial. Im Befehl ist thenextsocial der Name unseres Projekts. Wenn Sie mit dem Erstellen eigener ZF-Projekte beginnen, ersetzen Sie diese durch den entsprechenden Projektnamen.


Überprüfen Sie jetzt den Inhalt des Ordners - Sie sollten einen neuen thenextsocial Ordner sehen. Innerhalb des Ordners sollten mehrere Projektdateien angezeigt werden. Am wichtigsten ist, dass Sie einen public Ordner sehen, der der einzige öffentlich zugängliche Ordner über den Browser sein sollte. Um dies zugänglich zu machen, müssen wir jetzt einen VirtualHost für das Projekt einrichten.


Öffnen Sie zum Einrichten eines VirtualHost die Datei httpd.conf Ihres Apache. Fügen Sie im Inneren den folgenden Code hinzu:
1 |
<VirtualHost *:80>
|
2 |
ServerName thenextsocial.local |
3 |
DocumentRoot "D:/Development/htdocs/nettuts/thenextsocial/public/"
|
4 |
<Directory "D:/Development/htdocs/nettuts/thenextsocial/public/"> |
5 |
</Directory> |
6 |
</VirtualHost> |
Sie müssen die Domain auch zu Ihrer lokalen hosts-Datei hinzufügen. Für Windows-Benutzer sollte es sich in C:\Windows\System32\Drivers\etc. Befinden. Für Unix-basierte Betriebssystembenutzer sollte es sich in /etc/hosts befinden. Öffnen Sie es und fügen Sie thenextsocial.local hinzu und zeigen Sie auf 127.0.0.1




Starten Sie Ihren Webserver neu. Wenn Sie http://thenextsocial.local in Ihrem Browser öffnen, sollte es bereits auf Ihr Zend Framework-Projekt verweisen.


Herzlichen Glückwunsch Sie haben Ihr erstes Zend Framework-Projekt erfolgreich erstellt!
Schritt 4: Erfahren Sie mehr über die MVC-Struktur von Zend Framework
Was genau ist dieses MVC-Muster?
Aus der Schnellstart-Einführung von Zend Framework:



Das MVC-Muster (Model-View-Controller)
Bild mit freundlicher Genehmigung von http://framework.zend.com
Das MVC-Muster modelliert diese Trennung von Bedenken gut.
Was genau ist dieses MVC-Muster, über das alle reden, und warum sollte es Sie interessieren? MVC ist viel mehr als nur ein aus drei Buchstaben bestehendes Akronym(TLA), das Sie jederzeit herauspeitschen können, wenn Sie intelligent klingen möchten. Es ist zu einem Standard im Design moderner Webanwendungen geworden. Und das aus gutem Grund. Der meiste Webanwendungscode fällt unter eine der folgenden drei Kategorien: Präsentation, Geschäftslogik und Datenzugriff. Das MVC-Muster modelliert diese Trennung von Bedenken gut. Das Endergebnis ist, dass Ihr Präsentationscode in einem Teil Ihrer Anwendung mit Ihrer Geschäftslogik in einem anderen und Ihrem Datenzugriffscode in einem anderen Teil konsolidiert werden kann. Viele Entwickler haben diese genau definierte Trennung als unverzichtbar für die Organisation ihres Codes angesehen, insbesondere wenn mehr als ein Entwickler an derselben Anwendung arbeitet.
Das Wesentliche dabei ist: Modelle enthalten unsere Geschäftslogik, Ansichten enthalten unseren HTML-Code, und Controller halten alles auf dem Laufenden und teilen sowohl den Ansichten als auch den Modellen mit, was zu tun ist.
MVC in einer Zend Framework-basierten Anwendung
Das Gute an der Verwendung des ZF-CLI-Tools ist, dass es Ihre Anwendung automatisch so einrichtet, dass die MVC-Klassen von Zend Framework verwendet werden, sodass Sie schneller mit der Arbeit an Ihren Projekten beginnen können.
Wenn Sie zu unserem Projekt zurückkehren, öffnen Sie den Ordner thenextsocial/application und Sie sollten - Sie haben es erraten - models, views, and controllers-Ordner sehen.


Öffnen Sie in diesen Ordnern controller/IndexController.php und views/scripts/index/index.phtml. Wenn Sie sich diese beiden Dateien genau ansehen, werden Sie feststellen, dass die oben gezeigte Homepage (Welcome to Zend Framework) tatsächlich von diesen beiden Dateien ausgeführt wird. Wie nennt Zend Framework diese?
Erläutern des Standardanwendungsroutings von Zend Framework
Standardmäßig haben alle URLs in Ihrem Zend Framework-Projekt ein bestimmtes Format:
1 |
[url]/[controller]/[action]/[GET parameter 1 value]/.../[GET parameter x]/[GET parameter x value] |
Eine weitere Vorgabe ist, dass, wenn kein Controller und/oder keine Aktion angegeben wird, beide standardmäßig auf den index Das Aufrufen von http://thenextsocial.local ist also dasselbe wie das Aufrufen von http://thenextsocial.local/index/index oder sogar http://thenextsocial.local/index.



Standard-Routing-Zyklus von Zend Framework
Zend Framework nimmt dann den Controller-Wert und sucht ihn im controllers-Ordner, nämlich in unserer IndexController.php-Datei. In der Controller-Datei wird unser Aktionswert verwendet und die Methode indexAction ausgeführt. Nachdem die Aktion in der Steuerung ausgeführt wurde, rendert ZF die Ansichtsdatei im Ansichtsordner automatisch im folgenden Format:
1 |
../application/views/scripts/[controller]/[action].phtml |
Aus diesem Grund wird die Seite Welcome to Zend Framework angezeigt, da index.phtml den HTML-Code für diese Seite enthält.
Schritt 5: Übergeben Sie Daten von einem Controller an seine Ansicht
Es ist relativ einfach, Daten von einem Controller an seine Ansicht zu übergeben. Jedes Controller-Objekt wird standardmäßig so erstellt, dass ein Ansichtsobjekt damit instanziiert wird. Der Zugriff auf dieses Ansichtsobjekt erfolgt über den Accessor $this->view.
Um Daten an die Ansicht zu senden, weisen wir dem Ansichtsobjekt einfach Variablen zu und geben ihnen Werte wie folgt:
1 |
$this->view->variable_name = "variable value"; |
Wenn Sie zu unserem Projekt zurückkehren, öffnen Sie IndexController.php im Ordner controllers und geben Sie in der Methode indexAction das current date and time an unsere Ansicht weiter.
1 |
public function indexAction() |
2 |
{
|
3 |
//action body
|
4 |
$this->view->current_date_and_time = date('M d, Y - H:i:s'); |
5 |
}
|
Wir müssen dann unsere view bearbeiten, um diese Variable auszugeben. Öffnen Sie dazu die Datei index.phtml im Ansichtsordner und fügen Sie den folgenden Code hinzu:
1 |
... |
2 |
... |
3 |
... |
4 |
<div id="welcome"> |
5 |
<h1>Welcome to the <span id="zf-name">Zend Framework!</span></h1> |
6 |
|
7 |
<hr /><h2>It is now <?php echo $this->current_date_and_time; ?></h2> |
8 |
|
9 |
<h3>This is your project's main page</h3> |
10 |
... |
11 |
... |
12 |
... |
Wie Sie sehen können, ist der Zugriff auf die Variable aus der Ansichtsdatei heraus so einfach wie das Echo der Variablen über den Befehl echo PHP, echo $this->variable_name;.
Aktualisieren Sie jetzt Ihren Browser und Sie sollten das aktuelle Datum und die aktuelle Uhrzeit auf der Seite sehen.


Schritt 6: Erstellen Sie ein Layout in Zend Framework
Möglicherweise haben Sie bemerkt, dass die HTML-Skripte in unserem Projekt nur Fragmente und keine vollständigen HTML-Seiten sind, sodass ihnen html-, head-, and body-Tags fehlen. Dies ist eigentlich kein Fehler, sondern wurde beabsichtigt - auf diese Weise geben alle Aktionen Inhalte nur relativ zur Aktion selbst zurück, nicht zur gesamten Anwendung. Durch die Erstellung eines globalen Layouts für unsere Website können wir einen konsistenten HTML-Container für alle unsere HTML-Skripte implementieren.
Um zu beginnen, öffnen wir erneut unsere Eingabeaufforderung und geben den folgenden Befehl aus. Stellen Sie sicher, dass Sie sich im thenextsocial Ordner befinden.
1 |
zf enable layout |



Aktivieren eines Layouts in unserem Zend Framework-Projekt
Die Ausgabe nach dem Ausführen des Befehls deutet darauf hin, dass eine Layoutdatei mit dem Namen layout.phtml im Ordner application/layouts/scripts erstellt wurde. Öffnen wir es und schauen wir uns an, was drin ist:



Inhalt von layout.phtml
Der Befehl echo $this->layout()->content; ist eigentlich die Layoutdatei, die den gesamten Inhalt der Ansicht wiedergibt. Um dann unser globales Layout zu erstellen, müssen wir diesen Befehl mit unserem HTML-Code umschließen:
1 |
<!DOCTYPE html>
|
2 |
<html>
|
3 |
<head>
|
4 |
<title>The Next Social</title> |
5 |
<!-- Load Twitter Bootstrap and jQuery -->
|
6 |
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css"> |
7 |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> |
8 |
</head>
|
9 |
<body>
|
10 |
<div id="site_container"> |
11 |
<div id="header"> |
12 |
<p>This is the header!</p> |
13 |
</div>
|
14 |
<div id="content"> |
15 |
<!-- Echo our content here! -->
|
16 |
<?php echo $this->layout()->content; ?>
|
17 |
</div>
|
18 |
<div id="footer"> |
19 |
<p>This is the footer!</p> |
20 |
</div>
|
21 |
</div>
|
22 |
</body>
|
23 |
</html>
|
Aktualisieren Sie nun Ihren Browser erneut und Sie sollten die Änderungen sehen:



Unsere Indexaktion mit zugehörigem Layout
Schritt 7: Erstellen Sie neue Controller und Aktionen
Mit dem ZF CLI-Tool können wir sehr schnell neue Controller und Aktionen erstellen. Führen Sie dazu einfach den folgenden Befehl aus:
1 |
zf create controller About |
About ist der Name unseres neuen Controllers. Wenn Sie im controllers-Ordner nachsehen, sollte eine AboutController.php-Datei angezeigt werden, die angibt, dass unsere Controller-Generierung erfolgreich war. Sie können auch den Inhalt des views-Ordners überprüfen und feststellen, dass eine neue Datei about/index.phtml für unseren About-Controller erstellt wurde!



Erstellen unseres About-Controllers
Wir sollten dann in der Lage sein, auf diesen Controller zuzugreifen, indem wir zu http://thenextsocial.local/about gehen
Standardmäßig erstellt das ZF-CLI-Tool eine Aktion für unseren Controller, die indexAction. Aber was ist, wenn wir dem Controller andere Aktionen hinzufügen möchten?
Neue Aktion erstellen
Das Erstellen einer neuen Aktion ist ebenso einfach wie das Erstellen eines neuen Controllers. Führen Sie dazu einfach den folgenden Befehl aus:
1 |
zf create action us About |
Dadurch wird effektiv eine neue Aktion erstellt, die us im About-Controller genannt wird. Wenn Sie die Datei AboutController.php überprüfen, sollten Sie eine neue usAction()-Methode sowie eine neue Datei us.phtml im Ordner about view sehen.



Erstellen unserer us-Aktion im About-Controller
Wie Sie sehen, verlassen wir uns stark auf das ZF-CLI-Tool, um Aktionen und Controller zu generieren. Das manuelle Erstellen funktioniert auf die gleiche Weise. Das ZF CLI-Tool macht es einfach einfacher und erledigt automatisch das schwere Heben für uns.
Schlussfolgerung
Nachdem Sie dieses Tutorial gelesen haben, sollten Sie bereits Folgendes wissen:
- Wo Sie die neuesten Zend Framework-Dateien herunterladen können
- Wo und wie wird es lokal eingerichtet?
- Erstellen Sie Ihr erstes Zend Framework-Projekt und richten Sie einen VirtualHost auf Ihrem Webserver ein
- Wie genau Zend Framework das MVC-Muster und sein Standardanwendungsrouting implementiert
- Übergeben von Daten von einem Controller an seine Ansicht
- Erstellen eines Site-weiten Layouts für Ihre Zend Framework-Anwendung
- Neue Controller und Aktionen erstellen
Aus diesem Wissen sollten Sie leicht statische Webseiten erstellen können. Aber wir alle wissen, dass das nicht genug ist!
In unserem nächsten Tutorial erfahren Sie alles darüber, wie Sie den wichtigsten Teil einer Webanwendung, das model, erstellen und The Next Social zu einer dynamischen Site machen!
Bis dahin bleibt dran!
P.S. Ich habe thenextsocial.com für die Zwecke dieses Projekts registriert. Besuchen Sie die Site einfach regelmäßig und Sie werden sehen, wie sie sich von einer einfachen Site zu einer voll funktionsfähigen Social-Networking-Site verwandelt, die wir am Ende dieser Serie haben möchten. Darüber hinaus ist der gesamte in der Serie erstellte Quellcode auch in diesem GitHub-Repository verfügbar!



