CONTENIDO develop-Branch und Smarty 4.3.4

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
xmurrix
Beiträge: 3149
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

CONTENIDO develop-Branch und Smarty 4.3.4

Beitrag von xmurrix » So 11. Feb 2024, 10:25

Hallo zusammen,

in der Entwicklungsbranch wurde am 09.02.2024 die verwendete Smarty-Version auf 4.3.4 aktualisiert.
Da Smarty in dieser Version PHP 7.1 bis PHP 8.2 unterstützt, wurde auch die PHP-Anforderung in CONTENIDO auf 7.1 hochgeschraubt.

Wichtig für euch ist zu wissen, dass Smarty seit der Version 4.3.0 die Unterstützung für die Verwendung von PHP Funktionen als Modifier fallengelassen hat.

Modifier sind Funktionen, denen die Smarty Variablen übergeben werden, das Format ist "variable|modifier", also "Variable + senkrechter Strich + Modifier". Hier ein paar Beispiele:

Code: Alles auswählen

{* Verwenden der PHP Funktion trim als Modifier *}
{$var|trim}

{* Verwenden der PHP Funktion strlen als Modifier *}
{if 0 gt $var|strlen}
    ...
{/if}

{* Verwenden der PHP Funktion is_array als Modifier *}
{if $data|is_array}
    ...
{/if}
Das alles und auch andere PHP Funktionen werden als Modifier nicht mehr unterstützt. Die Verwendung dieser Funktionen quittiert Smarty mit einer Deprecated-Warnung.

Die Deprecated-Warnungen kann man in Smarty unterdrücken, das ist aber nicht zu empfehlen.

Als Alternative kann man die PHP Funktionen in Smarty wie folgt verwenden:

Code: Alles auswählen

{* Verwenden der PHP Funktion trim *}
{trim($var)}

{* Verwenden der PHP Funktion strlen *}
{if 0 gt strlen($var)}
    ...
{/if}

{* Verwenden der PHP Funktion is_array *}
{if is_array($data)}
    ...
{/if}
Um der Community etwas Zeit für die Anpassung zu geben, wurden die in der CONTENIDO-Installation als Smarty-Modifier verwendeten PHP Funktionen als Smarty Modifier-Plugins registriert. Das sorgt dafür, dass Smarty für diese Funktionen keine Deprecated-Warnungen wirft.

Hier die Liste der PHP-Funktionen, die als Smarty Modifier-Plugins registriert sind:
  • trim
  • strlen
  • htmlentities
  • strtoupper
  • is_array
  • in_array
  • array_keys
Dies ist allerdings eine temporäre Lösung, da wir nicht wissen, wie Smarty zukünftig damit umgehen wird. Verwendet bitte die Modifier, die Smarty zur Verfügung stellt. Wir können auch eigene Modifier implementieren, falls Bedarf vorhanden ist. Als Alternative könnt ihr auch, wie oben beschrieben, die PHP-Funktionen direkt verwenden.

Viele Grüße
Murat
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten