Servus,
ich nochmal.
Habe mich nun nochmals ein wenig mehr in die neue Funktionalität der CEC und den Chains rein gefuchst. Nun ist mir auch klar warum es da keine Exception gibt. Die CeCRegistry verdient an der Stelle eigentlich ihren Namen nicht mehr, da sie keinerlei Info über vorhandene Chains zur Laufzeit hat. Mit dem neuen Contenido-Chainer wurde das geändert.
In 4.8 war es noch so, dass man neue Chains beim System anmelden musste. Diese wurden dann in einem Array der Klasse vorgehalten, und das System konnte bei Bedarf abfragen ob eine entsprechende Chain vorhanden ist, und wie, sprich mit welchem Parametern, sie zu nutzen ist.
Dies hat sich in 4.9 grundlegend geändert. Nicht der eigentliche Hook, die Chain, muss mehr registriert werden, dieser wird nur einfach an der gewünschten Stelle mit der gewünschten Funktionalität eingebaut. Registrieren müssen sich inzwischen die Funktionen (addChainFunction), welche auf eine Chain zugreifen. Vorteil, es bedarf keiner speziellen Registrierungs-Datei mehr, Nachteil, man kann eben auch nicht mehr auf das Vorhandensein einer Chain abfragen.
Stellt sich mir die Frage wie ihr es euch vorgestellt habt entsprechende Chains zu dokumentieren? Durch die nun fehlende, und in der Vergangenheit mit DocBlocks auch ausreichend dokumentierte, Einbindung per Datei, existiert weder eine Info welche Chains das aktuelle System zur Laufzeit kennt, noch welche Parameter man in seiner Funktion erhält und zurück geben muss.
Ich für meine Teil habe begonnen meine neuen Chains nun mit einem DocBlock zu dokumentieren
/**
* Chain Contenido.Pifa.FieldTypeNames, add more field type names
*
* @author Ortwin Pinke <
info@php-backoffice.de>
* @since 4.9.13
*
* @param string $name name of chain
* @param array $array array with core field type names
* @return array array of field type names
*/
Da es sich bei diesen aber , beispielsweise per statischem Aufruf
cApiCecHook::executeAndReturn() eingebunden, eigentlich nicht um eine Funktion oder Klassenmethode, sondern um deren Aufruf handelt, weiß ich nicht so recht, ob der DocBlock an der Stelle zum Einsatz kommen sollte, und wie er dann später bei der Api-Doku rüber kommt.
Frederic, es wäre schön mal zu erfahren, wie ihr euch das vorgestellt habt bzw. vorstellt.
Ach ja, ich arbeite gerade im Rahmen eines Projektes an der Erweiterung des Form Assistenten mit zusätzlichen Feldern. Dafür erweitere ich diesen mit entsprechenden CecHook-Einträgen. Gerne schicke ich Dir die gemachten Änderungen wenn ihr diese in den Core übernehmen wollt.
Gruß aus Franken
Ortwin