DBへの接続にPDOを使用しています。MVC パターンを使用してどのように構成すればよいか考えていました。
現在、私は次のようにしています:
あなたはそれについてどう思いますか?大丈夫ですか?DB、モデル、および MySQLDB を別のサブフォルダーに配置する必要がありますか?
ありがとう。
DBへの接続にPDOを使用しています。MVC パターンを使用してどのように構成すればよいか考えていました。
現在、私は次のようにしています:
あなたはそれについてどう思いますか?大丈夫ですか?DB、モデル、および MySQLDB を別のサブフォルダーに配置する必要がありますか?
ありがとう。
DAO デザイン パターンhttp://en.wikipedia.org/wiki/Data_access_objectをご覧ください。これにより、モデルとデータベース インターフェイスを分離することができます。これは、ある時点でデータベースを切り替えたい場合に非常に役立ちます。
この記事で詳細を読むこともできます http://www.sitecrafting.com/blog/php-patterns-part-ii/
好みの問題ですが、以下のように構成します。
Model/User.php
DAO/MySQLDB/User.php
DAO/MySQLDB.php (old DB.php)
Config/DatabaseConfig.php
View/Index.php
MySQLDB.php
Model
ビジネス ロジックを含むすべてのモデル クラス
DAO
が含まれる すべての汎用データベース SQL スクリプトと接続
Config
が含まれる すべての構成スクリプトが含まれる すべて
のView
ビューDB.php
Model/User.php
スティーブはコメントでとの違いについて尋ねていました。DAO/MySQLDB/User.php
この例がそれをうまく説明してくれることを願っています
class Model_User
{
public function hashPassword($password)
{
$salt = SALT_STRING;
return hash("sha512", $password.$salt);
}
public function getById($id)
{
$id = (int) $id;
$db_data = new MySQLDB_User();
$db_data->getById($id);
return $this;
}
}
と
class MySQLDB_User
{
public function getById($id)
{
$sql = "SELECT * FROM `users` "
." WHERE `id` = \"" . $this->_db_connection>real_escape_string($id)
. "\" LIMIT 1";
$result = $this->query($sql);
$this->_parseRow($result);
return $this;
}
}
最大のフレームワークがどのようにフォルダを構成しているかを見てみましょう。つまり、Zend Framework の例はこちらhttp://framework.zend.com/manual/en/project-structure.project.html
彼らは通常、セットアップについて長い間考え、ほとんどの開発者はセットアップに精通しているため、新しい採用者がいる場合、彼らはそうでない場合よりも早くカスタムビルドシステムを使用する方法を見つけることができます.