このようなものはどうですか?PHP はおそらくコンパイルされないことに注意してください。私の投稿の主旨は、モデル オブジェクトはデータベース オブジェクトではないということです。ほとんどのモデル/DAO/ActiveRecord/あらゆるクラスが必要とする基本的な機能を提供する別個のデータベース オブジェクトを作成します。次に、モデルをデータベース コードではなく、ビジネス ロジックに集中させます。後で Mongo から他のデータベースに切り替える必要がある場合は、データベース固有のコードをすべて 1 か所にカプセル化しているため、簡単に切り替えることができます。
それで、次のようなもの。私の投稿は言語ではなく、デザインに関するものです。
class Db {
private static $mongoDb;
public static function _init() {
self::$mongoDb = \Mongo_Db::instance( 'content' );
}
public static function getValue( $table, $name ) {
$value = "";
return self::$mongoDb->get( $table, array( "name", $name ) );
}
}
class Model_Users extends Model {
private $db;
public static function _init() {
$this->db = new Db();
}
public static function getUser( $name ) {
return $this->db->getValue( "users", $name );
}
}