私はいくつかのデータベースメソッドをサポートする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
が..だから私はうまくいけば、誰かがこの答えを知っている
..私は多分refferenceとして$this->instance
を渡そうとしましたならば、$mptt
ではなくMptt_MySQLi
にrefferだろうと思ったこと...
おかげ - オレPHP 5のオブジェクトのように
これをチェックしてください:http://components.symfony-project.org/dependency-injection/ – Mchl