Seite 1 von 1
Includes Konstanten etc.
Verfasst: 11.12.2014 16:46
von D@ve
Moin,
schön, dass es hier auch schon ein Forum für Extension Bastler gibt...
Arbeite mich da gerade rein und baue meine ganzen Mods um... Hab da noch eine Menge Fragen...
Gibt es eine Möglichkeit, global in Dateien der Extension (also ACP/MCP/UCP Module, Listener, etc) includes bekannt zu machen? Also zum Beispiel meine eigene constants.php für Tabellen-Bezeichner etc.?
Erscheint mir irgendwie nicht sonderlich elegant, dass in jeder Datei einzeln zu includieren. Kann man sowas nicht irgendwie global z.B. über die services.yml machen?
Wenn ja, wie?
Gruß, Dave
Re: Includes Konstanten etc.
Verfasst: 14.12.2014 22:23
von nickvergessen
Siehe
viewtopic.php?p=1331542#p1331542
wenn du sie in den Namespace und eine Klasse packst brauchst du kein include.
Wenn du irgendwo
\dave\extension\tables::TABLE1
verwendest, würde
die Klasse tables aus deiner Extension geladen und dann die Konstante davon verwendet.
Re: Includes Konstanten etc.
Verfasst: 15.12.2014 11:12
von D@ve
Du meinst Konstanten in einer Klasse? Oder einfach quasi eine Klasse Constants die entsprechend statische member hat?
wenn du sie in den Namespace und eine Klasse packst brauchst du kein include.
Achso... Die ganzen Extension Files werden über den Namespace erkannt?
würde die Klasse tables aus deiner Extension geladen
Gibt es da einen Classloader, welcher die Klassen nach bedarf lädt, oder wird direkt immer pauschal alles eingebunden?
Gruß, Dave
Re: Includes Konstanten etc.
Verfasst: 15.12.2014 22:05
von nickvergessen
D@ve hat geschrieben:Du meinst Konstanten in einer Klasse? Oder einfach quasi eine Klasse Constants die entsprechend statische member hat?
ersteres:
https://github.com/nickvergessen/phpbb- ... ge.php#L27
D@ve hat geschrieben:wenn du sie in den Namespace und eine Klasse packst brauchst du kein include.
Achso... Die ganzen Extension Files werden über den Namespace erkannt?
Richtig, die klasse \nickvergessen\newspage\controller\main wird in der Datei ext/nickvergessen/newspage/controller/main.php vermutet. Wenn vorhanden wir sie geladen.
D@ve hat geschrieben:würde die Klasse tables aus deiner Extension geladen
Gibt es da einen Classloader, welcher die Klassen nach bedarf lädt, oder wird direkt immer pauschal alles eingebunden?
Das dürfte auf anfrage passieren:
https://github.com/phpbb/phpbb/blob/dev ... p#L87-L101
Re: Includes Konstanten etc.
Verfasst: 17.12.2014 00:04
von D@ve
ersteres:
Naja, das scheitert zum Beispiel bei den Tabellen daran, dass man Klassenkonstanten keine variablen Werte zuweisen kann...