Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa główna i podklasy
busterek
post
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:

  1. <?php
  2.  
  3. class site
  4. {
  5. var $class1;
  6. var $class2;
  7.  
  8. function site()
  9. {
  10. $this->class1 = new class1();
  11. $this->class2 = new class2();
  12. }
  13. }
  14.  
  15. class class1
  16. {
  17. function klasa1funkcja1()
  18. {
  19. echo 'To jest funkcja 1 w klasie 1.<br />';
  20. }
  21. function klasa1funkcja2()
  22. {
  23. echo 'To jest funkcja 2 w klasie 1.<br />';
  24. }
  25. }
  26.  
  27. class class2
  28. {
  29. function klasa2funkcja1()
  30. {
  31. echo 'To jest funkcja 1 w klasie 2.<br />';
  32. }
  33. function klasa2funkcja2()
  34. {
  35. echo 'To jest funkcja 2 w klasie 2.<br />';
  36. }
  37. }
  38.  
  39. $site = new site();
  40.  
  41. $site->class1->klasa1funkcja1();
  42. $site->class1->klasa1funkcja2();
  43. $site->class2->klasa2funkcja1();
  44. $site->class2->klasa2funkcja2();
  45.  
  46. ?>


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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





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":

  1. class site
  2. {
  3. public $class1;
  4. public $class2;
  5.  
  6. function __construct()
  7. {
  8. $this->class1 = new class1();
  9. $this->class2 = new class2();
  10. }
  11. }


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
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: 5.10.2025 - 03:46