![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
chyba tylko debug_backtrace
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 4 Dołączył: 23.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Można to ewentualnie rozwiązać jawnie za pomocą parametru metody, w którym podasz, skąd ją wywołujesz.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
kolega Magan chyba nie chce sterować przepływem kodu w metodzie zależnie od tego, czy została wywołana z innej metody tego obiektu, bądź spoza niego? ^^ (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 3.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie tak (IMG:style_emoticons/default/smile.gif) Chodzi o to, by metoda w obiekcie wiedziała, czy jest wykonana z poza obiektu czy z metody tego samego obiektu bądź (tutaj inna opcja) i zależnie od tego wykonać inne instrukcje. (IMG:style_emoticons/default/smile.gif) Chyba wykorzystam sztuczkę z __call() a do kluczowych funkcji dodam preffix i już. Chyba, że ktoś znajdzie lepszy pomysł. (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zrób "fasadę" dla metody poprzez ukrycie żądanej metody poprzez private i zrobienie innej dostępowej public. W ten sposób wew. możesz korzystać z prywatnej metody a z zewnątrz poprzez "fasadę" czyli np. doAction('nazwa_metody');
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
hehe Pyton_000 mnie ubiegł (IMG:style_emoticons/default/smile.gif)
------------------------------------- skoro potrzebujesz różnej logiki, to lepiej napisać więcej krótszych metod. Taki przykład: powiedzmy, że chcesz coś zrobić z otrzymanym argumentem, ale jeśli został przekazany z zewnątrz, to trzeba go najpierw zwalidować, a jeśli z innej wewnętrznej metody klasy to nie trzeba walidować, bo wtedy zawsze jest poprawny. No to tak jakoś to można zrobić:
Ten post edytował irmidjusz 4.09.2014, 08:38:04 |
|
|
![]()
Post
#8
|
|
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)
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 05:33 |