D@ve hat geschrieben:Gibt es da keine einfachere bzw. elegantere Lösung Konstanten (oder sonstigen Code) global einzubinden?
Für jede Tabelle so einen Sermon zu tippen empfinde ich als ziemlich umständlich.
Ich habe Mods mit über 50.000 Zeilen Code und hunderten von SQL-Queries... Da würde ich die Konstanten gerne so stehen lassen wie sie sind (wird so schon genug Arbeit, das umzuwandeln)
Du "kannst" immer noch eine Datei mit Konstanten machen, sollte man aber nicht.
da wäre es zu bevorzugen eine Klasse zu erstellen in der dann die Konstanten sind (danach einfach statisch aufrufen).
Ich würde aber schon den DI (dependency injection) weg hier verfolgen und das so machen.
D@ve hat geschrieben:Code-Completion meiner Entwicklungsumgebung wird da komplett ausgehebelt und kann man vergessen. Das macht imo das Leben von Entwicklern unnötig schwer.
Also meine IDE (phpStorm) schafft das gut, solange nicht
$phpbb_container->get()
verwendet wird.
Aber auch dann kann man nachhelfen, bsp:
Code: Alles auswählen
/** @var $db \phpbb\db\driver\driver_inferface */
$db = $phpbb_container->get('dbal.conn');
Und schon ist $db wieder vom gewünschten Typ und Methoden und ähnliches können getrackt werden.
Im phpBB Code an sich fehlt das jedoch, kommt aber wieder.
Wenn es sich um einen Member in ner Klasse handelt, geht das übrigens genau so:
Code: Alles auswählen
/** @var \phpbb\db\driver\driver_inferface */
protected $db;