cgoIT / contao-calendar-ical-bundle

Contao extension calendar_ical
Other
0 stars 4 forks source link

Error with Contao 4.13, PHP 8.0 #5

Closed johannes-bittner closed 2 years ago

johannes-bittner commented 2 years ago

Das Speichern eines Kalenders im Backend, der einen iCal-Kalender enthält, führt zu folgender Fehlermeldung:

Compile Error: Array and string offset access syntax with curly braces is no longer supported

Symfony\Component\ErrorHandler\Error\FatalError:
Compile Error: Array and string offset access syntax with curly braces is no longer supported

  at vendor/kigkonsult/icalcreator/src/Util/StringFactory.php:79   

Wäre sehr dankbar für einen Fix ...

cgoIT commented 2 years ago

Hi, das wäre vermutlich eher ein Issue für https://github.com/iCalcreator/iCalcreator. Dennoch folgende drei Fragen:

  1. Welche Version des Pakets kigconsult/icalcreator wird verwendet (sollte in der composer.lock stehen)
  2. Welche Version des contao-calendar-ical-bundle wird verwendet
  3. Wie sieht der komplette Stacktrace aus
johannes-bittner commented 2 years ago

Also,

  1. Version lt. composer.lock : "name": "kigkonsult/icalcreator", "version": "v2.28.2",
  2. Version: "cgoit/contao-calendar-ical-php8-bundle": "^4.4",

Jeweils frisch installiert.

Stack-Trace ist tatsächlich das hier:

in vendor/kigkonsult/icalcreator/src/Util/StringFactory.php:79

$cnt    = count( $rows );        
   for( $i = 0; $i < $cnt; $i++ ) {            
       $line = rtrim( $rows[$i], Util::$CRLF );            
       $i1 = $i + 1;            
       while(( $i < $cnt ) && isset( $rows[$i1] ) && ! empty( $rows[$i1] ) &&                
              in_array( $rows[$i1]{0}, $CHARs )) {                
              $i += 1;                
              $line .= rtrim( substr( $rows[$i], 1 ), Util::$CRLF );                
              $i1 = $i + 1;            
       }            
$output[] = $line;
cgoIT commented 2 years ago

Hi, dann ist das tatsächlich ein Problem des iCalcreators. Die 2.28.2 davon war m.W. die letzte Version, die noch mit PHP 7 lief. Wenn du die Möglichkeit hast, dann könntest du auf PHP 8 wechseln. Dort sollte der Fehler eigentlich nicht mehr auftreten.

johannes-bittner commented 2 years ago

Vielen Dank für den Hinweis auf die Version des iCalcreators - denn ich war/bin ja schon auf PHP 8. K.A. warum dennoch die veraltete Version installiert war. Nach einem composer update ist jetzt die aktuelle (v2.41.70) installiert und der Fehler verschwunden.