Zend: Der Initializer (EntityMapper in Controller injizieren)

Was waren nochmal Initializer?
Eigentlich ganz einfach: Alle bei einem ServieManager registrierten Initializer werden nach der Erzeugung eines ebenfalls beim ServiceManagers registrierten Services aufgerufen. Dabei bekommen diese Initializer die jeweilige Instanz des gerade initialisierten Services übergeben. Dies gilt auch für die Controller, welche im ControllerManager registriert sind.

Und so wendet man einen Initializer an, beispielsweise um den EntityMapper aus den vorherigen Beiträgen in den Controller zu injizieren.

(more…)

Zend: RowGateway, Entitiy und Hydration – “Persistente Entitäten”

Im vorherigen Beitrag Zend: TableGateway und das RowGatewayFeature haben wir mittels TableGateway eine einfache Datenbank Abfrage durchgeführt. In einem zweiten Schritt haben wir das RowGatewayFeature hinzu genommen, damit wir die Save und Delete Operationen auf den Objekten anwenden können.

Durch die Verwendung des RowGatewayFeatures haben wir zwar nun Objekte, welche eine Entity repräsentieren und sich um ihre Persistenz kümmern können, jedoch keine fachliche Logik besitzen können und demnach auch keine Entität, im eigentlichen Sinne, darstellen.
In diesem Beitrag versuchen wir, die Vorteile des RowGateways (Persistenz) mit denen einer Entity (fachliche Logik) zu verbinden. Das Schlüsselwort hierbei ist Hydration.

(more…)

Zend: Multi Namespace/Directories in Module

Gehen wir von einem eigenen Module namens CRM (Customer Relationship Management), welches wir via Zend Studio oder den ZFTools erstellen.
Unseren initialer Controller nennen wir Index(Controller).

Da ein CRM aus verschiedenen Bereichen besteht, in unserem Beispiel aus Kunde und Lieferant, möchte man nun gerne unterhalb vom src Verzeichnis noch weitere “Namespaces” Customer und Supplier anlegen um damit innerhalb unseres CRM Modules weitere logisch abgetrennte Bereiche zu definieren:

Folgendes “Tutorial/Beispiel” zeigt, wie dies im Zend Framework 2 zu bewerkstelligen ist:

(more…)

Zend: Ändern der View in der ControllerAction

Im Normalfall wird in der beispielhaften showProfileAction eines Controllers die /showProfile.phtml View geladen. Einen einfachen Weg innerhalb des Controllers bzw. innerhalb der Action eine andere View zu laden ist diese: $viewModel = new ViewModel(array( //…. )); $viewModel->setTemplate(‘foo/foo/bar.phtml’); return $viewModel;