2

コントローラーからサービスを分離するために、Zend フレームワークの 2 つのコントローラー関数のサービス レイヤーを作成する必要があります。

4

2 に答える 2

4

これを正しく機能させるには、ServiceManager (SM) を使用する必要があります。

これは、私が行った方法のほんの一例です。

ModuleName/src/ModuleName/ に Service という名前のフォルダーを作成し、ExampleService.php を作成します。例:

namespace ModuleName\Service;

class ExampleService
{
    public function SomeFunctionNameHere()
    {
        echo 'Hello World';
    }
}

Module.php を編集して、Service Layer を呼び出し可能な IE に追加します。

public function getServiceConfig()
{
    return array(
        'invokables' => array(
            'ModuleName\Service\ExampleService' => 'ModuleName\Service\ExampleService',
        ),
    );
}

ModuleNameController.php を編集します。

protected $service_example;

public function indexAction()
{
    $service = $this->getServiceExample()->SomeFunctionNameHere();
}

private function getServiceExample()
{
    if (!$this->service_example) {
        $this->service_example = $this->getServiceLocator()->get('ModuleName\Service\ExampleService');
    }

    return $this->service_example;
}

これで始められるはずです。

于 2013-06-30T18:54:06.723 に答える