1) MembershipMapper : エンティティの配列を返すクエリをここに実装します (基本クラスとして ZfcBase\Mapper\AbstractDbMapper を見てください)。
function getGroupsForMember($member, $access = null)
function getMembersForGroup($group, $access = null)
2) MembershipServive : getServiceConfig の下の Module.php で、このサービスをサービス マネージャーに追加します。クロージャーを使用して新しい MembershipService を作成し、MembershipMapper を挿入します。グループ/メンバー関数は、おそらくマッパーへのプロキシにすぎません。
function setMembershipMapper($membershipMapper)
function getMembershipMapper()
function getGroupsForMember($member, $access = null)
function getMembersForGroup($group, $access = null)
3) Controller : MembershipService をコントローラーに注入します (クロージャーを使用してサービスを作成するのと同じ方法でこれを行うことができます)。次に、サービスのメソッドを呼び出します。
サービス/コントローラー マネージャーでサービス/マッパー/コントローラーを作成する例 (Module.php に入ります)
public function getServiceConfig()
{
return array(
'factories' => array(
'MembershipService' => function (Zend\ServiceManager\ServiceManager $sm) {
$service = new YourNS\Service\Membership();
$service->setMembershipMapper($sm->get('MembershipMapper'));
return $service;
},
'MembershipMapper' => function ($sm) {
$mapper = new \YourNS\Mapper\Membership();
return $mapper;
},
);
}
public function getControllerConfig()
{
return array(
'factories' => array(
'YourNS\Controller\Something' => function (Zend\Mvc\Controller\ControllerManager $cm) {
$controller = new YourNS\Controller\Something();
$controller->setMembershipService($cm->getServiceLocator()->get('MembershipService'));
return $controller;
},
}