Bonjour,
Je débute en ZF2 et certaines notions me sont encore un peu flou, J'ai effectué le tutoriel album en entier, je me suis donc lancer à présent dans la gestion des ACL.
J'ai utiliser ces tuto là :
Malheureusement je suis tombé sur quelques problèmes quand j'ai essayé de l'adapter au squelette de base, plus précisément au niveau des services ... dans le module User j'ai cette configuration :
Code Module.php : 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 public function getServiceConfig() { return array( 'factories' => array( 'User\Model\UserTable' => function($sm) { $tableGateway = $sm->get('UserTableGateway'); $table = new UserTable($tableGateway); return $table; }, 'UserTableGateway' => function ($sm) { $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter'); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new User()); return new TableGateway('user', $dbAdapter, null, $resultSetPrototype); }, ), ); }
j'aimerai utiliser ce qu'il y a dans les différents model dans la classe Adapter afin de pouvoir vérifier si l'utilisateur peut se connecter ou non. mais la page ce bloque complètement dans le code suivant à la ligne 84:
Code Adapter .php : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 <?php /** * File for Auth Adapter Class * * @category User * @author Ritesh Jha (mailrkj@gmail.com) */ namespace User\Auth; use Zend\Authentication\Adapter\AdapterInterface; use Zend\Authentication\Result as AuthenticationResult; use User\Model\User; class Adapter implements AdapterInterface{ protected $userTable; /** * Digest authentication user * * @var string */ protected $email; /** * Password for the user of the realm * * @var string */ protected $password; /** * Sets the username option value * * @param mixed $email * @return Digest Provides a fluent interface */ public function setIdentity($email) { $this->email = (string) $email; return $this; } /** * Sets the password option value * * @param mixed $password * @return Digest Provides a fluent interface */ public function setCredential($password) { $this->password = (string) $password; return $this; } /** * Defined by Zend\Authentication\Adapter\AdapterInterface * * @throws Exception\ExceptionInterface * @return AuthenticationResult */ public function authenticate() { $user = $this->getUserTable() ->find_by_email_and_password($this->email, $this->password); //$user = User::find_by_email_and_password(); if ($user) { $result['code'] = AuthenticationResult::SUCCESS; $result['identity'] = $user; $result['messages']['success'] = 'Logged in'; } else { $result['code'] = AuthenticationResult::FAILURE_IDENTITY_NOT_FOUND; $result['messages']['invalid'] = "Email '$this->email' and password combination not found"; $result['identity']= false; } return new AuthenticationResult($result['code'], $result['identity'], $result['messages']); } public function getUserTable() { if (!$this->userTable) { $sm = $this->getServiceLocator(); //SUR CETTE LIGNE $this->userTable = $sm->get('User\Model\UserTable'); } return $this->userTable; } }
Donc je fais appel à vous afin de comprendre comment utiliser ces différents services ...
Merci d'avance
Edition :
Je pense qu'il me faudrait juste récupérer le getServiceLocator(), mais pas moyen de trouver comment l'avoir.
Partager