Zend_Application Quick Start
Es gibt zwei Wege um mit Zend_Application anzufangen, und diese
hängen davon ab wie man das Projekt beginnt. In jedem Fall beginnt man immer mit der
Erstellung einer Bootstrap Klasse und einer diesbezüglichen
Konfigurationsdatei.
Wenn man plant Zend_Tool zu verwenden um das eigene Projekt zu
erstellen sollte man anbei weiterlesen. Wenn man Zend_Application zu
einem existierenden Projekt hinzufügen will, sollte man hier weiterlesen.
Zend_Application in der eigenen Anwendung hinzufügen
Die Basis von Zend_Application ist wirklich einfach:
-
Eine application/Bootstrap.php Datei mit der Klasse
Bootstrap erstellen.
-
Eine Konfigurationsdatei
application/configs/application.ini mit der
Basiskonfiguration für Zend_Application erstellen.
-
Ändern von public/index.php um
Zend_Application anzupassen.
Zuerst die eigene Bootstrap Klasse erstellen. Erzeuge eine Datei
application/Bootstrap.php mit dem folgenden Inhalt:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}
Jetzt die Konfiguration erstellen. Für dieses Tutorial, verwenden wir eine
Konfiguration im INI Stil; man kann natürlich genauso eine
XML oder PHP Konfigurationsdatei verwenden.
Erstelle eine Datei application/configs/application.ini, und füge
den folgenden Inhalt ein:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
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
Jetz verändern wir das Gateway Skript public/index.php. Wenn die
Datei nicht existiert erstellen wir Sie; andernfalls ersetzen wir Sie mit dem folgenden
Inhalt:
// Define path to application directory
// Define application environment
: 'production'));
// Typischerweise wird man das eigene library/ Verzeichnis zum include_path
// hinzufügen wollen, speziell wenn es die ZF Installation enthält
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
Es ist zu beachten das die Environment Konstante der Anwendung nach einer Environment
Variable "APPLICATION_ENV" sucht. Wir empfehlen diese im Web Server Environment zu
setzen. In Apache kann man diese entweder in der vhost Definition setzen, oder in der
.htaccess Datei. Wir empfehlen den folgenden Inhalt in der Datei
public/.htaccess:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Note: Mehr über mod_rewrite lernen
Die obigen Rewrite Regeln erlauben es auf jede Datei im Document Root des eigenen
virtuellen Host's zuzugreifen. Wenn es Dateien gibt die man auf diesem Weg nicht
bereitstellen will, muss man in seinen Regeln restriktiver sein. Gehe zur
Apache WebSite und » lerne mehr über
mod_rewrite.
An diesem Punkt, wurde alles gesetzt um die Vorteile von
Zend_Application zu verwenden.
Hinzufügen und Erstellen von Ressourcen
Wenn man den Anleitungen von oben gefolgt ist, dann verwendet die Bootstrap Klasse
einen Front Controller, und wenn Sie gestartet wird, wird Sie den Front Controller
ausführen. Trotzdem wird man, in allen Fällen, etwas mehr Konfiguration als das
benötigen.
In diesem Kapitel werden wir zwei Ressourcen zur anwendung hinzufügen. Zuerst werden
wir Layouts erstellen, und dann werden wir ein View Objekt anpassen.
Eine der von Zend_Application angebotenen Standardressourcen ist
die "layout" Ressource. Diese Ressource erwartet, das man Konfgurationswerte definiert,
welche dann verwendet werden um die Zend_Layout Instanz zu
konfigurieren.
Um Sie zu verwenden müssen wir die Konfigurationsdatei aktualisieren.
[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"
; ADD THE FOLLOWING LINES
resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
Wenn man es nicht bereits getan hat, muß man das Verzeichnis
application/layouts/scripts/ und die Datei
layout.phtml in diesem Verzeichnis erstellen. Ein gutes Layout zum
Starten ist das folgende (und ist mit der View Ressource die als nächstes besprochen
wird verbunden):
<?php echo $this->
doctype() ?>
<html>
<head>
<?php echo $this->
headTitle() ?>
<?php echo $this->
headLink() ?>
<?php echo $this->
headStyle() ?>
<?php echo $this->
headScript() ?>
</head>
<body>
<?php echo $this->
layout()->
content ?>
</body>
</html>
An diesem Punkt, hat man ein funktionierendes Layout.
Jetzt fügen wir eine eigene View Ressource hinzu. Wenn die View initialisiert wird,
will man den HTML DocType und einen Standardwert für den im
HTML Kopf zu verwendenden Titel setzen. Das kann durch die Änderung
der Bootstrap Klasse und dem Hinzufügen einer Methode gemacht
werden:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initView()
{
// Initialize view
$view = new Zend_View();
$view->doctype('XHTML1_STRICT');
$view->headTitle('My First Zend Framework Application');
// Add it to the ViewRenderer
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper(
'ViewRenderer'
);
$viewRenderer->setView($view);
// Return it, so that it can be stored by the bootstrap
return $view;
}
}
Diese Methode wird automatisch ausgeführt wenn das Bootstrap der Anwendung ausgeführt
wird und stellt sicher das die View so initialisiert wird wie die Anwendung das
benötigt.
Nächste Schritte mit Zend_Application
Das oben erwähnte reicht um mit Zend_Application zu beginnen und
das Bootstrap der eigenen Anwendung zu erstellen. Von hier an, sollte man beginnen
Ressource-Methoden zu erstellen, oder, für maximale Wiederverwendbarkeit,
Ressource-Plugin Klassen. Lesen Sie weiter, um mehr zu lernen!