いくつかのデータベース メソッドをサポートする MPTT オブジェクトに取り組んでいます。まず、MySQL と MySQLi です。今、私はそれをこのように作成しました
Mptt - 正しいサブオブジェクトをロードするメイン オブジェクト
class Mptt {
/**
* Array of available driver types
* @var array
*/
private $availableDrivers = array('mysqli','mysql');
/**
* Holding an instance of the mptt object corresponding to the selected driver
* @var object
*/
public $instance;
public function __construct($driver = 'mysqli', $autoConnect = false, $info = array()) {
if (in_array($driver, $this->availableDrivers)) {
switch ($driver) {
case 'mysqli':
$this->instance =& new Mptt_MySQLi();
break;
case 'mysql':
$this->instance =& new Mptt_MySQL();
break;
}
return $this->instance;
}
}
}
今、これを機能させるのに成功した唯一の方法は、次のようなことをすることです
各ドライバーにパブリック変数を追加し、このようにします
$mptt = new Mptt('mysqli');
$mptt->mysqli->addBranch(.....);
しかし、私はそれを望んでいませんmysqli-> part
..だから私は多分$this->instance
参照として渡そうとしたら、代わりに$mptt
参照するだろうと思いましMptt_MySQLi
た..
うまくいけば、誰かがこれに対する答えを知っています..
前もって感謝します - オーレ