1

コントローラー、フォーム、モデル、およびビューとは別に、共通機能のいくつかのクラスを含むファイルを作成したいと考えています。例: common.php

それで、私のこのカスタムファイル用に他の接続ファイルを作成する必要がありますか、それとも zend データベースファイル (config/local.php および config/global.php) を使用する他の方法がありますか?

そして、このファイルをどのフォルダーの下に作成する必要がありますか。

4

1 に答える 1

1

間違った概念。YourNamespace\Stdlib共通の機能を含むクラスで -Library を作成します。これらのクラスには、必要な依存関係が後で注入されます。例えば:

getServiceConfig() {
    return array( 'factories' => array(
        'stdlib-dbstuff' => function ($sm) {
            $dbStuff = new \YourNamespace\Stdlib\DbStuff();
            $dbStuff->setAdapter($sm->get('Zend\Db\Adapter\Adapter'));
            return $dbStuff;
        }
    ));
}

いくつかの例については、名前空間の下のクラスを参照してくださいZend\Stdlib;)

Stdlibから必要なクラスを呼び出すだけで使用できますServiceManager。または、をスキップしてServiceManager、コントローラー レベルに依存関係を単純に注入することもできます (これはやや面倒ですが、コントローラーの責任ではありません)。

$dbStuff = $this->getServiceLocator()->get('stdlib-dbstuff');
// alternatively
$adapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
$dbStuff = new \YourNamespace\Stdlib\DbStuff();
$dbStuff->setAdapter($adapter);
于 2013-04-09T08:21:47.693 に答える