私の会社では、PHP 5.3が名前空間を追加するずっと前から、モジュラーPHPフレームワークを何年にもわたって作成してきました。最近、ライブラリの新しいコードで名前空間の使用を開始することを決定し、最終的に古いコードの名前空間を作成する予定です。ただし、v5.3より前のコードベースに名前空間を追加するのが良い考えではないかどうかを判断するために考えているいくつかの問題があります。
- クラスに名前空間を
\
付けるだけでなく、グローバル名前空間をインポート(使用)して、すべてのグローバルクラスにプレフィックスが必要ないようにすることはできますか? - ライブラリ内の既存のクラスに名前空間を付ける場合、フレームワークのアップグレードと同時にすべての既存のプロジェクトが壊れないようにするにはどうすればよいですか?たとえば、できるクラスの名前は、ライブラリーの変化
ThemeEngine
する\module\theme\ThemeEngine
が、既存のウェブサイトを呼び出すThemeEngine
ことなく、任意のコード変更?もしそうなら、そのコードはどのように見えるでしょうか?