Probleme bei der Sortierung der typo3conf/PackageStates.php

Während des Updates einer Website von Typo3 4.5.x nach 6.2.x ist im Nachhinein immer wieder ein Fehler aufgetreten, der dazu führte, dass Felder, die die Erweiterung tt_address wiederum erweitern sollen, nicht mehr im Backend angezeigt werden.

Das wird dadurch verursacht, dass die Extension im Array in typo3conf/PackageStates.php vor der tt_address auftaucht und deshalb vor tt_address geladen wird.

Da sich die Reihenfolge der Erweiterungen in der typo3conf/PackageStates.php nicht 100%ig bestimmen lässt, ist der Fehler auch nicht immer aufgetreten – und hat das Debuggen etwas komplizierter gemacht.

Lösung des Problems war ziemlich einfach:

  • In der PackageStates.php werden Abhängigkeiten von anderen Extensions berücksichtigt.
  • Die Reihenfolge der Extensions kann somit (teilweise) beeinflusst werden.
  • Nachtragen der Abhängigkeiten in der ext_emconf.php löst das Problem.

Hinweis:

Abhängigkeiten in der ext_emconf.php müssen an zwei Stellen erfolgen:

'dependencies' => 'tt_address',
 
'constraints' => array(
    'depends' => array(
        'tt_address' => '',
    ),
    'conflicts' => array(),
    'suggests' => array(),
),