Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazanie klasy do innej klasy, Przekazanie klasy do innej klasy
vadergb
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.06.2009

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


Dotychczas piszac skrypty np. chcac przekazac dostepne rzeczy z klasy obslugi bazy danych robilem to na zasadzie przekazania jej do nastepnej.

cos typu:
$klasa = news baza();
$klasa2 = news baza($klasa);

i potem np w klasa2:
  1. class klasa2 {
  2. private $mysqli;
  3. public function __construct(mysqli $mysqli) {
  4. $this->mysqli = $mysqli;
  5. }
  6. public function findAllNews() {
  7.  
  8. $result = $this->mysqli->query ( "SELECT * FROM my_news where title='DEU' limit 2" );
  9. $result_arr = array ();
  10. while ( $data = $result->fetch_object () ) {
  11. $result_arr [] = $data;
  12. }
  13. return $result_arr;
  14.  
  15. }
  16. }

Czy jest to najwydajniejszy sposob?

Czy jest mozliwosc zrobienia klasy publicznej nie uzywajac singletona?

Przy wiekszej ilosci klas do przekazania robi sie balagan:

np. trzeba przekazac klasy: obsluga bazy danych, obsluga $_POST (itp.), Klasa obslugujaca Sesje, Klasa ACL - i jeszcze kilka by sie znalazlo...
Te klasy powinny byc tak na dobra sprawe dostepne prawie wszedzie w kazdej innej klasi - Czy jest jakis inny sposob na przekazanie jej do innej klasy innym sposobem niz singleton?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vadergb
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 10.06.2009

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


Cytat(fifi209 @ 17.08.2009, 13:37:12 ) *
Najprościej to zrobić klasę statyczną, która będzie "pojemnikiem" na Twoje obiekty. Wtedy nic nie musisz mieć w konstruktorze jako parametr.


Zrobilem cos takiego:
  1. class join {
  2. static $vars = array ();
  3. public function __set( $index, $value) {
  4. join::$vars [$index] = $value;
  5. }
  6. }

Uzywam:
  1. $mysqli = new mysqli ( "localhost", "root", "pass", "nazwabazy" );
  2. $httprequest = new HTTPRequest ( );
  3. $template = new template ( );
  4. $join = new join();
  5. $join->template=$template;
  6. $join->httprequest=$httprequest;
  7. $join->mysqli=$mysqli;

I teraz gdy uzyje:
  1. print_r(join::$vars);

To wypisuje my wszystkie objekty gdzie chce. Mozna zrobic podzial do jakiej klasy jakie obiekty maja przychodzic.
To dobra droga?

Czy chodzi o cos innego?
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: 11.06.2026 - 11:20