php-big2

名前空間

phpでの名前空間(namespace)を使う際、そのファイルの配置を皆さんどうされているでしょうか?

「Page」とか「Product」なんていう一般名称のクラスを作った場合、他の人が作った、あるいはすでにパッケージに組み込まれているクラス名との衝突を避けるために名前空間を使いたくなります。

クラスが記述されているファイル名はクラス名と一致されるのが一般的だと思いまが、そうするとクラス名の衝突を避けるのと同様に、ファイルの衝突を避ける意味から、namespaceとファイルを保存するディレクトリを一致させるのがベストと思います。

/jp/co/barbwire/util
というパッケージ名だと、ファイルの保存ディレクトリは、
DOC_ROOT/classes/jp/co/barbwire/util
という感じに。

Javaでのパッケージはそのようになってますしね。
いいところは流用する作戦で。

ところが、requireとuse両方にパスを書くような冗長なことに・・・とかなんとか考えていたら、一つのファイルに複数の名前空間を使用できるのだった。
そんなややこしいことをする人が本当にいるのかどうか分からないけど、話の前提がどーんと覆ってもういいや。

しかし、ディレクトリの規則は何か必要なんでしょうね。

楽天市場

Amazon.co.jpアソシエイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)