2009-05-01 5 views
2

あなたは何ですか(特にPHP)クラス名がプロジェクトディレクトリに関連するファイルへのパスを反映するクラスの命名規則について考えていますか?例:ファイルパスのクラス名の規則はどうですか?

# /project/Session/Abstract.php 
# /project/Session/Database.php 

class Session_Database extends Session_Abstract ... 

私は確信しています。私はまた、プロのいくつかが明らかであることを確信しています..しかし、あなたはどう思いますか?ナビゲートするのが簡単な素敵なディレクトリ構造を得るために、クラス名を長くする価値がありますか?

これはまた、PHPで1桁の__autoload($ class)定義を可能にします:str_replace( '_'、 '/'、$ class);

私は、そのような大会を愚かであると考えている人もいると思います。私は個人的には好きですが、他の人が使っているのを見たことがないので、実際にうまくいくかどうかはわかりません。

include/require呼び出しを削除すると、すべてのクラスがautoload関数に依存(グルーピング)されている可能性があります。一部の人は、疎結合の理解に準拠していません。このようなアプローチについて、これまでに私にはよく知られている

のみ参照がそうhttp://softwareengineering.vazexqi.com/files/pattern.html

で、あなたはこの1についての意見を持っていますか?

+0

私はここで同様の質問をしました:http://stackoverflow.com/questions/791899/efficient-php-auto-loading-and-naming-strategies、私はあなたの答えを見るのを楽しみにしています。うまく補完する必要があります。 – zombat

答えて

5

あなたはまだ見ていません。 PEARはこのアプローチを使用します。だからZend Frameworkです。これは、PHP世界ではかなり確立された標準です。私は最初にそれに遭遇した時は分かりませんが、私は個人的にそれを使い、自分のフレームワークの一部として、またZFのような一般に公開されているフレームワークの一部として数年間好きでした。

+0

確かに、私は見ていない - 私はPEARを避ける傾向があり、最近私はZendフレームワークを見て気にしなかった。 まだ、私はそれを使っている近くの他の開発者に遭遇しておらず、質問は私を悩ませていました。私を明白に指摘してくれてありがとう。 – Petrunov

1

私がこれについて気に入らない唯一の本当のことは、コードを移動する必要があるときに、多くの名前を再作成することです。しかし、エミールは既にこれがコースのためにかなり同じであると指摘していますが、PHP Userland Naming Rulesを追加したいと思います。

1

私もその慣習を使用しています。

かなりのファイル構造を持つだけでなく、名前空間の問題にも役立ちます。この命名規則は、クラスに接頭辞を付けて重複するクラス名を避けるのに役立ちます。

PHP 5.3が出てきて、最終的に名前空間があるときは、私はまだこの規則を使用しています。私が違うやり方をするのは、クラス名を短縮し、接頭辞を適切な名前空間に変換し、オートローダーで調整することだけです。

関連する問題