Tipps und Tricks Filter
Modul Anpassungen für Contao 3 - statische Klassen
Es gibt nun in Contao 3 eine ganze Reihe Klassen die nun statisch sind. Zu merken an Fehlermeldungen wie:
Fatal error: Call to a member function post() on a non-object
beim Aufruf wie in diesem Beispiel:
$this->Input->post( ... )
Logisch. Hierfür gibt es nun 2 Varianten zum Beheben.
1. Contao 2.x kompatibel: vor dem ersten Zugriff auf Input erstmal importieren:
$this->import('Input');
2. für Contao 3 (und somit nur dort funktionell) ändert man die Input Zeile wie folgt:
\Input::post( ... )
Es gibt wie gesagt ne ganze Reihe weiterer Klassen die nun statisch sind, bei denen ist in der gleichen Art zu verfahren.
Beispiele:
$this->Environment->httpUserAgent
//wird zu
\Environment::get('httpUserAgent')
$this->Environment->httpAcceptLanguage
//wird zu
\Environment::get('httpAcceptLanguage')
$this->Environment->remoteAddr
//wird zu
\Environment::get('remoteAddr')
$this->Environment->ip
//wird zu
\Environment::get('ip')
$this->Environment->request
//wird zu
\Environment::get('request')
$this->Environment->base
//wird zu
\Environment::get('base')
//Image Thumb
$src = \Image::get($strFile, $width, $height, $mode);
Sicherlich unnötig zu sagen, aber:
$this->Input->get( ... )
//wird zu
\Input::get( ... )
$this->Input->cookie( ... )
//wird zu
\Input::cookie( ... )
Hinweis: Obige Beispiele gehen davon aus, dass die eigene Klasse in einem Namespace sich befindet. Ist das nicht der Fall, den "\" am Anfang des Klassennames (z.B. Environment) weglassen.
