Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Klasy
qbba
post 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%)
X----


Witam. Jestem prawie nowy wiec prosze o wyrozumialosc biggrin.gif

Moje pytanie jest czysto teoretyczne.
Otoz czy warto uzywac klas. Czy nie wystarczylyby funkcje oraz co jest szybsze.
Go to the top of the page
+Quote Post
kurtz
post 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.  
Otoz czy warto uzywac klas. Czy nie wystarczylyby funkcje oraz co jest szybsze.
hmm watek chyba bardziej kwalifikowlaby sie na php pro ale to zoabczymy :)

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 ..
Go to the top of the page
+Quote Post
Seth
post 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.
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


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.
Go to the top of the page
+Quote Post
kurtz
post 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 ..
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


hmm zostalem przekonany do klas biggrin.gif tylko nasuwaja sie kolejne pytania:
Od czego zaczac questionmark.gif Na jakiej podstawie wrzucac funkcje do jednej klasy?

PS. Wiem ze truje, no ale od tego jest chyba to forum laugh.gif laugh.gif
Go to the top of the page
+Quote Post
kurtz
post 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 ..
Go to the top of the page
+Quote Post
zalew
post 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...


--------------------
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


Dzieki za wszystko smile.gif !!!!
Klasy mam jak narazie opanowane na "sucho".
Sprobuje to cos co mam napisac napisac za pomoca klas.

PS. Jeszcze tu wroce biggrin.gif biggrin.gif
Go to the top of the page
+Quote Post
dragossani
post 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
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


hmm... i powracam smile.gif) 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
Go to the top of the page
+Quote Post
zalew
post 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 smile.gif


--------------------
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


No nie kurde poprawianie 150 linijek kodu smile.gif (i tak fart ze tylko tyle:) a i dlaczego tak sie dzieje questionmark.gif
Go to the top of the page
+Quote Post
kurtz
post 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 ..
Go to the top of the page
+Quote Post
rzseattle
post 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%)
-----


laugh.gif

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.
Go to the top of the page
+Quote Post
Seth
post 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';

}
Go to the top of the page
+Quote Post
qbba
post 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%)
X----


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 smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 23:55