Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> widocznosc obiektu wewnątrz klasy
Black-Berry
post 13.02.2008, 01:01:28
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

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


Czy we wnątrz klasy mogę użyć zewnętrzny obiekt bez konieczności używania deklaracji public ?

  1. <?php
  2. class c_page_creator_main
  3. {
  4. function c_page_creator_main()
  5. {
  6. global $db; //wewnątrz chciałbym użyć ten obiekt bez ciągłego deklorowania go jako public
  7. $db->query( "SELECT * FROM tabela" );
  8.  
  9. }
  10. ?>


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cotter
post 17.02.2008, 00:10:37
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 12
Dołączył: 6.01.2008
Skąd: Wrocław

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


Ja w tym celu tworzę sobie obiekt globalny w tablicy GLOBALS i w celu skrócenia kodu odwołuję się do niego przez funkcję (nie będącą w żadnej klasie):
  1. <?php
  2. $GLOBALS['sql'] = new Sql();
  3.  
  4. function sql()
  5. {
  6. return $GLOBALS['sql'];
  7. }
  8.  
  9. //i teraz można już używać ten obiekt wszędzie tak:
  10. sql()->query(...);
  11. ?>


Jeżeli zależy nam na singletonie to można oczywiście zastosować zwykły singleton i dopisać sobie taką funkcję:
  1. <?php
  2. function sql()
  3. {
  4. return Sql::getInstance();
  5. }
  6. ?>


Idea polega na tym aby skrócić kod odwołania. Prościej i szybciej jest używać sql()->query() niż Sql::getInstance()->query();

Jeżeli chodzi o tworzenie obiektu nadrzędnego, po którym będą dziedziczyły wszystkie inne to nie polecam tego rozwiązania. W pewnym sensie zmusza ono programistę do dziedziczenia po tej klasie co może czasami okazać się niewygodne.
Go to the top of the page
+Quote Post

Posty w temacie
- Black-Berry   widocznosc obiektu wewnątrz klasy   13.02.2008, 01:01:28
- - webdicepl   Może dziedziczenie?   13.02.2008, 01:08:35
- - Black-Berry   nie ma innego sposobu ?   13.02.2008, 01:22:21
- - webdicepl   [PHP] pobierz, plaintext <?php class c_page_cre...   13.02.2008, 01:24:03
- - Black-Berry   no tak ale wtedy za kazdym razem bede musiał tworz...   13.02.2008, 01:28:07
- - webdicepl   Możesz jeszcze przekazywać obiekt do metody.   13.02.2008, 01:43:03
- - LonelyKnight   Cytat(Black-Berry @ 13.02.2008, 01:0...   13.02.2008, 11:05:44
- - Black-Berry   @LonelyKnight MAsz u mnie piwo:)   13.02.2008, 11:26:21
- - webdicepl   Dodam że singleton jest porównywany z globalami ty...   13.02.2008, 12:02:27
- - em1X   po prostu napisz sobie jakiś obiekt podstawowy, kt...   13.02.2008, 12:12:54
- - Black-Berry   @webdicepl Tak sobie myślę... że skoro różnica ma ...   13.02.2008, 12:15:45
|- - em1X   Cytat(Black-Berry @ 13.02.2008, 12:1...   13.02.2008, 16:09:25
- - webdicepl   Tak jak Ci mówiłem, tu najlepszym rozwiązaniem będ...   13.02.2008, 12:26:27
- - Black-Berry   Rozumiem, W takim razie zrobię tak jak sugerujesz....   13.02.2008, 16:29:09
- - em1X   Zauważ, że jeżeli będziesz chciał wprowadzić jakie...   13.02.2008, 16:49:11
- - Black-Berry   Tak, jakoś tak wyszło, że zaczynałem w PHP4 i się ...   13.02.2008, 21:01:49
|- - em1X   1) Bez sensu.... i skończ z tym globalem w końcu ...   13.02.2008, 21:12:55
- - Black-Berry   Dobra przekonałes mnie. Postęp musi być Dzis w no...   14.02.2008, 01:06:52
- - Tubis   Lepiej by było jakby te db_host, db_user i passwor...   16.02.2008, 11:57:16
- - Cysiaczek   Może tak jednak nie globale i stałe, a jakiś obiek...   16.02.2008, 12:08:40
- - Black-Berry   Taki obiekt konfiguracyjny były również singletone...   16.02.2008, 12:18:52
- - Cysiaczek   To już od Ciebie zależy. Może być sigletonem, ale ...   16.02.2008, 12:36:45
- - Cotter   Ja w tym celu tworzę sobie obiekt globalny w tabli...   17.02.2008, 00:10:37
- - Black-Berry   no to teraz mi już namieszałeś totalnie Znacznie ...   17.02.2008, 12:30:36
|- - em1X   No pewnie, że namieszał. Jeżeli chcesz przechowyw...   17.02.2008, 12:48:57
- - Black-Berry   @em1X tego typu osłonka sprawdza się ...   17.02.2008, 15:16:46
|- - em1X   1) dużo lepiej niż było na początku Trzeba pisać...   17.02.2008, 16:44:50
- - Black-Berry   boje się że mi życia na naukę ...   17.02.2008, 17:00:23


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

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2025 - 20:40