Re: [3.3] [3.2] Extension Manager Plus
Verfasst: 13.06.2022 18:19
Version 1.0.1 ausprobiert, läuft 
Danke für die tolle Ext, spart jede Menge Zeit.
Danke für die tolle Ext, spart jede Menge Zeit.
phpBB.de - Die deutsche phpBB-Community
https://www.phpbb.de/community/
Dem kann ich mich nur anschließen.Mike-on-Tour hat geschrieben: 13.06.2022 18:19 Version 1.0.1 ausprobiert, läuft
Danke für die tolle Ext, spart jede Menge Zeit.
is_enableable()
auseinander zusetzen. Ich werde in Zukunft meine Fehlertexte vom phpBB Kern ausgeben lassen und verabschiede mich von trigger_error()
.IMC, eine Sache, nicht das du mich da missverstanden hast. Eigene Fehlerbehandlung inIMC hat geschrieben: 13.06.2022 21:11 Ich habe die Diskussion auch zu Anlass genommen mich mit der Funktionis_enableable()
auseinander zusetzen. Ich werde in Zukunft meine Fehlertexte vom phpBB Kern ausgeben lassen und verabschiede mich vontrigger_error()
.
ext.php
ist nicht per se schlecht. Bei deinem "Image upload use ImageMagick" ist es ja absolut sinnvoll, den Admin auf ein fehlendes Imagick Modul hinzuweisen. In dem Fall fängt EMP das auch ab und "verpackt" deine Meldung in ein Info-Gerüst bestehend aus den zusätzlichen Anzeigen von Anzeigename und technischer Namen der Ext, damit der Admin präzise erfährt, welche Ext den Vorgang unterbrochen hat und mit welcher Meldung. Was allerdings auch nur zum tragen kommt, wenn die Ext schon installiert ist und beim erneuten Aktivieren eine Voraussetzung nicht mehr passen würde. Von daher ist das Problem eher nicht gegeben. trigger_error
in ext.php
, aber sowas lässt sich ja nicht immer vermeiden.ext.php
nur anders.trigger_error()
. Habe ich allerdings noch nicht mit EMP getestet.
Code: Alles auswählen
public function is_enableable()
{
$language = $this->container->get('language');
$language->add_lang('imgupload_acp', 'imcger/imgupload');
$error_message = [];
/* Imagick library installed? */
if (!class_exists('Imagick'))
{
$error_message += ['error1' => $language->lang('IMCGER_IM_REQUIRE_IMAGICK'),];
}
/* phpBB version greater equal 3.2.4 and less then 4.0 */
$config = $this->container->get('config');
if (phpbb_version_compare($config['version'], '3.2.4', '<') || phpbb_version_compare($config['version'], '4.0.0', '>='))
{
$error_message += ['error2' => $language->lang('IMCGER_IM_REQUIRE_PHPBB'),];
}
/* php version equal or greater 7.0.0 and less 8.2 */
if (version_compare(PHP_VERSION, '7.0.0', '<') || version_compare(PHP_VERSION, '8.2', '>='))
{
$error_message += ['error3' => $language->lang('IMCGER_IM_REQUIRE_PHP'),];
}
return empty($error_message) ? true : $error_message;
}
false
gewertet würde. Okay, also gibt es demnach bereits einen Mechanismus für Fehlermeldungen in ext.php
. Davon steht im entsprechenden Abschnitt der Doku jedoch keine Silbe. ext.php
betrifft.trigger_error
behandelt werden, sofern die Standard Meldung von phpBB nicht genügt.trigger_error
). Auf jeden Fall muss ich diese Methode bei EMP berücksichtigen, dass ist momentan nicht der Fall. Wenn eine Ext auf diese Weise Fehlermeldungen generiert, dann wird die Ext trotzdem von EMP aktiviert, was natürlich nicht im Sinne des Erfinders ist. Es ist absehbar, dass sich diese Methode der Fehlerbehandlung in ext.php
durchsetzen wird, weil sie Vorteile hat. Darum muss EMP das natürlich auch unterstützen.Ich hatte noch keine Zeit das zu testen. Ich vermute aber das dies schon gehen könnte da die Textausgabe die gleiche ist als wenn man einLukeWCS hat geschrieben: 14.06.2022 11:57Auf jeden Fall muss ich diese Methode bei EMP berücksichtigen, dass ist momentan nicht der Fall.
false
zurück gegeben wird. Siehe \phpbb\console\command\extension\enable.php
Zeile 49.is_enableable()
ein Array zurück gibt.Wie geschrieben, EMP unterstützt das noch nicht. Kann es auch gar nicht, bislang war mir als mögliche Rückmeldung ja nur
true/false
bekannt, darauf ist der Code auch ausgerichtet. Das direkt Fehlermeldungen zurückgegeben werden können, war bislang schlicht nicht vorgesehen. 1.0.2 wird das dann unterstützen. Habe bereits eine funktionierende Beta, ich veröffentliche später den 1.0.2 Branch zum testen.Das ist mir grad nicht klar was du damit meinst, könntest du das mal umformulieren?Ich vermute aber das dies schon gehen könnte da die Textausgabe die gleiche ist als wenn man einfalse
zurück gegeben wird. Siehe
Ja und nicht nur ein Array, auch ein String ist möglich. Beides ist aber erst ab 3.3.0 möglich. Wobei das auch nur in der API Doku steht mit dem Array wie ich vorhin gesehen habe. In der Ext Doku wird dazu jedoch nichts erwähnt. Und das auch ein String möglich ist, erfährt man erst, wenn man weiter im Source stöbert. Das ist nirgends dokumentiert.Ich habe gesucht und bin drauf gestossen da in der Doko steht dasis_enableable()
ein Array zurück gibt.
extension_interface.php
):Code: Alles auswählen
/**
* Indicate whether or not the extension can be enabled.
*
* @return bool
*/
public function is_enableable();
Code: Alles auswählen
/**
* Indicate whether or not the extension can be enabled.
*
* @return bool|array True if extension is enableable, array of reasons
* if not, false for generic reason.
*/
public function is_enableable();