Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skąd pochodzi wywołanie metody
Magan
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


Zakładając, że jest dany obiekt z poszczególnymi metodami, czy istnieje sposób by sprawdzić w metodzie, czy metoda ta została wywołana z poza obiektu albo z obiektu?

Ten post edytował Magan 3.09.2014, 00:16:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Magan
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.06.2009

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


Dziękuję za wskazówki. (IMG:style_emoticons/default/wink.gif) Borykam się z systemem hooków gdzie poniekąd tej sztuczki mi trzeba. Moja idea jest następująca i raczej z niej skorzystam, może kogoś zainsteresuje i się przyda. (IMG:style_emoticons/default/wink.gif)

  1. class main {
  2. function __construct()
  3. {
  4.  
  5. }
  6.  
  7. private function something($params)
  8. {
  9. //Metoda właściwa obiektu
  10. return $params;
  11. }
  12.  
  13. function __call($method,$params)
  14. {
  15. //Metoda magiczna odbierająca wywołania zabezpieczonych metod z poza obiektu filtrująca hooki
  16. if () { //sprawdzenie czy metoda istnieje po usunięciu z jej nazwy preffixu "hook_" lub innego (przykładowy) i wykonanie jej, pozostała walidacja
  17. if (){} //wywołanie hooku jeśli jego suffix to "_before" z parametrami metody do której się odwołuje
  18. $this->$method($params); //metoda do której odnosi się hook
  19. if (){} //wywołanie hooku jeśli jego suffix to "_after", jak z "_before"
  20. return $params;
  21. }
  22. return false;
  23. }
  24.  
  25. }
  26.  
  27. $main = new main;
  28. $main->hook_something_before($params); //ta metoda zadziała
  29. $main->something($params); //ten sposób zwróci "false"
  30. $main->nieistniejaca_metoda(); //a ten to już w ogóle


Tak to pokrótce wygląda, pisane z palca, mieć się na baczności.

PS. Przydał by się tabulator tutaj albo jestem nie uświadomiony (IMG:style_emoticons/default/wink.gif)

Ten post edytował Magan 4.09.2014, 22:12:28
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 09:37