Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] optymilizacja a klasy i funkcje
Forum PHP.pl > Forum > Przedszkole
CconradD
Mam takie czysto teoretyczne pytanie tongue.gif Tworze właśnie skrypt. I wpakowałem do klas około 95% kodu. A do nich funkcje (Np na różne części meni, dość rozbudowane, i każdy ma swoją funkcje; czy też do zapytań Mysql, osobne funkcje dla WHERE, LIMIT, czy ORDER; parsowanie strony). Wszystko dość przejrzyściej wygląda, wiele rzeczy pobieranych przez Mysql'a umieszczane jest w atrybutach i przetwarzane przez funkcje.
I teraz moje pytanie: czy to ma jakiś wpływ na spowalnianie skryptu, czy też na jego funkcjonalność. Chodzi mi o to jak to powinno wyglądać 'profesjonalnie'? Trochę ogólne pytanie, ale jestem ciekaw biggrin.gif
Dodam że używam PHP 4.4, a nie 5 (bo wiem że 5 jest bardziej obiektowa)
likedat
Najwiekszym problemem wydajnosciowym w PHP sa chyba rozlazle kwerendy MySQL i iterowanie po tysiacach wynikow.
Programowanie obiektowe to dobre programowanie i PHP w wersji 5 radzi sobie z nim doskonale.
Tworz wiec klasy i obiekty z czystym sumieniem winksmiley.jpg
pest
Pokaż jak wygląda taki twój przykładowy plik z klasą, to się dowiesz, co można zrobić, żeby wyglądało profesjonalnie.

Wpływ na spowolnienie skryptu - oszczędności czasu szuka się gdzie indziej (pętle, zapytania do bazy, wyrażenia regularne itp.)

Btw. to czy kod jest przejrzysty możesz sprawdzić na 2 sposoby:
1. Dać innemu programiście;
2. Po pół roku zajrzeć do kodu i spróbować zmienić konkretną rzecz.
CconradD
Dzięki za odpowiedzi. No to umieszczę klasę i do niej kilka funkcji:
  1. <?php
  2. class moviesclass
  3. {
  4. var $lang;
  5. var $link = array();
  6. var $TableGet = array();
  7. var $TableQuery = array();
  8. var $TablePrint = array();
  9. var $TableImport = array();
  10.  
  11. function QueryWhere()
  12. {
  13. $Table = array( 'CATEGORY' , 'SEARCH' );
  14.  
  15. foreach ( $Table as $Where )
  16. {
  17. if ($this->TableGet[$Where] != null)
  18. {
  19. foreach ($this->TableGet[$Where] as $Category => $Value )
  20. $QueryWhere = $QueryWhere . "AND $Category LIKE '%" . $Value . "%' ";
  21. }
  22. }
  23. if ($QueryWhere != null)
  24. $this->TableQuery['Where'] = ' WHERE' . substr( $QueryWhere , 3 );
  25. }
  26.  
  27. function MenuSort ()
  28. {
  29. $SortCategory = $this->TableImport['CategorySort'];
  30. $N = 0;
  31. foreach ($SortCategory as $one_sort )
  32. {
  33. $this->FullLink( "sort=$one_sort ASC&" , $asc , 'sort' );
  34. $this->FullLink( "sort=$one_sort DESC&" , $dsc , 'sort' );
  35. $this->TablePrint['SORT'][$N]['LINKDSC'] = $dsc;
  36. $this->TablePrint['SORT'][$N]['LINKASC'] = $asc;
  37. $this->TablePrint['SORT'][$N]['NAME'] = $this->lang[$one_sort];
  38. $N = $N + 1;
  39. }
  40. }
  41.  
  42. function FullLink( $hr , &$nm )
  43. {
  44. $newlink = $this->link;
  45. for ($i=2;$i<=func_num_args()-1;$i++) 
  46. unset($newlink[func_get_arg($i)]);
  47. while ( list( $x , $link1 ) = each( $newlink ) )
  48. $href = $href . $link1;
  49. $href = preg_replace( array('@&$@' , '@?$@') , '' , ("movies.php?$href$hr") );
  50. $nm = $href;
  51. }
  52. }
  53. ?>


Jakie błędu w tym przypadku mogą być?
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.