zendCards

  1. Ein neues Projekt auf der Kommandozeile erstellen
    zf create project [name]
  2. Autoloader einrichten
    • require_once 'Zend/Loader/Autoloader.php';
    • $loader = Zend_Loader_Autoloader::getInstance();
  3. Einen weiteren Namespace-Prefix mit dem Autoloader nutzen
    $loader->registerNamespace('Foo_');
  4. Empfohlener Ort für Layouts
    application/layouts/scripts/
  5. Wo wird Zend_Layout initialisiert?
    application/configs/application.ini
  6. 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
  7. Inhalt eines View-Scripts im Layout ausgeben
    $this->layout()->content
  8. Das Layout-Object in einem View-Script erhalten
    $layout = $this->layout();
  9. Das Layout-Object in einem Action-Controller erhalten
    $layout = $this->_helper->layout();
  10. Das Layout-Object in einer Klasser erhalten, die Zugriff auf das Bootstrap-Objekt hat
    $layout = $bootstrap->getResource('Layout');
  11. Das Layout-Object erhalten, wo kein Zugriff auf das Bootstrap-Objekt möglich ist
    $layout = Zend_Layout::getMvcInstance;
  12. Eine Variable im Layout setzen
    $layout->somekey = 'foo';

    oder

    $layout->assign('someotherkey', 'bar');
  13. Eine selbstgesetzte Variable aus dem Layout ausgeben
    echo $layout->somekey;
  14. Die Anzeige des Layouts unterdrücken
    $layout->disableLayout();
  15. Ein anderes Layout wählen
    • // Nutzt das Skript 'alternate.phtml'
    • $layout->setLayout('alternate');
  16. Eine weitere Ressource zu einer Application hinzufügen
    In der Bootstrap-Klasse eine _init...-Methode anlegen
  17. Wie wird eine Bootstrap-Class erzeugt?
    Erweitern von Zend_Application_Bootstrap_Bootstrap oder durch Implentierung des Interfaces Zend_Application_Bootstrap_Bootstrapper
  18. Was muss der Bootstrap-Class bei der Implementierung übergeben werden?
    Aktuelles Environment und Optionen
  19. Eine Resource-Methode der Bootstrap-Klasse "bootstrappen"
    $bootstrap->bootstrap('Resource');
  20. Mehrere Resource-Methoden der Bootstrap-Klasse "bootstrappen"
    $bootstrap->bootstrap(array('foo', 'bar'));
  21. Alle Resource-Methoden der Bootstrap-Klasse "bootstrappen"
    $bootstrap->bootstrap();
  22. Was sind Resourcen-Plugins?
    Klassen, die einen eigene Methoden für die Resourcen-Initialisierung mitbringen.
  23. Wie werden Resourcen-Plugins genutzt?
    Ihr Name wird in den Optionen für das Application-Objekt übergeben.
  24. Überprüfen, ob eine Resource in der Resource-Registry enthalten ist
    $bootstrap->hasResource('view');
  25. Eine Resource aus der Resource-Registry erhalten
    $bootstrap->getResource('view');
  26. Eine Resource in der Resource-Registry speichern
    Resource in der _init...-Methode als Rückgabewert verwenden
  27. Was braucht ein eigenes Resource-Plugin?
    Implementierung von Zend_Application_Resource_Resource oder Erweiterung von Zend_Application_Resource_ResourceAbstract
  28. Application-Autoloading ermöglichen
    Angabe einer Option appnamespace mit dem Namespace aller Application-Ressourcen, bzw. der Bootstrap-Directory. Üblicherweise "Application"
  29. Resource für die Datenbankverbindung
    Zend_Application_Resource_Db
  30. Zwei wichtige Parameter für Zend_Application_Resource_Db
    • adapter: Adapter-Typ
    • params: Konfigurations-Parameter für die Adapter-Instanz
    • isDefaultTableAdapter
  31. Die Ausführung ein einen anderen Controller weiterleiten
    $this->_forward($action, $controller = null, $module = null, array(parameter) = null);
  32. Einen Action Controller definieren
    class FooController extends Zend_Controller_Action {}
  33. Den ViewRenderer ausschalten
    In der Init-Methode eines Action-Controllers:

    $this->_helper->viewRenderer->setNoRender(true);

    Für eine Action-Methode:

    $this->_helper->viewRenderer->setNoRender();
  34. Wo wird die Instanisierung eines Action-Controllers angepasst?
    Nicht durch Überschreiben des Konstruktors, sondern in der init-Methode.
  35. Pre- und Post-Dispatch Hooks im Action-Controller
    Die Methoden:

    preDispatch()

    und

    postDispatch()
  36. Das Request-Objekt im Action-Controller erhalten
    $this->getRequest()
  37. Auf das Response-Objekt in einem Action-Controller zugreifen
    $this->getResponse()
  38. Auf Request-Parameter im Action-Controller zugreifen
    $this->_getParam($key[, $defaultValue])

    oder

    $this->_getAllParams()
  39. Wo werden View-Scripts per default erwartet?
    Module/views/scripts/Controller/Action.phtml
  40. Ein 302-Redirect im Action-Controller durchführen
    $this->_redirect($url, array $options = array());
  41. 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.
  42. Bei einem $this->_redirect(...) den Http-Status-Code festlegen
    Über die Option 'code' => 30x
  43. Einen Action-Helper im Action-Controller erhalten
    $this->_helper->getHelper('MyHelper')

    oder:

    $this->_helper->MyHelper
  44. Gibt es einen bestimmten Helper für diesen Action-Controller?
    $this->_helper->hasHelper('shortname')
  45. Action-Controller Helper, um andere Ausgabeformate zu nutzen
    $this->_helper->contextSwitch
  46. AC-Helper, um kurze Nachrichten für den Nutzer zu speichern
    $this->_helper->FlashMessenger
  47. Eine Nachricht im FlashMessenger speichern
    $_flashMessenger->addMessage('MessageText');
  48. Nachrichten des Flash-Messengers erhalten
    $_flashMessenger->getMessages()
  49. AC-Helper für JSON-formierte Antworten
    $this->_helper->json
  50. Eine JSON-formierte Antwort mit einem AC senden
    • $this->_helper->json($data)
    • oder
    • $this->_helper->json->sendJson($data)
  51. 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
  52. Wann wird die render()-Methode des ViewRenderers aufgerufen?
    Jedesmal, wenn postDispatch() aufgerufen wird.
  53. Eine Variable des view-Objekts im AC setzen
    $this->view->foo = 'bar';
  54. Ein anderes View-Script rendern als das der aktuellen Aktion
    $this->_helper->viewRenderer->setRender('foo');
  55. Wie wird das Respons-Objekt gesendet?
    Der Front-Controller ruft $respons->sendRespons() auf, wenn er den Request abgearbeitet hat.
  56. In einer AC-Aktion einen http-Header setzen
    $this->getResponse()->setHeader($name, $value, $replace = false);
  57. 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.
  58. Exceptions, die bei der Ausführung des Front-Controllers auftraten, ausgeben
    $front->renderExceptions()
  59. Eine Variable im view-Skript sicher ausgeben
    echo $this->escape($this->variable);
  60. Ein view-Helper nutzen
    $view->helperName()
  61. View-Helper für Links im <head>
    HeadLink Helper
  62. Ein Stylesheet zum view hinzufügen
    $view->headLink()->appendStylesheet($href, $media);
  63. Eine Alternate-URL im view angeben
    $view->headLink()->appendAlternate($href, $type, $title, $extras);
  64. Die Links im <head>-Bereich in einem view-Skript rendern
    echo $this->headLink();
  65. View-Helper für MetaTags
    HeadMeta Helper
  66. Ein Meta-Tag im view-Skript hinzufügen
    $view->headMeta()->appendName($name, $content);
  67. View-Helper für Scripte im <head>
    HeadScript Helper
  68. Einen <script>-Tag zum view hinzufügen
    $view->headScript()->appendFile($src, $type = 'text/javascript', $attrs = array());
  69. View-Helper für das <title>-Tag
    HeadTitle Helper
  70. Den <title>-Placeholder erweitern
    $view->headTitle('Segment');
  71. Den Worttrenner für den <title>-Placeholder festlegen
    $view->headTitle()->setSeperator(' | ');
  72. Den Navigation-Container eines Navigation View Helpers festsetzen
    setContainer()
  73. Festlegen, welche Tiefe eine Seite mindestens haben muss, um vom Navigation View Helper abgebildet zu werden
    setMinDepth()
  74. Festlegen, welche Tiefe eine Seite maximal haben darf, um vom Navigation View Helper abgebildet zu werden
    setMaxDepth()
  75. Die tiefste aktive Seite eines gegebenen Nav. Containers mit dem Navigation View Helper finden
    findActive($container, $minDepth, $maxDepth)
  76. Einen Navigation Helper im view-Skript erstellen
    • $container = new Zend_Navigation(array $pages);
    • $view->navigation($container);
  77. Eine Breadcrumbs-Navigation im view ausgeben
    $view->navigation()->breadcrumbs()
  78. Den Separator einer Breadcrumbs-Navigation im view setzen
    $view->navigation()->breadcrumbs()->setSeparator($string);
  79. Ein Menu im view ausgeben
    $view->navigation()->menu();
  80. Eine Sitemap im view ausgeben
    $view->navigation()->sitemap();
  81. Bevorzugter Weg, um eine Instanz von Zend_Translate mit dem Translate Helper zu nutzen
    Durch die Registrierung in Zend_Registry
  82. Einen mit Zend_Translate übersetzten Term im view-Script ausgeben
    $view->translate('simple');
  83. Einen weiteren Pfad und Namespace für view-Helper festlegen
    $view->setHelperPath('/path', 'My_View_Helper')
  84. Einen Adapter zu einer MySQL Datenbank instanziieren
    • $db = new Zend_Db_Adapter_Pdo_Mysql(array(
    • 'host' => 'localhost',
    • 'username' => 'webuser',
    • 'password' => 'xxxx',
    • 'dbname' => 'test',
    • ));
  85. Übliche Parameter für einen Zend_Db_Adapter
    host, username, password, dbname, port
  86. Ein Result-Set erhalten
    $db->fetchAll($sql, array $values)
  87. Ein Result-Set als assoziatives Array erhalten
    $db->fetchAssoc($sql, array $values)
  88. Nur die erste Spalte eines Result-Sets erhalten
    $db->fetchCol($sql, array $values)
  89. Nur die erste Reihe eines Result-Sets erhalten
    $db->fetchRow($sql, array $values)
  90. Eine Zeile in einer Datenbank speichern
    $db->insert($table, array $data)
  91. Einen SQL-Ausdruck als Datum in einem INSERT-Datenarray verwenden
    'createt_on' => new Zend_Db_Expr('CURDATE()')
  92. Rückgabewert von $db->insert(..)
    Die Zahl der beeinflusten Zeilen
  93. Die neue Id der zuletzt eingefügten Zeile erhalten
    $id = $db->lastInsertId();
  94. Einen Datensatz in einer Datenbank erneuern
    $db->update($table, array $data, $whereExpr)
  95. Einen Datensatz aus einer Datenbank löschen
    $db->delete($table, $where)
  96. Einen Wert für die Verwendung in einem SQL-Statement vorbereiten
    $db->quote($value[, $type])
  97. Einen Wert sicher in ein SQL-Statement einfügen
    $db->("SELECT * FROM bugs WHERE bug_id = ?", '1234', 'INTEGER')
  98. Ein SQL-Statement direkt ausführen
    $result = $db->getConnection()->exec($sql);
  99. Ein Statement-Objekt mit einem DB-Adapter erstellen
    $stmt = $db->query($sql, array $params);
  100. Eine neue Reihe aus einem Statement-Objekt auslesen
    $row = $stmt->fetch()
  101. Eine Table-Klasse für DB-Tabelle erstellen
    • 1. Erweitern von Zend_Db_Table_Abstract
    • 2. protected $_name = 'table';
  102. das primary-Key in einer Table-Klasse definieren
    protected $_primary = 'id';
  103. 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
  104. Einen Datensatz mit einer Table-Klasse speichern
    $table->insert($data);

    $data ist ein assoziatives Array mit den Spaltennamen als Schlüssel
  105. Eine table-Klasse so einrichten, dass sie den primary Key als auto incrementing versteht
    protected $_sequence = true;
  106. Einen Datensatz mithilfe einer Table-Klasse erneuern
    $table->update($data, $where);
  107. Datensätze mithilfe der Table-Klasse löschen
    $table->delete($where);
  108. Datensätze mit einer Table-Klasse über einen oder mehrere bestimmte primary keys finden
    $table->find($id);

    oder

    $table->find(array($id1, $id2, ...));
  109. Datensätze mit einem Select-Objekt und einem Table-Objekt auslesen
    $rows = $table->fetchAll($select);
  110. Einen einzelnen Datensatz mit einem Select-Objekt und einem Table-Objekt auslesen
    $row = $table->fetchRow($select);
  111. Ein Zend_Db_Row-Object in ein Array umwandeln
    $row->toArray();
  112. Einen neuen / geänderten Datensatz als Zend_Db_Row-Object in der Tabelle speichern
    $row->save();
  113. Einen neuen Datensatz mit einer Tabellen-Klasse erzeugen
    $row = $table->createRow($data);

    $data ist ein assoziatives Array mit den Spaltennamen als Schlüssel
  114. Einen Datensatz als Zend_Db_Row aus einer Tabelle löschen
    $row->delete();
  115. Eigene Logic für Insert, Update und Delete in einem Zend_Db_Row-Objekt definieren
    Überschreiben der protected Methoden _insert(), _update() oder _delete();
Author
nikolassv
ID
64293
Card Set
zendCards
Description
Karten zu wichtigen Komponenten des Zend-Frameworks
Updated