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.