Ich bin in der Pre-Release-Phase eines Open-Source-PHP-Projekts, von dem ich hoffe, dass es von anderen Entwicklern in ihren eigenen Projekten verwendet wird. Das Projekt unterstützt derzeit keine Namespaces und ich versuche zu prüfen, ob Namespaces oder die PEAR-Namenskonvention von Dir_Subdir_Class verwendet werden sollen, die ohne einige der Nachteile dieselben technischen Vorteile zu haben scheint. Um ehrlich zu sein, ist es keine einfache Wahl.
Einige Überlegungen zu Namespaces:
- Eine der Möglichkeiten, mit denen mein Projekt versucht, sich durch die Bereitstellung einer einfacheren API als andere ähnliche Projekte zu differenzieren. Da Namespaces neu und auch komplizierter als die PEAR-Namenskonvention sind, wird die Verwendung meines Projekts in die Codebasis weniger einfach. Durch die Implementierung verliere ich eine gewisse Differenzierung in Bezug auf die Benutzerfreundlichkeit.
- Obwohl ich einige Vorteile für Namespaces sehe, scheinen sie kein Problem zu lösen, das in einem modernen PHP-Produkt gelöst werden muss, das die PEAR-Namenskonvention verwendet. Namenskonflikte bei der Verwendung meines Projekts sollten minimal sein, wenn sie nicht vorhanden sind.
- Dieser Artikel gibt mir eine Pause bei der Übernahme von Namespaces, da deren Implementierung weniger als hervorragend war.
- Ich zögere auch, auf einen Zug zu springen, der vielleicht nirgendwo hingehen wird. Da Namespaces eine neue Funktion von PHP sind, bin ich noch nicht davon überzeugt, dass sie zum Standard werden.
- Kompatibilität. Fast der gesamte PHP-Code, der jemals geschrieben wurde, verwendet keine Namespaces, da es sich um eine neue Funktion handelt. Andere Bibliotheken wären ohne eine Konvertierung nicht kompatibel.
Einige Punkte für die Verwendung von Namespaces:
- Wahrnehmung. Wenn Namespaces zum Standard und zu einer Best Practice werden, könnte mein Projekt ohne sie schnell als unprofessionell und veraltet angesehen werden.
- Wettbewerb. Während einige konkurrierende PHP-Projekte beginnen, Namespaces in ihren neuesten Versionen zu verwenden, müssen viele den Sprung noch schaffen. Wenn Sie dies jetzt tun, kann mein Projekt einen Vorsprung gegenüber anderen Projekten haben.
- Zukünftige Arbeiten wären einfacher, wenn ich den Wechsel jetzt vor dem Börsengang des Projekts vornehmen würde und nicht danach, wo ich zwei Versionen davon für eine Weile unterstützen müsste.
- Ich möchte Best Practices unterstützen. Wenn Namespaces zu Best Practices für PHP werden, sollte mein Projekt diese verwenden.
Nach allem, was ich sagen kann, müssen Sie den einen oder anderen Weg wählen; du kannst nicht beides machen. Gibt es Punkte, die ich nicht berücksichtigt habe? Gibt es objektive Anzeichen (bitte keine Flammenkriege), die darauf hindeuten, dass Namespaces zum professionellen Standard für PHP werden? Ich würde mich über Erkenntnisse oder Ressourcen freuen, die Sie gerne weitergeben würden, da ich bald eine Entscheidung treffen muss.