Mam interfejs API do interakcji z moją aplikacją internetową, zdefiniowaną przez klasę. Każda publicznie dostępna metoda wymaga uwierzytelnienia przed uruchomieniem. Zamiast umieszczać tę samą linię w kółko w każdej metodzie, chciałbym użyć magicznej funkcji __call. Będzie jednak działać tylko na prywatnych lub chronionych metodach, a moje muszą być publiczne, aby pracować z Zend_Json_Server.__wspólnotowy odpowiednik dla metod publicznych
class MY_Api
{
public function __call($name, $arguments)
{
//code here that checks arguments for valid auth token and returns an error if false
}
public function myFunction($param1, $param2, $param3)
{
//do stuff when the user calls the myFunction and passes the parameters
//this function must remain public so that Zend_Json_Server can parse it
//but I want it intercepted by a magic method so that the authentication
//can be checked and the system bails before it even gets to this function.
}
}
Czy można włączyć te publiczne funkcje i ewentualnie anulować ich wykonanie przed wywołaniem?
Czy używasz Zend ACL? –
Jeszcze nie. Nie byłem pewien, czy był odpowiedni do zastosowania w tej sekcji aplikacji. Jest to interfejs API odpoczynku, więc nie loguje się i nie konfiguruje sesji, ale przekazuje token. –
Co nazywa się metodą publiczną i czy wywołujący może wywołać metodę uwierzytelniania? – webbiedave