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.