![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Dręczy mnie jeden problem, natury projektowej. Stowrzyłem jakiś czas temu zbiór funkcji, głównie dla siebie, które pomagają mi przy towrzeniu różnych projektów. Funkcje te, połączyłem w klasy. Wszystko działa, jednak gdy towrzę moduły, to środowisko IDE (NetBeans) nie podpowiada mi funkcji. Może przytoczę przykład:
W momencie kiedy piszę kod i nacisnę kombinację ctrl + spacja po napisaniu $site-> podpowiada mi zmienne i funkcje klasy site. Kiedy wybiorę podklasę class1, czyli w kodzie mam następującą konstrukcję: $site->class1-> i nacisnę wyżej wspomnianą kombinację klawiszy, wtedy NetBeans stwierdza, że nie może mi nic podpowiedzieć. Po wpisaniu funkcji z palca wszystko działa. Jednak jest to uciążliwe, gdyż muszę pamietać kilkadziesiąt funkcji zapisanych w podklasach. Czy da się jakoś to zrobić, aby to działało?? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A niby skad Twoj edytor ma wiedziec, ze akurat obiekt class1 jest obiektem klasy Class1? Takie rzeczy mowi sie poprzez odpowiednie komentarze przy deklaracji wlasciwosci klasy.
Poczytaj o PHPDoc |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 49 Dołączył: 16.04.2012 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Zamień
na
i gotowe (IMG:style_emoticons/default/wink.gif) . Cytat A niby skad Twoj edytor ma wiedziec, ze akurat obiekt class1 jest obiektem klasy Class1? Stąd, że tworzy przecież te obiekty. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli korzystasz z NB to PHPDoc bardzo ładnie będzie CI podpowiadał metody klas o ile tylko dobrze użyjesz annotacji/komentarzy czyli /** @costam costam */ - nie chcę za dużo podpowiadać.
Dodam jedynie, że NB sam ładnie generuje PHPDoc'a jeśli zaczniesz wpisywać /** i dasz [enter] nad deklaracją funkcji/klasy/metody/zmiennej itd - musisz tylko wówczas uzupełnić dany komentarz. Fajnym i przydatnym skrótem do dokumentowania zmiennych wewnątrz kodu jest kombinacja klawiszy "vdoc[tab]" nad zmienną, którą chcesz opisać. ) Trochę razi mnie w oczy przedpotopowa obiektówka jaką tu pokazałeś. Na dzień dzisiejszy trzeba by przepisać klasę "site":
i trzymać się tego (IMG:style_emoticons/default/wink.gif) EDIT: zmieniłem dostęp z private na public - ze względu na wykrozystanie przez autora tematu - proponowałbym tu jednak zastosować gettery. Ten post edytował Sephirus 1.10.2013, 14:26:40 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Tuminure do tego sluzy PHPDoc jak juz pisalem i jak pisal Sephirus.
A jak jakis geniusz zrobi tak: $this->class1 = new class1(); a potem $this->class1 = new class2(); To skad edytor ma wiedziec co podpowiadac? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 178 Pomógł: 49 Dołączył: 16.04.2012 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Nie przeczę, że tworzenie PHPDoca to zły pomysł, jednak NB rozpoznaje metody bez tego.
Cytat To skad edytor ma wiedziec co podpowiadac? Na podstawie analizy kodu prawdopodobnie. Nie mam nic wspólnego z kodem źródłowym NB, więc nie wiem czemu to działa ale działa - powiedziałbym, że działa dokładnie tak jak chcę (i jak uważam, że powinien), podczas testowania przykładu podanego przez Ciebie. Ten post edytował Tuminure 1.10.2013, 13:53:39 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@Tuminure - masz rację w przypadku konstruktora NB sobie poradzi i będzie wiedział co podpowiedzieć dla danej własności klasy/obiektu. Mimo to bardzo dobrą praktyką jest komentowanie i używanie PHPDoc. Jeśli własność będzie inicjalizowana w metodzie "x" a nie konstr. to po jej wywołaniu NB już tego nie załapie niestety bo nie może przetwarzać całego kodu (IMG:style_emoticons/default/wink.gif)
@webmaniak Masz np coś takiego:
Powiedzmy, że pod $c wrzuci Ci obiekt klasy My_Cache_Class do obsługi cacheowania czegośtam na stronie. Chcesz żeby po wpisaniu $c-> podpowiedziało Ci metody. Robisz tak: stawiasz kursor nad zmienną $x, naciskasz po kolei literki v,d,o,c (skrót - VDOC) i naciskasz [tab]. Inaczej mówiąc wpisujesz słowo vdoc i naciskasz TAB. Pojawi Ci się coś takiego:
podmieniasz "ClassName" na to co potrzebujesz i już (nazwa klasy itp):
Ten post edytował Sephirus 1.10.2013, 14:21:00 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 371 Pomógł: 30 Dołączył: 14.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, nie zaczaiłem na początku z tym vdoc (IMG:style_emoticons/default/smile.gif) jeśli znasz więcej takich skrótów, albo link do jakiś artykułów i chciałbyś się podzielić to będę wdzięczny za wiadomość na priv (IMG:style_emoticons/default/smile.gif) - nie chce już tu robić off-topa (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
A słuchajcie. Bo kiedy mam kod, jak zaprezentowany, to działa wyśmienicie. Zmienne podpowiadają się wspaniale. Ale kiedy klasy przerzucie do oddzielnych plików, a następnie w pliku index.php dołącze je poprzez require_once, to wtedy podpowiada tylko zmienną z klasy site, a dalej już nie. I teraz nie wiem, czy to jest wina NB, czy czegoś innego. Podpowiecie?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 19:54 |