Seite 3 von 31

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 01.02.2020 16:06
von LukeWCS
Mike-on-Tour hat geschrieben: 01.02.2020 14:27 Durfte die Ergebnisse des ExtCheck ja auch nutzen und bin begeistert, hier bekommt man konzentriert und übersichtlich alles angezeigt, was EPV und CodeSniffer an Fehlern und Warnungen ausgeben und kann sich dann ans Abarbeiten der notwendigen Korrekturen machen.
Danke :)

Gerade wenn man noch nicht lange als Coder in der phpBB Umgebung unterwegs ist, hat man schon genug Herausforderungen zu meistern. Da braucht niemand komplizierte Tools und unverständliche Informationen die einem das Leben noch zusätzlich schwer machen. :wink:

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 08.02.2020 17:40
von LukeWCS
Ein grösseres Update eben installiert. Primäre Änderung bei v0.9.0: Speicherfunktion für den Bericht für die lokale Archivierung. Damit kann ausserdem jetzt auch bei Edge gespeichert werden. Details wie immer im Changelog.

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 26.02.2020 19:11
von HJW
Hallo,

habe meine Calendar-Extension jetzt weitestgehend überarbeiten. Ich habe aber noch zwei Meldungen mit denen ich nicht klar komme. Zum 1. gibt es eine Warnung vom Extension Pre Validator:
Running Extension Pre Validator on directory ext.
Running tests.

Validation: FAILED
Fatal: 0, Error: 0, Warning: 1, Notice: 0

Test results for extension:
Warning: IN_PHPBB is not defined in /hjw/calendar/event/main_listener.php
Ich dachte IN_PHPBB wird von der Foren-Software beim Start definiert. Muss ich da noch etwas tun, damit die Variable in der Extension zur Verfügung steht?

@ gn#36

Ich habe ja einen Code für deine hookup-Ext eingefügt:

Code: Alles auswählen

				$vars = array(
					'sql_ary',
					'user_id',
				);

				extract($this->phpbb_dispatcher->trigger_event('hjw.calendar.viewtopic.modify_participants_list', compact($vars)));
Das ergibt dann folgende Meldung:
Fatal error: Can not find '$vars = array();'-line for event 'hjw.calendar.viewtopic.modify_participants_list' in file '/hjw/calendar/event/main_listener.php:738'. Are you using UNIX style linefeeds?
Hast du eine Idee, wie ich die Fehlermeldung vermeiden kann?
Den aktuelle Code gibt es hier: http://calendar.zoo-am-ring.de/extensions/hjw.zip

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 26.02.2020 21:05
von Mike-on-Tour
Hallo HJW,
du hast in deiner main_listener.php ab Zeile 12 folgenden Code drin stehen:

Code: Alles auswählen

/**
* @ignore
*/
Dieser Kommentar steht normalerweie vor der Abfrage IN_PHP, versuch es mal mit dem Löschen dieser Zeilen.
Ist ja in einem Kommentar "versteckt", sollte also eigentlich keine Auswirkungen haben, aber ich weiß nicht, was EPV alles checkt. Und ist auch das Einzige, was mir einfällt, denn bei den Event-Listenern muss man das ja nicht abfragen (habe es bei mir auch nicht drin und EPV hat nicht gemeckert).

Ansonsten ist deine Extension klasse, nutze sie in unserem Forum auch.
Gruß
Mike-on-Tour

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 26.02.2020 22:31
von HJW
Ich habe das mal entfernt, aber es bleibt bei der Meldung.
Mike-on-Tour hat geschrieben: 26.02.2020 21:05 habe es bei mir auch nicht drin und EPV hat nicht gemeckert
Habe ich in anderen Extensions auch nicht drin, ohne Meldung. Das Problem ist, selbst wenn ich es reinschreibe kommt die Meldung.
Es macht ja m.E. auch keinen Sinn, das in einer Extension zu definieren.

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 26.02.2020 22:58
von Dr.Death
Ggf. hat die EPV Meldung damit zu tun, weil du außerhalb der class main_listener Funktionen definiert hast ?

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 26.02.2020 23:06
von LukeWCS
nAbend

@HJW

Problem 1

Mike's Vorschlag klingt erstmal einleuchtend, also dass das einfach nur ein Artefakt ist, was von EPV bemerkt wird. Der Fall liegt hier jedoch ein wenig anders und ist auch nicht sofort ersichtlich.

