Zend Framework 2のドキュメントには、次のように書かれZend\Db\TableGateway\TableGatewayています。
[Zend \ Db \ TableGateway \ TableGateway]コンストラクターは、単一の機能オブジェクト、FeatureSetオブジェクト、または機能オブジェクトの配列の3つの異なる形式で機能を取得できます。
そしてTableGatewayコンストラクターは実際に型をチェックします。
したがって、TableGatewayコンストラクターの4番目の引数は、互換性があるFeature\AbstractFeatureか、互換性のあるオブジェクトFeature\FeatureSetの配列である必要がFeature\AbstractFeatureあります。
Get Startedチュートリアルのモデル部分では、タイプのオブジェクトTableGatewayが作成され、Zend\Db\ResultSet\ResultSet4番目の引数として取得されます。
class Module
{
// getAutoloaderConfig() and getConfig() methods here
// Add this method:
public function getServiceConfig()
{
return array(
'factories' => array(
...
'AlbumTableGateway' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Album());
return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
},
),
);
}
}
ResultSetではありませんinstanceof AbstractFeature。しかし、それは機能します。
それはどのように機能しますか?