Bonjour à tous,
J'essaie de mettre en pratique le tuto de Julien sur les ACL
http://julien-pauli.developpez.com/t...telier/aclmvc/
Je rencontre néanmoins un problème, j'ai l'erreur suivante:
Fatal error: Cannot access self:: when no class scope is active in /home/www/Test/library/My/Acl.php on line 16
Dans le fichier Acl.php j'ai ceci:
A savoir que j'appelle la classe dans la methode _initAcl() de mon bootstrap:
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
26
27
28
29 class My_Acl extends JP_Acl { public static function getInstance($clearSession = false) { function getInstance() { if (self::$_instance == null) { // LIGNE 16 self::$_instance = new self(); } return self::$_instance; } if (self::$_sessionNamespace !== null) { if ($clearSession) { Zend_Session::namespaceUnset(self::$_sessionNamespace); } self::$_session = new Zend_Session_Namespace(self::$_sessionNamespace); if (isset(self::$_session->acl)) { self::$_instance = self::$_session->acl; } else { self::$_instance = getInstance(); } } else { self::$_instance = getInstance(); } return self::$_instance; } }
Bon, j'avoue, j'ai copié collé le code juste pour tester avant de me plonger rapidement dans la compréhension du tout. Mais j'ai encore des lacunes sur la maîtrise des objets en php et je ne comprend pas cette erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAcl() { $acl = My_Acl::getInstance(); $front = $this->bootstrap('FrontController')->getContainer()->frontcontroller; $front->setParam('acl', $acl); } }![]()
Partager