Invalid controller specified

Im Zend Framework kann die Verwendung von Binnenmajuskeln (engl. „Camel Case“) auf Linux-System zu Problemen führen. Wenn ein Controller z.B. „FirmenSucheController.php“ heißt und versucht wird diese Webseite über „/firmensuche“ aufzurufen, dann kommt es zur Fehlermeldung: „Invalid controller specified„.

Eine Umbenennung der Datei in „FirmensucheController.php“ löst dieses Problem. Dateinamen für Zend-Controller sollten daher nur einen Großbuchstaben für das erste Zeichen des Dateinamens sowie für das „C“ in „Controller“ besitzen. Im Namen der PHP-Klasse selbst dürfen Binnenmajuskel verwendet werden.

Session must be started before any output has been sent to the browser

Wenn das Zend Framework folgende Meldung liefert: „Warning: Exception caught by form: Session must be started before any output has been sent to the browser„, dann kann das daran liegen, dass die Zeichensatzkodierung für den Controller, der diesen Fehler verursacht, nicht korrekt gesetzt ist.

Bei mir wurde dieser Fehler durch einen Controller ausgelöst, der mit „UTF-8“ kodiert war. Eine Änderung der Kodierung auf „UTF-8 ohne BOM“ sorgte hier für wahre Wunder. Die Kodierung mit „ANSI“ hat auch funktioniert.

Comments starting with # are deprecated

Wenn das Zend Framework folgende Meldung liefert: „Fatal error: Uncaught exception ‚Zend_Config_Exception‘ with message ‚Comments starting with ‚#‚ are deprecated„, dann kann das daran liegen, dass in einer Konfigurationsdatei (*.ini) das Rautenzeichen (#) für die Einleitung eines Kommentars verwendet wird.

Die Verwendung des Rautenzeichens wird nach neustem Standard missbilligt, weshalb man für seine Kommentare in INI-Dateien immer ein Semikolon (;) verwenden sollte.

Zend Framework Elemente mit und ohne Config

Das Zend_Form Modul verfügt über verschiedene Elemente (Zend_Form_Element), die entweder als Objekte instanziiert werden können oder über eine Konfigurationsdatei. Den Unterschied möchte ich anhand zwei kleiner Quelltexte am Beispiel von Zend_Form_Element_Captcha veranschaulichen:

Als Objekt:

1
2
3
4
5
6
7
8
9
10
11
12
$captcha = new Zend_Form_Element_Captcha
('captain_captcha', array
	(
		'label' => "Bitte bestätige das folgende Captcha:",
		'captcha' => 'Figlet',
		'captchaOptions' => array
		(
			'captcha' => 'Figlet',
			'timeout' => 300
		),
	)
);

Als Konfiguration:

1
2
3
4
formular.name.elements.captain_captcha.type		= "captcha"
formular.name.elements.captain_captcha.options.label	= "Bitte bestätige das folgende Captcha:"
formular.name.elements.captain_captcha.options.captcha	= "Figlet"
formular.name.elements.captain_captcha.options.timeout	= 300

Virtual Host und Zend Framework einrichten

In den folgenden Screencasts zeige ich, wie man mit dem Apache Webserver in XAMPP (für Windows) einen „Virtual Host“ definiert und anschließend für diesen Virtual Host das Zend-Framework installiert und einrichtet. In den Video-Tutorials werden auch Besonderheiten zu Windows 7 genannt, die bei der Einrichtung zu beachten sind.

Die Videoauflösung kann bei Bedarf auf 720p (HD) gestellt werden.

Virtuellen Host einrichten:

Zend Framework installieren: