Bonjour,
Je suis en train de développer un Plugin de Provider Oauth.
J'ai donc besoin d'accééder à la DB depuis mon Plugin.
J'ai donc créé les factories dans mon Module.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  public function getServiceConfig()
  {
    return array('factories' => array('Oauth\Model\AccessTokenTable' =>  function($sm) {
	  $tableGateway = $sm->get('AccessTokenTableGateway');
	  $table = new AccessTokenTable($tableGateway);
	  return $table;},
 
	'AccessTokenTableGateway' => function ($sm) {
	  $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
	  $resultSetPrototype = new ResultSet();
	  $resultSetPrototype->setArrayObjectPrototype(new AccessToken());
	  return new TableGateway('oauth_provider_access_token', $dbAdapter, null, $resultSetPrototype);},
 
	'Oauth\Model\ConsumerTable' =>  function($sm) {
	  $tableGateway = $sm->get('ConsumerTableGateway');
	  $table = new ConsumerTable($tableGateway);
	  return $table;},
 
	'ConsumerTableGateway' => function ($sm) {
	  $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
	  $resultSetPrototype = new ResultSet();
	  $resultSetPrototype->setArrayObjectPrototype(new Consumer());
	  return new TableGateway('oauth_provider_consumer', $dbAdapter, null, $resultSetPrototype);},
	),
....
Pour appeler une table, je fais donc dans mon ControllerPlugin:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
  protected $consumerTable;
  public function getConsumerTable()
  {
    if (!$this->consumerTable) {
      $sm = $this->sm;
 
      $this->consumerTable = $sm->get('Oauth\Model\ConsumerTable');
    }
    return $this->consumerTable;
  }
Où $sm est obtenu en faisant $this->getServiceLocator() dans mon Controller.

En appelant la page, j'obtiens l'erreur:
An abstract factory could not create an instance of oauthmodelconsumertable(alias: Oauth\Model\ConsumerTable).
Qu'est-ce qu'une abstract factory ?
Que signifie l'erreur ?
Y-a-t'il d'autres solutions pour accéder à la DB ?
Je suis débutant avec ZF2...

Merci d'avance.

Gp2mv3