Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: używanie klas spowalna skrypt ?
Forum PHP.pl > Forum > PHP
mablo
Tak jak w temacie.

Wyjaśnie tylko że słyszałem że używanie klas spowalnia skrypty, dlatego właśnie nie poleca się używanie klas na siłę. Czy to prawda questionmark.gif
SongoQ
Jesli chesz zrobic cos prostego jak petle ktora np sumuje liczby to nie ma sensu uzywac klas. Zeby stwierdzic czy i kiedy uzywac klas musisz niestety sie sam przekonac, poprostu musisz to poczuc. Z tym czasem wykonania to do konca nie jestem pewnien jak to jest, wiem ze byl jakis test w C++ co jest lepsze i OOP wygralo, ale nie pamietam jaki problem (algorytm) byl testowany.
Nievinny
Jak robisz aplikację typu hello world to nie używasz klas. Jak robisz mały stystem uploadu (czyli wybierz plik do zapisania i pokaż pliki) to używasz funkcji. Ale jak robisz większy serwis (logowanie/panel admina/itp) lub frameworka, cmsa, forum czy inny tego typu skrypt to używasz klas, bo inaczej możesz się nie wyrobić.
hwao
Cytat(mablo @ 2005-06-29 15:03:53)
Tak jak w temacie.

Wyjaśnie tylko że słyszałem że używanie klas spowalnia skrypty, dlatego właśnie nie poleca się używanie klas na siłę. Czy to prawda questionmark.gif

Wszytko praktycznie spowolnia ksrypt nawet np uzywanie " zamiast '.
Wiec jest to pojecie wzgledne niby zwalnia ale tak niewiele ... w konuc
  1. <?php
  2. echo 'hello';
  3. ?>

  1. <?php
  2. function hello() { return 'hello'; }
  3. echo hello();
  4. ?>

  1. <?php
  2. class string { // class for php4
  3.  $this->string = null;
  4.  function hello( $string ) {
  5. $this->string = $string;
  6.  }
  7.  function get() {
  8. return $this->string;
  9.  }
  10. }
  11.  
  12. $string = new String( 'hello' );
  13. echo $string->get();
  14. ?>


Wszytko dziala ale zgaduj co jest najwolniejsze:) a roznica jest hmm nie widoczna w sumie - za to przydatnosc kodu duuza (1 mozna uzyc tylko dla 1 przypadku 1 jest zdefiniowany na stale a klasa jest dla dowolnego stringu).
dr_bonzo
hwao, musisz jeszcze troche pocwiczyc: http://www.phppatterns.com/index.php/artic...leview/103/1/1/ tongue.gif

Co do tematu: trzeba dobrac odpowiednia armate do odpowieniej muchy smile.gif, po prostu niektorych systemow/skryptow nie zrobisz bez klas (OOP).
NuLL
@dr_bonzo - dobre biggrin.gif

php jest językiem natywnie strukturalnym - pierwsze wersje php nie posiadały modelu obiektowego. Korzystanie z OOP prawie zawsze spowalnia skrypt.

Gdyby kod miał to samą długość zarówno po obiektowemu jak i w wersji strukturalnej - to wersja obiektowa będzie wolniejsza.
Nievinny
@NuLL -> ale często nie ma i za to chwalą OOP. Niedawno kolega robił małą stronkę blokowo, więc trochę tego kodu było. Czas generowania ok. 0.3 sek, po dodanie OOP czas zmalał do 0.25 sek, a kody zmieniejszył objętość 2 razy.

Wniosek: W zależności od projektu stosuj odpowiednie techniki. Jak zrobisz źłe to tak jak byś wystawił pancernika przeciw pantofelkowi winksmiley.jpg
Imperior
Skoro mówimy o prędkości to trzeba też mieć świadomość tego, że OOP chodzi dużo szybciej na PHP5 (Zend 2) niż na PHP4.

Wydaje mi się, że na PHP5 nie ma sensu nie używać OOP, nawet do małych stron.
donpablo
trzeba pamiętać że php nie jest językiem w pełni obiektowym i jeżeli znasz np. C++ to zapewne zauważyłeś że nie ma czegoś takiego jak funkcja wirtualna, niejawne wywołanie konstruktora klasy podstawowej itp. itd. Niemniej jednak programowanie strukturalne przechodzi do lamusa. Wkrótce php też otrzyma cechy polimorfizmu i wtedy łatwiej będzie strawić ten wielki krok do przodu mając już pewne pojecie o obiektowości. Wiem bo sam byłem w takiej sytuacji kiedy przechodziłem z C na C++. Więc radze od razu wejść na głębsze wody. A co do szybkości to póki co skrypty na klasach są nieco wolniejsze ale do czasu wielości form w php
hawk
Cytat(donpablo @ 2005-06-30 10:58:08)
trzeba pamiętać że php nie jest językiem w pełni obiektowym i jeżeli znasz np. C++ to zapewne zauważyłeś że nie ma czegoś takiego jak funkcja wirtualna, niejawne wywołanie konstruktora klasy podstawowej itp. itd.

Kiepskie te przykłady biggrin.gif.
W php wszystkie funkcje są wirtualne, a niejawne wywołanie konstruktora klasy podstawowej wcale nie jest potrzebne w OOP - patrz Java.
Cytat
Wkrótce php też otrzyma cechy polimorfizmu i wtedy łatwiej będzie strawić ten wielki krok do przodu mając już pewne pojecie o obiektowości.

Nie sądzę. Najpierw musieliby wprowadzić ścisłą kontrolę typów, a tego przecież nie wprowadzą.
donpablo
Cytat
W php wszystkie funkcje są wirtualne

To akurat jest bzdura - mówiłem o polimorfizmie, a ten musi być bo inaczej język stanie w miejscu
NuLL
Gdzie czytałeś, że php otrzyma cechy polimorfizmu :?:

Wątpię podobnie jak @Hawk...

Ja gdzieś słyszałem o wielowątkowości ale jakoś jej ni widu ni słychu.
hawk
Cytat(donpablo @ 2005-06-30 16:52:08)
Cytat
W php wszystkie funkcje są wirtualne

To akurat jest bzdura - mówiłem o polimorfizmie, a ten musi być bo inaczej język stanie w miejscu

Akurat nie. Polecam lekturę definicji funkcji wirtualnych. Nawiasem mówiąc, pure virtual == abstract.

Co do polimorfizmu i stania w miejscu - bzdura. Każdy ma prawo do swoich poglądów, ale twórcy php akurat swoje wyrazili wystarczająco jasno.
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.