Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] nazwa kontrolera w pluginie
JarCzeS
post 17.06.2008, 15:44:02
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


Witam.
Napisałem plugin ktory ma na celu sprawdzenie czy uzytkownik jest zalogowany:
Kod
     class Zend_Controller_Plugin_Authorization extends Zend_Controller_Plugin_Abstract
     {
         public function __construct()
         {
             $auth = Zend_Auth::getInstance();
             if(!$auth->hasIdentity())
             {        
                 $controller= Zend_Controller_Action::getRequest()->getActionName();                            
             }
         }
     }

Chodzi o to zeby klasa sprawdzala czy uzytkownik jest zalogowany oraz czy zaladowany kontrolelr jest rozny od index, problem tkwi w pobraniu nazwy kontrolera ktory uzytkownik wywolal
dostaje blad:

Strict Standards: Non-static method Zend_Controller_Action::getRequest() should not be called statically, assuming $this from incompatible context in...
Fatal error: Cannot access protected property Zend_Controller_Plugin_Authorization::$_request in ...library/Zend/Controller/Action.php on line 301

Zaznaczam ze jestem poczatkujacy oraz nie zoreintowany za bardzo w OOP, wiec za odpowiedzi typu "link do manuala tam wszystko jest" dziekuje, poniewaz to mi nie pomoglo.
Go to the top of the page
+Quote Post
dr_bonzo
post 17.06.2008, 17:24:44
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


WLasnie link do manuala ci pomoze smile.gif

http://framework.zend.com/apidoc/core/Zend...n_Abstract.html

rozszerzasz klase Zend_Controller_Plugin_Abstract wiec masz dostep do jej metod, m.in. getRequest()

a z Requestu pobierasz getControllerName() bo chyba tego szukasz, a nie nazwy akcji.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
JarCzeS
post 17.06.2008, 18:14:00
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


zmodyfikowalem tak:
Kod
$controller = $this->getRequest()->getControllerName();

dostaje:
Fatal error: Call to a member function getControllerName() on a non-object
Go to the top of the page
+Quote Post
LBO
post 17.06.2008, 18:24:47
Post #4





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Bo robisz to w konstruktorze - o ile pamiętam pluginy Front Controllera maja specjalne metody, które należy użyć. A tak, nawet nie dajesz Pluginowi się "ustawić".

edit:

Proszsz, tutaj bardzo ładnie opisane.

Ten post edytował LBO 17.06.2008, 18:26:21
Go to the top of the page
+Quote Post
JarCzeS
post 17.06.2008, 18:56:51
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


dzieki LBO
koncowy kod:
Kod
class Zend_Controller_Plugin_Authorization extends Zend_Controller_Plugin_Abstract
{
    public function dispatchLoopShutdown()
    {
        $auth = Zend_Auth::getInstance();
        if(!$auth->hasIdentity())
        {              
            $name = $this->getRequest()->getControllerName();                        
        }
    }
}
Go to the top of the page
+Quote Post
LBO
post 17.06.2008, 19:23:48
Post #6





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


ekhm, użyj routeStartup()... jes to pierwsza w kolejności metoda uruchamiana dla pluginu - ty natomiast umieściłeś od w ostatniej smile.gif To chyba nie pasuje do tego co chcesz zrobić.
Go to the top of the page
+Quote Post
JarCzeS
post 17.06.2008, 20:38:47
Post #7





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.05.2008

Ostrzeżenie: (0%)
-----


przy routeStartup() dostaje:

Strict Standards: Declaration of Zend_Controller_Plugin_Authorization::routeStartup() should be compatible with that of Zend_Controller_Plugin_Abstract::routeStartup() in
Go to the top of the page
+Quote Post
LBO
post 17.06.2008, 20:44:14
Post #8





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Klasa bazowa deklaruje odpowiednie parametry dla tych metod - przepisz je... a nawet nie, podpowiem: routeStartup(Zend_Controller_Request_Abstract $request)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 03:50