Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wydajność kawałka kodu w php oop
Forum PHP.pl > Forum > Przedszkole
SiganPL
Witam, właśnie dopiero co w miare opanowałem podstawy oop

I tak sobie pisze małą klasę do obsługi zapytań i chciałem zapytać o to czy ten fragment kodu

  1. public function select()
  2. {
  3. $this -> values = $values;
  4. $this -> table = $table;
  5. $this -> where = $where;
  6. $this -> sort = 'ORDERBY'.$sort;
  7. $this -> limit = 'LIMIT '.$limit;
  8.  
  9. [indent]$query = 'SELECT'.$this -> values.' FROM '.$this -> table.' WHERE '.$this -> where.' '.$this -> sort.' '.$this -> limit;[/indent]


Jest w miare wydajny... czyli czy nie będzie zbyt "ciężki", w kodzie mogło by to wyglądać następująco:

  1. $orders_query -> values = "id, nazwa, kategoria";
  2. $orders_query -> table = "orders";
  3. $orders_query -> where = "";
  4. $orders_query -> sort = "";
  5. $order_query -> limit = "";
  6. $orders_query -> exec();


Zakładając że funkcja exec() wykonywała by zapytanie
SELECT'.$this -> values.' FROM '.$this -> table.' WHERE '.$this -> where.' '.$this -> sort.' '.$this -> limit

Chodzi mi tylko o metode przekazywania danych do zapytania, czy można zrobić to w taki sposób że wszystko oddzielnie podajemy jak na ww przykładzie, czy lepiej zastosowac metode w jednej linijce $orders_query -> select( 'A TUTAJ CAŁE ZAPYTANIE' );

Jak dla mnie to 1 metoda (ta wyżej smile.gif ) jest bardziej czytelna przy długich zapytaniach, ale nie wiem jak to sie ma do oszczędności procka ramu czy co tam sie obciąża.
zend
Lepiej by było jak byś się zaczął przejmować kodem, jeszcze nie czas na przejmowanie się wydajnością, poza tym próbowałeś wykonać choć kilka różnych zapytań tą klasą? Bo nie wydaje mi się, żeby działała tak jak chcesz. W ramach nauki spróbuj zaimplementować coś takiego
  1. $select = new Select($pdo);
  2. echo $select -> from('tabela') -> limit(1 , 2) -> where('') -> where('') -> orWhere() -> join();
  3. $result = $select -> execute();


Poczytaj o fluent interface i o __toString(); Przedstaw też swój kod w całości
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.