0

私は自分のアプリケーションで zend クラスを使用しています (mvc なし)。アダプターのインスタンスをコンテナーに入れて、他のクラスで使用したいと考えています。これは私が今持っているものです。

load.php

$adapter = new Zend\Db\Adapter\Adapter(array(
            'driver'   => 'pdo_mysql',
            'database' => DB_PREFIX.DB_NAME,
            'username' => DB_USER,
            'password' => DB_PW
    ));

他のクラスで $adapter にアクセスするにはどうすればよいですか?

OtherClass.php

 public class OtherClass{

     function __construct() {       
        //$adapter is needed here
        $this->_model = get_class($this);
        $this->sql = new Sql\Sql($this->dbo);
    }
}

以前の ZF1 には、変数を設定できる Zend::Registry がありました。その後、get メソッドを呼び出して再度アクセスします。ただし、ZF2 で同様のケースを見つけることができません。ServiceManager を使用してみましたが、私のシナリオでは機能していないようです。

専門家のアドバイスに感謝します。

4

1 に答える 1

0

ZF2 には、RegistryZF1 のような はありません。代わりに、 a と呼ばれるものがありServiceManagerます。この SM を使用して、サービスに依存関係を注入する必要があります。

SM の詳細については、こちらをご覧ください -> http://zf2.readthedocs.org/en/latest/modules/zend.service-manager.intro.html

github で ZfcUser をチェックアウトすることをお勧めします -> https://github.com/ZF-Commons/ZfcUserと Module.php ファイルをチェックアウトします。実際の例で SM を使用してインジェクションを処理する方法をよりよく理解するのに役立つ場合があります。

于 2013-11-10T13:48:00.007 に答える