1

Guilherme Blancoの「ZF1-Doctrine2-ServiceLayer」を理解するのを手伝ってくれる人はいますか?

基本的なセットアップを使用して実行しようとしています。しかし、githubサンプルはうまくいきません(「application.ini」からではなく、serviceLocator.iniから「Service Locator Configuration」を使用する必要がありましたが、今では正しく初期化されているようです)。使い方の注意書きが見当たりません。おそらくばかげた質問ですが、コントローラーでサービスを取得するにはどうすればよいですか? このようなもの?

SomeController extends Zend_Controller_Action {
    public function someAction ()
    {
       $serviceLocator = Zend_Registry::get('serviceLocator');
       $serviceLocator->getService('TestService');
    }
}

「サービス 'TestService' が見つかりません」という例外が発生します。

誰かがこのソリューションのサービス ロジックに関する小さなガイドを提供できますか? どうもありがとう

4

1 に答える 1

1

私はその実装についてあまりお手伝いできませんが、そのようなアーキテクチャの原則は、永続層を分離して抽象化することです。「愚かな」観点から見ると、Service Locator (つまり、依存性注入) は Service Layer の原則とは何の関係もありません。どちらも異なる目的を果たします。Service Locator (DiC) を使用すると、アプリケーションのどこからでもオブジェクト (サービス、構成オブジェクト、または任意のもの) を取得できます。

私はこの Service Locator の静的な実装のファンではなく、むしろアクション ヘルパーを使用したいと考えています。


しかし、存在しない「TestService」を取得しようとしているため、この例外がスローされます。

ServiceLocator は通常、さまざまなサービスをセットアップする「コンテナー」で動作します。

コンテナで「TestService」が正しく構成されていることを確認してください (PHP クラス、INI、XML など)。

他のサービスを見て、それらがどのように機能するかを理解してください。

于 2011-11-03T11:39:34.893 に答える