1. Code
  2. PHP

Zend Framework von Grund auf neu

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".
Scroll to top

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: The PHP Company

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 Download Now linkZend Framework Download Now linkZend Framework Download Now link

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 listZend Framework download listZend Framework download list

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.

Zend Framework 1.11.11 Full contentsZend Framework 1.11.11 Full contentsZend Framework 1.11.11 Full contents

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.

bin folder locationbin folder locationbin folder location

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.

Zend folder locationZend folder locationZend folder location

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.

Windows System InformationWindows System InformationWindows System Information

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.

Windows System VariablesWindows System VariablesWindows System Variables

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.

Testing the ZF CLI toolTesting the ZF CLI toolTesting the ZF CLI tool

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.

Go to your htdocs directoryGo to your htdocs directoryGo to your htdocs directory

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.

Create your Zend Framework projectCreate your Zend Framework projectCreate your Zend Framework project

Ü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.

The Next Social contentsThe Next Social contentsThe Next Social contents

Ö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

Hosts file locationHosts file locationHosts file location
Editing the local hosts fileEditing the local hosts fileEditing the local hosts file

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

The Next Social home pageThe Next Social home pageThe Next Social home page

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 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.

MVC FoldersMVC FoldersMVC Folders

Ö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.

Zend Framework default routing cycleZend Framework default routing cycleZend Framework default routing cycle

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.

Passing data from a Controller to the ViewPassing data from a Controller to the ViewPassing data from a Controller to the View

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
Enabling a layout in our Zend Framework projectEnabling a layout in our Zend Framework projectEnabling a layout in our Zend Framework project

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:

layout.phtml contentslayout.phtml contentslayout.phtml contents

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:

Our index action with accompanying layoutOur index action with accompanying layoutOur index action with accompanying layout

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!

Creating our About controllerCreating our About controllerCreating our About controller

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.

Creating our us action in the About controllerCreating our us action in the About controllerCreating our us action in the About controller

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!