Die Meldung "Warning: IN_PHPBB is not defined in /hjw/calendar/event/main_listener.php" kommt schlicht daher, weil du im Listener 4 Funktionen ausserhalb der Klasse main_listener definiert hast. Pack die Funktionen innerhalb der Klasse und greife dann per $this-> auf die Funktionen zu.

Problem 2

Ich musste jetzt erstmal dein aktuelles ZIP holen und bei mir lokal mit EPV testen um dahinter zu kommen. Der Punkt ist, die Meldung ist irreführend, weil sie nicht direkt auf die tatsächliche Ursache hinweist. Nach einigen Versuchen sieht es für mich so aus, also ob EPV hier schlicht ins "schleudern" gerät und das hat eine ganz andere Ursache. Dazu gleich mehr, erstmal:

Die besagten Zeilen kannst auf jeden Fall löschen wie Mike schrieb, denn die gehören nicht in einen Listener sondern eigentlich zu dem erwähnten IN_PHPBB Block den man primär in Sprachdateien findet und eigentlich nicht in einen Listener gehört.

Jetzt zur Ursache: ich habe eine Weile gebraucht um das zu verstehen, weil die Meldung "Can not find '$vars = array();'-line for event ... Are you using UNIX style linefeeds?" überhaupt keinen Sinn ergibt, wenn man sich die Datei genau anschaut. Des Rätsels Lösung ist ganz einfach der fehlende Kommentarblock zu deinem Event. Wenn du einen Event einrichtest, musst du auch den zugehörigen Kommentarblock einfügen und der muss nach ganz bestimmten Regeln aufgebaut sein.

Dazu das folgende lesen, da wird gezeigt wie der Block generell aussehen muss:

https://area51.phpbb.com/docs/dev/3.2.x ... -extension

Darauf prüft EPV dann auch sehr penibel, das heisst wenn der Block nicht einwandfrei zu deinem Event und deinem Listener passt, dann meckert EPV jede Kleinigkeit an, bis der Kommentarblock sauber definiert ist. Und dieser fehlende Block ist die eigentliche Ursache für das zweite Problem.

Und ebenfalls wichtig: zwischen der $vars Deklaration und dem Event darf es keine Leerzeilen geben.

edit: hrhr der Tod war mal wieder schneller.

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 27.02.2020 09:28
von HJW
Danke für eure Antworten, dann werde ich das mal umsetzen.
LukeWCS hat geschrieben: 26.02.2020 23:06 edit: hrhr der Tod war mal wieder schneller.
Du hast es aber so erklärt, dass sogar ich das sofort begriffen habe.

Nee ist das schön, alles grüne Häkchen :grin:

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 27.02.2020 11:54
von LukeWCS
Hermann Joseph, ich habe das Ganze heute morgen nochmal angeschaut, weil ich mich nie damit zufrieden gebe, eine Lösung für ein Problem zu finden, sondern immer versuche die Ursache möglichst genau zu verstehen. Darum noch eine Ergänzung:

Die eigentliche Ursache für die Meldung war nicht der fehlende Kommentarblock, das war nur ein Folgefehler sozusagen. Die Ursache selber war die Leerzeile zwischen $vars und dem Event-Trigger. Wenn man nämlich bei deinem ZIP vom 26.2 einfach diese Leerzeile entfernt, würde sich die Reaktion von EPV schon deutlich ändern:

Fatal error: Can not find @var lines for event 'hjw.calendar.viewtopic.modify_participants_list' in file '\hjw\calendar\event\main_listener.php:737'

Vorher war das ja:

Fatal error: Can not find '$vars = array();'-line for event 'hjw.calendar.viewtopic.modify_participants_list' in file '\hjw\calendar\event\main_listener.php:738'. Are you using UNIX style linefeeds?

Die erstgenannte Meldung wäre der erste brauchbare Hinweis - zumindest indirekt - das da etwas fehlt, nämlich der besagte Kommentarblock. Genau das ist mir gestern Abend schon aufgefallen, ich habe dann aber soviel probiert um das Problem zu lösen, dass dieses Detail leider schnell in Vergessenheit geraten ist.

Re: phpBB Ext Check - Diskussion bezüglich Prozedur und Reports

Verfasst: 27.02.2020 16:21
von Mike-on-Tour
Dazu kann ich jetzt nur sagen: Again what learned ( :roll: )
Danke an LukeWCS für die ausführliche Erklärung.