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, 15:28:02 ) *
Bardziej o coś takiego:

  1. class globals {
  2.  
  3. static private $vars;
  4.  
  5. static public function _get($name) {
  6. if (isset(self::$vars[$name])) {
  7. return self::$vars[$name];
  8. }else{
  9. return false;
  10. }
  11. }
  12.  
  13. static public function _set($name, $value) {
  14. return self::$vars[$name] = $value;
  15. }
  16. }


i potem używasz w innej klasie:
  1. globals::_set('zmienna', 'test');


hmm ale mowimy o zapisywaniu w tej klasie objektow nie zmiennych.
zrobimy np
  1. globals::_set('obiekt1', $object);


a potem:
  1. $obiekt1=globals::_get('obiekt1');

i w $obiekt1 mamy juz obiekt ktory chcemy.

Ale jest sens pchac w to nowa klase - przez to chyba skrypt traci na wydajnosci niz jakbysmy robili to za pomoca tradycyjnej metody:

  1. $obiekt1=new obiekt();
  2. $obiekt2=new obiekt1($obiekt1);


Zalezy mi na zeby jak najbardziej to bylo wydajne. To nie ma byc pod budowe xxx stron skrypt - tylko pod budowe okreslonej strony ktora docelowa bedzie odwiedzac sporo grupa ludzi.

pozdrawiam
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(vadergb @ 17.08.2009, 14:37:56 ) *
hmm ale mowimy o zapisywaniu w tej klasie objektow nie zmiennych.
zrobimy np
  1. globals::_set('obiekt1', $object);

No obiektów, a to że pokazałem jak zapisać zmienną to inna sprawa... Obiekt też się tam zapisze.

Cytat(vadergb @ 17.08.2009, 14:37:56 ) *
Ale jest sens pchac w to nowa klase - przez to chyba skrypt traci na wydajnosci niz jakbysmy robili to za pomoca tradycyjnej metody:

  1. $obiekt1=new obiekt();
  2. $obiekt2=new obiekt1($obiekt1);



Zalezy mi na zeby jak najbardziej to bylo wydajne. To nie ma byc pod budowe xxx stron skrypt - tylko pod budowe okreslonej strony ktora docelowa bedzie odwiedzac sporo grupa ludzi.

pozdrawiam


To zastanów się co chcesz. Powiedziałem Ci jak to prościej zrobić, ew. możesz singletona wrzucić.
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 - 10:27