-
Ein neues Projekt auf der Kommandozeile erstellen
zf create project [name]
-
Autoloader einrichten
- require_once 'Zend/Loader/Autoloader.php';
- $loader = Zend_Loader_Autoloader::getInstance();
-
Einen weiteren Namespace-Prefix mit dem Autoloader nutzen
$loader->registerNamespace('Foo_');
-
Empfohlener Ort für Layouts
application/layouts/scripts/
-
Wo wird Zend_Layout initialisiert?
application/configs/application.ini
-
Welche Parameter in der Konfiguration werden für Zend_Layout benötigt?
Verzeichnis der Layout-Scripts: resources.layout.layoutPath
Der Name des zu nutzenden Layouts: resources.layout.layout
-
Inhalt eines View-Scripts im Layout ausgeben
$this->layout()->content
-
Das Layout-Object in einem View-Script erhalten
$layout = $this->layout();
-
Das Layout-Object in einem Action-Controller erhalten
$layout = $this->_helper->layout();
-
Das Layout-Object in einer Klasser erhalten, die Zugriff auf das Bootstrap-Objekt hat
$layout = $bootstrap->getResource('Layout');
-
Das Layout-Object erhalten, wo kein Zugriff auf das Bootstrap-Objekt möglich ist
$layout = Zend_Layout::getMvcInstance;
-
Eine Variable im Layout setzen
$layout->somekey = 'foo';
oder
$layout->assign('someotherkey', 'bar');
-
Eine selbstgesetzte Variable aus dem Layout ausgeben
echo $layout->somekey;
-
Die Anzeige des Layouts unterdrücken
$layout->disableLayout();
-
Ein anderes Layout wählen
- // Nutzt das Skript 'alternate.phtml'
- $layout->setLayout('alternate');
-
Eine weitere Ressource zu einer Application hinzufügen
In der Bootstrap-Klasse eine _init...-Methode anlegen
-
Wie wird eine Bootstrap-Class erzeugt?
Erweitern von Zend_Application_Bootstrap_Bootstrap oder durch Implentierung des Interfaces Zend_Application_Bootstrap_Bootstrapper
-
Was muss der Bootstrap-Class bei der Implementierung übergeben werden?
Aktuelles Environment und Optionen
-
Eine Resource-Methode der Bootstrap-Klasse "bootstrappen"
$bootstrap->bootstrap('Resource');
-
Mehrere Resource-Methoden der Bootstrap-Klasse "bootstrappen"
$bootstrap->bootstrap(array('foo', 'bar'));
-
Alle Resource-Methoden der Bootstrap-Klasse "bootstrappen"
$bootstrap->bootstrap();
-
Was sind Resourcen-Plugins?
Klassen, die einen eigene Methoden für die Resourcen-Initialisierung mitbringen.
-
Wie werden Resourcen-Plugins genutzt?
Ihr Name wird in den Optionen für das Application-Objekt übergeben.
-
Überprüfen, ob eine Resource in der Resource-Registry enthalten ist
$bootstrap->hasResource('view');
-
Eine Resource aus der Resource-Registry erhalten
$bootstrap->getResource('view');
-
Eine Resource in der Resource-Registry speichern
Resource in der _init...-Methode als Rückgabewert verwenden
-
Was braucht ein eigenes Resource-Plugin?
Implementierung von Zend_Application_Resource_Resource oder Erweiterung von Zend_Application_Resource_ResourceAbstract
-
Application-Autoloading ermöglichen
Angabe einer Option appnamespace mit dem Namespace aller Application-Ressourcen, bzw. der Bootstrap-Directory. Üblicherweise "Application"
-
Resource für die Datenbankverbindung
Zend_Application_Resource_Db
-
Zwei wichtige Parameter für Zend_Application_Resource_Db
- adapter: Adapter-Typ
- params: Konfigurations-Parameter für die Adapter-Instanz
- isDefaultTableAdapter
-
Die Ausführung ein einen anderen Controller weiterleiten
$this->_forward($action, $controller = null, $module = null, array(parameter) = null);
-
Einen Action Controller definieren
class FooController extends Zend_Controller_Action {}
-
Den ViewRenderer ausschalten
In der Init-Methode eines Action-Controllers:
$this->_helper->viewRenderer->setNoRender(true);
Für eine Action-Methode:
$this->_helper->viewRenderer->setNoRender();
-
Wo wird die Instanisierung eines Action-Controllers angepasst?
Nicht durch Überschreiben des Konstruktors, sondern in der init-Methode.
-
Pre- und Post-Dispatch Hooks im Action-Controller
Die Methoden:
preDispatch()
und
postDispatch()
-
Das Request-Objekt im Action-Controller erhalten
$this->getRequest()
-
Auf das Response-Objekt in einem Action-Controller zugreifen
$this->getResponse()
-
Auf Request-Parameter im Action-Controller zugreifen
$this->_getParam($key[, $defaultValue])
oder
$this->_getAllParams()
-
Wo werden View-Scripts per default erwartet?
Module/views/scripts/Controller/Action.phtml
-
Ein 302-Redirect im Action-Controller durchführen
$this->_redirect($url, array $options = array());
-
Wann führt $this->_forward(...) im Action-Controller die nächste Aktion aus?
Wenn in preDispatch() aufgerufen, bevor die aktuelle Aktion durchgeführt wird.
Wenn aber in einer Action-Methode aufgerufen, erst nachdem die Aktion zu Ende geführt wurde.
-
Bei einem $this->_redirect(...) den Http-Status-Code festlegen
Über die Option 'code' => 30x
-
Einen Action-Helper im Action-Controller erhalten
$this->_helper->getHelper('MyHelper')
oder:
$this->_helper->MyHelper
-
Gibt es einen bestimmten Helper für diesen Action-Controller?
$this->_helper->hasHelper('shortname')
-
Action-Controller Helper, um andere Ausgabeformate zu nutzen
$this->_helper->contextSwitch
-
AC-Helper, um kurze Nachrichten für den Nutzer zu speichern
$this->_helper->FlashMessenger
-
Eine Nachricht im FlashMessenger speichern
$_flashMessenger->addMessage('MessageText');
-
Nachrichten des Flash-Messengers erhalten
$_flashMessenger->getMessages()
-
AC-Helper für JSON-formierte Antworten
$this->_helper->json
-
Eine JSON-formierte Antwort mit einem AC senden
- $this->_helper->json($data)
- oder
- $this->_helper->json->sendJson($data)
-
Normales Verhalten des JSON-AC-Helpers (4 Schritte)
- 1. Layouts abstellen
- 2. ViewRenderer abstellen
- 3. Content-Type zu 'application/json' setzen
- 4. Die Antwort sofort senden
-
Wann wird die render()-Methode des ViewRenderers aufgerufen?
Jedesmal, wenn postDispatch() aufgerufen wird.
-
Eine Variable des view-Objekts im AC setzen
$this->view->foo = 'bar';
-
Ein anderes View-Script rendern als das der aktuellen Aktion
$this->_helper->viewRenderer->setRender('foo');
-
Wie wird das Respons-Objekt gesendet?
Der Front-Controller ruft $respons->sendRespons() auf, wenn er den Request abgearbeitet hat.
-
In einer AC-Aktion einen http-Header setzen
$this->getResponse()->setHeader($name, $value, $replace = false);
-
Die beiden Aufgaben des Response-Objekts
- 1. Alle http-Header und Message-Body sammeln und zum Client zurückgeben
- 2. Alle Fehler und Exceptions einsammeln, sie dann ausgeben oder vor dem Nutzer verstecken.
-
Exceptions, die bei der Ausführung des Front-Controllers auftraten, ausgeben
$front->renderExceptions()
-
Eine Variable im view-Skript sicher ausgeben
echo $this->escape($this->variable);
-
Ein view-Helper nutzen
$view->helperName()
-
View-Helper für Links im <head>
HeadLink Helper
-
Ein Stylesheet zum view hinzufügen
$view->headLink()->appendStylesheet($href, $media);
-
Eine Alternate-URL im view angeben
$view->headLink()->appendAlternate($href, $type, $title, $extras);
-
Die Links im <head>-Bereich in einem view-Skript rendern
echo $this->headLink();
-
View-Helper für MetaTags
HeadMeta Helper
-
Ein Meta-Tag im view-Skript hinzufügen
$view->headMeta()->appendName($name, $content);
-
View-Helper für Scripte im <head>
HeadScript Helper
-
Einen <script>-Tag zum view hinzufügen
$view->headScript()->appendFile($src, $type = 'text/javascript', $attrs = array());
-
View-Helper für das <title>-Tag
HeadTitle Helper
-
Den <title>-Placeholder erweitern
$view->headTitle('Segment');
-
Den Worttrenner für den <title>-Placeholder festlegen
$view->headTitle()->setSeperator(' | ');
-
Den Navigation-Container eines Navigation View Helpers festsetzen
setContainer()
-
Festlegen, welche Tiefe eine Seite mindestens haben muss, um vom Navigation View Helper abgebildet zu werden
setMinDepth()
-
Festlegen, welche Tiefe eine Seite maximal haben darf, um vom Navigation View Helper abgebildet zu werden
setMaxDepth()
-
Die tiefste aktive Seite eines gegebenen Nav. Containers mit dem Navigation View Helper finden
findActive($container, $minDepth, $maxDepth)
-
Einen Navigation Helper im view-Skript erstellen
- $container = new Zend_Navigation(array $pages);
- $view->navigation($container);
-
Eine Breadcrumbs-Navigation im view ausgeben
$view->navigation()->breadcrumbs()
-
Den Separator einer Breadcrumbs-Navigation im view setzen
$view->navigation()->breadcrumbs()->setSeparator($string);
-
Ein Menu im view ausgeben
$view->navigation()->menu();
-
Eine Sitemap im view ausgeben
$view->navigation()->sitemap();
-
Bevorzugter Weg, um eine Instanz von Zend_Translate mit dem Translate Helper zu nutzen
Durch die Registrierung in Zend_Registry
-
Einen mit Zend_Translate übersetzten Term im view-Script ausgeben
$view->translate('simple');
-
Einen weiteren Pfad und Namespace für view-Helper festlegen
$view->setHelperPath('/path', 'My_View_Helper')
-
Einen Adapter zu einer MySQL Datenbank instanziieren
- $db = new Zend_Db_Adapter_Pdo_Mysql(array(
- 'host' => 'localhost',
- 'username' => 'webuser',
- 'password' => 'xxxx',
- 'dbname' => 'test',
- ));
-
Übliche Parameter für einen Zend_Db_Adapter
host, username, password, dbname, port
-
Ein Result-Set erhalten
$db->fetchAll($sql, array $values)
-
Ein Result-Set als assoziatives Array erhalten
$db->fetchAssoc($sql, array $values)
-
Nur die erste Spalte eines Result-Sets erhalten
$db->fetchCol($sql, array $values)
-
Nur die erste Reihe eines Result-Sets erhalten
$db->fetchRow($sql, array $values)
-
Eine Zeile in einer Datenbank speichern
$db->insert($table, array $data)
-
Einen SQL-Ausdruck als Datum in einem INSERT-Datenarray verwenden
'createt_on' => new Zend_Db_Expr('CURDATE()')
-
Rückgabewert von $db->insert(..)
Die Zahl der beeinflusten Zeilen
-
Die neue Id der zuletzt eingefügten Zeile erhalten
$id = $db->lastInsertId();
-
Einen Datensatz in einer Datenbank erneuern
$db->update($table, array $data, $whereExpr)
-
Einen Datensatz aus einer Datenbank löschen
$db->delete($table, $where)
-
Einen Wert für die Verwendung in einem SQL-Statement vorbereiten
$db->quote($value[, $type])
-
Einen Wert sicher in ein SQL-Statement einfügen
$db->("SELECT * FROM bugs WHERE bug_id = ?", '1234', 'INTEGER')
-
Ein SQL-Statement direkt ausführen
$result = $db->getConnection()->exec($sql);
-
Ein Statement-Objekt mit einem DB-Adapter erstellen
$stmt = $db->query($sql, array $params);
-
Eine neue Reihe aus einem Statement-Objekt auslesen
$row = $stmt->fetch()
-
Eine Table-Klasse für DB-Tabelle erstellen
- 1. Erweitern von Zend_Db_Table_Abstract
- 2. protected $_name = 'table';
-
das primary-Key in einer Table-Klasse definieren
protected $_primary = 'id';
-
Drei Möglichkeiten einen Database-Adapter für eine Table-Klasse zu bestimmen
- 1. Übergabe im Contructor
- 2. Einen Default-Adapter bestimmen
- 3. Einen Adapter in der Registry speichern
-
Einen Datensatz mit einer Table-Klasse speichern
$table->insert($data);
$data ist ein assoziatives Array mit den Spaltennamen als Schlüssel
-
Eine table-Klasse so einrichten, dass sie den primary Key als auto incrementing versteht
protected $_sequence = true;
-
Einen Datensatz mithilfe einer Table-Klasse erneuern
$table->update($data, $where);
-
Datensätze mithilfe der Table-Klasse löschen
$table->delete($where);
-
Datensätze mit einer Table-Klasse über einen oder mehrere bestimmte primary keys finden
$table->find($id);
oder
$table->find(array($id1, $id2, ...));
-
Datensätze mit einem Select-Objekt und einem Table-Objekt auslesen
$rows = $table->fetchAll($select);
-
Einen einzelnen Datensatz mit einem Select-Objekt und einem Table-Objekt auslesen
$row = $table->fetchRow($select);
-
Ein Zend_Db_Row-Object in ein Array umwandeln
$row->toArray();
-
Einen neuen / geänderten Datensatz als Zend_Db_Row-Object in der Tabelle speichern
$row->save();
-
Einen neuen Datensatz mit einer Tabellen-Klasse erzeugen
$row = $table->createRow($data);
$data ist ein assoziatives Array mit den Spaltennamen als Schlüssel
-
Einen Datensatz als Zend_Db_Row aus einer Tabelle löschen
$row->delete();
-
Eigene Logic für Insert, Update und Delete in einem Zend_Db_Row-Objekt definieren
Überschreiben der protected Methoden _insert(), _update() oder _delete();
|
|