Klasy |
Klasy |
17.02.2003, 22:02:11
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
Witam. Jestem prawie nowy wiec prosze o wyrozumialosc
Moje pytanie jest czysto teoretyczne. Otoz czy warto uzywac klas. Czy nie wystarczylyby funkcje oraz co jest szybsze. |
|
|
18.02.2003, 11:56:19
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat Moje pytanie jest czysto teoretyczne. hmm watek chyba bardziej kwalifikowlaby sie na php pro ale to zoabczymy :)
Otoz czy warto uzywac klas. Czy nie wystarczylyby funkcje oraz co jest szybsze. o obiektach: sa wolniejsze od funkcji zdefiniowacyh statycznie jednak pozwalaja w latwy sposob grupowac fukcje ktore od siebie zaelza. masz tez wieksza swobode manewrowania - nie musisz w kazdym miejscu sprawdac czy zaladowano wszystkie pdorzedne funkcje z ktorych korzystasz. przy duzych projektach spokojnie zaczynam projekt od szkieltu klasy, przy mniejszych spokojnie wystarczaja funkcje ;) -------------------- .. make web your home ..
|
|
|
18.02.2003, 17:45:42
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Musze jeszcze dodac z przykroscia, ze klasy w php to tylko ulamek mozliwosci techniki obiektowej dostepnej chociazby w Javie.
Obiekty napewno moga ulatwic Ci zycie przy duzych projektach ale tak jak napisal kurtz przy mniejszych sa wzasadzie tylko sztuka dla sztuki. |
|
|
18.02.2003, 21:17:56
Post
#4
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
hmmm ma to byc wiekszy projekt, wiekszy od moich dotychczaasowych.
Glownym problemem jest niestety szybkosc. Z tego co zauwazylem np. phpnuke nie opiera sie wcale na klasach (przynajmniej tak wynika z mojej analizy). Jeszcze jedno pytanie czy stosowac klasy do "wszytkiego"?? Chodzi mi o to czy klasy stosowac wszedzie nawet jesli jakas czesc wystepuje tylko jeden raz. |
|
|
18.02.2003, 22:55:54
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat Glownym problemem jest niestety szybkosc. hmm straty wynikajace z uzycia obiektow czesto sa sladowe (tzn w ms). duzo zalezy od tego co tak na prawde bedziesz robil i czy bedziesz potrzebowal wykonywac zabierajace czas operacje - wtedy warto zaczac myslec rowniez o cachowaniu :)Cytat Z tego co zauwazylem np. phpnuke nie opiera sie wcale na klasach (przynajmniej tak wynika z mojej analizy). z calym szacunkiem ale phpnuke jest kiepskim wyznacznikiem "jak pisac duze projekty" dla mnie. jest wrecz antywzorem w niektorzych dziedzinach wg mnie.Cytat Jeszcze jedno pytanie czy stosowac klasy do "wszytkiego"?? Chodzi mi o to czy klasy stosowac wszedzie nawet jesli jakas czesc wystepuje tylko jeden raz. zdecydowanie nie do wszystkiego. jesli jakis fragment wystepuje raz to byc moze nawet ani obiektu, ani funkcji nie bedziesz potrzebowal ;)
-------------------- .. make web your home ..
|
|
|
18.02.2003, 23:31:16
Post
#6
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
hmm zostalem przekonany do klas tylko nasuwaja sie kolejne pytania:
Od czego zaczac Na jakiej podstawie wrzucac funkcje do jednej klasy? PS. Wiem ze truje, no ale od tego jest chyba to forum |
|
|
19.02.2003, 00:03:13
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat Od czego zaczac ?? od poczatku :)
http://php.polbiznes.pl/manual/pl/language.oop.php najlepiej jak sam przygotujesz jakas (nawet prosta klase) i uzyjesz jej kilka razy. dobrze by tez bylo gdybys obyl sie troszke z uzywaniem i tworzeniem obiektow zanim zaczniej z nich korzystac z produkcji - nawet lepiej zebys na razie pozostal przy pisaniu strukturalnym (bo pewnie znasz je lepiej). w ten sposob nie bedziesz musial "na chybcika" douczac sie/ bladzic gdy pojawi sie jakis problem. Cytat Na jakiej podstawie wrzucac funkcje do jednej klasy? na podstawie wlasnego widzimisie. jesli uzywasz danego bloku wiecej niz jeden raz (tzn w wiecej niz jednej metodzie/funkcji) mozesz go raczej wrzucic do nowej funkcji (byle nie przesadzic ;)
-------------------- .. make web your home ..
|
|
|
19.02.2003, 09:25:18
Post
#8
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 0 Dołączył: 24.10.2002 Skąd: warszawa Ostrzeżenie: (0%) |
hmm... klasy sa duzo lepsze przy projektach zakladajacych ich ciagly rozwoj .. bo np tworzysz klase ktora dziedziczy wlasnosci od innej i roszerzasz ja o wlasne.. to potem jak porzebujesz zaimplementowac jakas dodatkowa funkcje np sprawdzajaca bledy lub rozszerzajaca mozliwosci to po prostu dopisujesz co trzeba.. a w przypadku gdy powielasz te same funkcje juz to wymaga od ciebie implementacji modulu w kazda z nich.. przewaga klas jest tu znaczaca wg mnie...
-------------------- Zalew :: http://jakubzalewski.info
|
|
|
19.02.2003, 12:02:09
Post
#9
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
Dzieki za wszystko !!!!
Klasy mam jak narazie opanowane na "sucho". Sprobuje to cos co mam napisac napisac za pomoca klas. PS. Jeszcze tu wroce |
|
|
19.02.2003, 15:34:58
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) |
Proponuje zacząć od zbudowania sobie klasy nadrzędnej z której dziedziczą wszystkie pozostałe. Jeśli ktoś programował np. w Delphi to powinien kojarzyć coś takiego jak klasa TObject - chodzi o tę samą zasadę. Artykuł na ten temat: Abstract Classes.
-------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
24.02.2003, 22:21:43
Post
#11
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
hmm... i powracam ) tym razem z konkretnym problemem:
Wyskakuje mi taki oto blad : Kod Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /home/qba/public_html/class.php on line 10
Wiem ze to blad parsacji ale nie widze w tym kodzie nic blednego Kod 8 linia: class db
9: { 10: var $connect_id; 11: var $dbname; 12: var $result; Z gory dzieki za pomoc |
|
|
24.02.2003, 23:50:30
Post
#12
|
|
Grupa: Zarejestrowani Postów: 407 Pomógł: 0 Dołączył: 24.10.2002 Skąd: warszawa Ostrzeżenie: (0%) |
cwiczenia czynia mistrza, sam dojdziesz co zchrzaniles. rozdzial klasy w manualu dosc dobrze opisuje co jak nalezy definiowac i jak sie do tego odnosic.. pobaw sie z tym jakis czas, kazdy musi przez to przejsc
-------------------- Zalew :: http://jakubzalewski.info
|
|
|
25.02.2003, 13:59:12
Post
#13
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
No nie kurde poprawianie 150 linijek kodu (i tak fart ze tylko tyle:) a i dlaczego tak sie dzieje
|
|
|
25.02.2003, 14:14:24
Post
#14
|
|
Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) |
Cytat No nie kurde poprawianie 150 linijek kodu :) (i tak fart ze tylko tyle:) a i dlaczego tak sie dzieje ?? masz blad skladni nieco wyzej.
-------------------- .. make web your home ..
|
|
|
25.02.2003, 15:23:22
Post
#15
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) |
Przypomnialy mi sie normalnie stare dobre czasy kiedy pisalem Kod if ($i=1) {}
I zachodzilem w glowe czemu $i jest caly czas takie same. Normalnie az sie lezka w oku kreci. A tak na marginesie to blad nie zawsze jest tam gdzie wzkazuje php. { } i ( ) to dwie rozne sprawy. |
|
|
25.02.2003, 18:11:11
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Pozwole sobie dac tu maly przykladzik prostej klasy do wysylania smsow na bramke plusa (bez implementacji proxy - ominiecia banu IP):
plus.class.php Kod <?php
// sms_plus class v1.0.3 // Copyright(C)2002 by Seth class sms_plus{ var $from = ''; var $to = ''; var $msg = ''; var $inner_vars = array(); function sms_plus( $from="", $to=0, $msg="" ){ $this->from = $from; $this->to = $to; $this->msg = $msg; $this->inner_vars = array(); $this->inner_vars['host'] = 'www.text.plusgsm.pl'; } // Zwraca: // 1 - dla wyslanej wiadomosci // 2 - dla przekrczenia limitu bramki // -1 - dla innych rezultatow function get_info( &$text ){ if( strpos($text, 'została wysłana') != 0 ) return 1; if( strpos($text, 'przekroczenia limitów bramki') != 0 ) return 2; return -1; } // Wysyla wiaodmosc function send(){ $data = 'tprefix='.substr( $this->to, 0, 3 ).'&numer='.substr( $this->to, 3 ).'&odkogo='.$this->from.'&dzien='.date('Y-m-d').'&godz='.date('H').'&min='.date('i').'&tekst='.$this->msg; $fp = fsockopen( $this->inner_vars['host'], 80 ); fputs( $fp, "POST /sms/sendsms.php HTTP/1.1rn" ); fputs( $fp, "Host: ".$this->inner_vars["host"]."rn" ); fputs( $fp, 'Referer: http://'.$this->inner_vars['host']."rn" ); fputs( $fp, 'Content-length: '.strlen($data)."rn" ); fputs( $fp, "Content-type: application/x-www-form-urlencodedrn"); fputs( $fp, "Connection: closernrn" ); fputs( $fp, $data ); $buf = ""; while ( !feof( $fp ) ) $buf .= fgets( $fp, 128 ); fclose($fp); return $this->get_info( $buf ); } } ?> Tutaj natomiast jet kod, ktory korzysta z owej klasy: Kod <?php
$prefix['plus'] = array( 601, 603, 605, 607, 609, 691, 693, 695 ); if( in_array( substr($_POST[to],3), $prefix['plus'] ) ){ require_once( 'plus.class.php' ); $sms = new sms_plus(); $sms->to = $_POST["to"]; // nr kom osoby do ktorej wysylamy przek. z form. $sms->msg = $_POST["msg"];// wiadomosc przekazana ze strony z formularzem $sms->from = $_POST["from"]; // podpis od kogo jest wiadomosc switch( $sms->send() ){ case 1: echo 'Wyslano smsa'; break; case 2: echo 'Przekroczono limit wysylnia'; break; default: echo 'blad bramki sms'; break; } }else{ echo 'zly prefix'; } |
|
|
25.02.2003, 23:08:54
Post
#17
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) |
heh.... nie wywalalo mi sie z powodu skladni (przynajmniej teraz kod dziala a nic w nim nie zmienialem) wywalalo mi sie z powodu blednego zapisu pliku dokonanego prze "swietny polski edytor plikow html <<pajaczek>>" :?
wywalalo sie w miejscach gdzie byly wcicia w kodzie (a wiec caly kod) po zrobieniu od nowa wciec dziala ) |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 12:45 |