開発の現場では名前空間をどのように使っているのですか?

現場の体験も踏まえて詳しく解説いたします。
2023年1月16日
ユーザー

いつも動画にて楽しく学習させていただいております。

今回のレッスンでは一人でコードを書いていますが、仮に他の共同作業者とコードを書いていると想定しての質問になります。

仮に現在の index.php のコードはレッスンであるように

use MyApp\Todo;

$todo = new Todo($pdo);

とします(一部抜粋)。

この状態で他の共同作業者が知らずに index.php のコード内に別のTodoクラスを作成し、$todo = new Todo($pdo); とは別のインスタンス $foo = new Todo(); を作成したとします。

この場合、use MyApp\Todo;$todo = new Todo($pdo);$foo = new Todo(); の両方に適用されるのでしょうか?

もしそうであるならば、 $todo = new Todo($pdo);$todo = new MyApp\Todo($pdo); のように書き換えて区別するのでしょうか?

また、上記のような index.php ファイル内での同じ名前のクラスによる衝突の他に別ファイルで作成された同名のクラスの衝突のケースも考えたのですが、同じライブラリ(今回であれば app )に同じ名前のファイルは作成できないのでそのようなことにはならないと考えました。実際のところ現場では別ファイル、同じクラス名で衝突する可能性はあるのでしょうか(別ライブラリで作成された同じ名前のクラスのファイルなど)?

もし、見当違いな質問でしたら申し訳ありません。
詳解PHP オブジェクト編 » #25 名前空間を使ってみよう も拝見し考えたのですが答えが出ず質問させていただきました。

ご回答よろしくお願いいたします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(4)