Jump to content
php.lv forumi

OOP klases


hu_ha

Recommended Posts

Sveiki, domaajams ka php pamatus esmu gana iecirties, tagad ir doma uzsaakt to visu OOP variantaa. Kaapeec? Taapeec ka peec peedeejaa projekta man ir paarlieciiba, ka to kodu var izveidot taadu lai to vareetu lietot veel citos liidziigos projektos.

 

Man jautaajums ir taads:

Kaa veidot klases taa, lai taas buutu universaali izmantojamas?

 

piemeeram: izveidoju klasi connection ar klases locekljiem:

hosts

datu_baaze

lietotaajvaards

parole

 

shis variants der vienmeer, bet kaadu objektu var izveidot piemeeram tabulai.

kaadi ir jaaveido klases loceklji???

vareetu likt:

tabulas_nosaukums

lauku_skaits

 

bet ko veel, jo tabulu lauku skaits tak ir dazhaads, taapat arii lauku nosaukumi un datu tipi. kaa to izveidot.

 

cerams ka saprataat manu murgaino veelmi...

Link to comment
Share on other sites

/me domaa ka tabulu laukus un tipus peec vajadziibas var nofetchot no datu baazes

 

Klasees izmanto pierastaakos vaardus: "field" un "table" ir universaalaaks nekaa "lauks" un "tabula", no offence pret latvieshu valodu, vai vismaz veido sinoniimmetodes, kaa tas ir pashaa php engiinee:

 

function dariTaaUnShitaa()

{

izpildaams kods

}

function doThisAndThat()

{

dariTaaUnShitaa();

}

 

"sadrucini" kodu peec iespeejas vairaakaas fuknkcijaas, kura katra 1) pieshkjir/apstraadaa kaadu veertiibu 2) atgriezh rezultaatu/false

 

P.S.> a kakova tev vajadziiga tabulas propeertija ieksh klases? kur tu vinju liksi?

Link to comment
Share on other sites

ar lauku apraxtiishanu droshi vien ir tomaats tjipa tas, lai klase zinaatu, kad ziimeet <input type=text....>, <input type=textarea cols=50 rows=5.... utt...

es to visu saliku mysql tabulaa dbprefix_descriptor, kuraa tika apraxiits katras lietojamaas tabulas katrs laux...

tachu viens ieteikums: ir laiciigi veerts padomaat par klashu hierarhiju...

tjipa

class childclass extends parentclass {

 

.....

}

 

Tas ir ljoti noderiigi :)

Savaadaak man klases ar laiku izaug paaaaaaraaaak resnas :)

 

http://paste.php.lv/577

 

tas vien ir iesaakums ar var definiicijaam :)

 

betnu, dazhos projektos taa table ljoti labi veel rullee :)

 

tachu shiis klases galvenais miinuss bija, ka taa kalpoja gan vizuaalajam outputam, gan datu redigjeeshanai ieksh db....

 

tur labaak divas dazhaadas klases:

 

 

class VisualSomething {

 

var $abstractclass;

 

}

 

$drawer=new VisualSomething();

$drawer->abstraclass=somedbopclass();

 

....

 

murgs, noguris esmu :)

Link to comment
Share on other sites

visaa visumaa es meegjinu izdomaat kaadi objekti ir jaaizveido.

 

viens man ir skaidrs ka vareetu buut objekts connection ar parametriem: hosts, parolet utt.

 

bet kaadus objektus lai veel veido. tipa kadam buutu jaaizskataas objektam, kursh satureetu datus no datu baazes...

kaadus objektus juus esat izveidojushi, lai ieguutu datus no datu baazes??

man nevajag kodu, man vajag tiiri idejiski - piem connection objekts domaats piesleegumam, tad tabulas objekts domaats.... un atteeloshanas objekts... un satur taadus klases mainiigos...

 

man interesee ideja, ko tajos objektos liek un kaadus objektus veido tieshi webam...

 

luudzu nesist, ja runaaju muljkjiibas, jo kaa jau teicu tad censhos tajaa iebraukts

(p.s. c++ ir aptuveni skaidra padariishana, bet neesmu darbojies ar datu baazi tieshi oop liimenii)

Link to comment
Share on other sites

Viss it kaa ir skaisti, bet sanaak, ka katrai tabulai ir jaaraxta sava klase, ja raxta shaadi:

 

class EntriesRowBuilder extends RowBuilder { 
        function columnHeader() { 
            $ret = ''; 
            $ret .= '<tr><th>vārds</th><th>matemātika</th>'; 
            $ret .= '<th>fizika</th><th>ģeometrija</th></tr>'."\n"; 
            return $ret; 
        } 
        function addRow($row) { 
            $ret = ''; 
            $ret .= '<tr><td>'.$row['vards'].'</td><td>'.$row['matematika'].'</td>'; 
            $ret .= '<td>'.$row['fizika'].'</td><td>'.$row['geometrija'].'</td></tr>'."\n"; 
            return $ret; 
        } 
    }

 

 

Piem addRow nebuutu universaalaak raxtiit taa:

 

 

function addRow($row) {

   $ret = '<tr>';
   foreach ($row as $ele) {
       $ret.='<td>'.$ele.'</td>'
   }
   $ret .= '</tr>';
   return $ret;


}

Edited by des
Link to comment
Share on other sites

Jā, katrai tabulai jāraksta sava klase. Vai tu Ziemassvētkos būtu priecīgāks, ja tev uzdāvinātu tādu pašu ActionMan kāds ir kaimiņu Kārlim vai arī mazliet citādāku, piemēram, ar sarkanu šalli?

Link to comment
Share on other sites

Tad jau var raxtiit arii shaadi:

 

 

class brTag {

  var $output; 
   
  function reset(){
        
      $this->output='';
  }
  
  function compile(){
      
      $this->Reset();
      $this->output='<br>';        

  }

  function get(){

      $this->compile();
      return $this->output;
  }


  function draw(){
  
     echo $this->get();
  }


}


//un katraa vietaa, kur vajag br, raxtam:
$brz=new brTag();
$brz->Draw();

 

taaalaak var saraxtiit klases tableTag, trTag.... utt :)

Link to comment
Share on other sites

nu ok, paldies visiem, kas centaas paliidzeet...

 

izrunaajos kaartiigi ar vienu keksu un tad laikam man daleca.

tipa kaa jau n reizes te teicu, tad veidoshu klaci conneciton.

otra klase ir tabula, kurai klases loceklis ir tikai tabulas nosaukums (varbuut veel kas uzpeldees)

un paareejaas buus klases funkcijas - tipa funkcijai nodo stringu un tajaa funkcija sho stringu apstraadaas. buus stringaa $str="1,2,maaciiba,4" un tad es funkcijaa analizeeju sho stringu - aiz komata ir lauka nosaukums, kuru vajag izrakt.

 

nu tas viss idejas liimenii, taa kaa kad riktiigi shito mociishu augshaa, tad droshi vien ka buus veel 100 un 1 jautaajums :)

Link to comment
Share on other sites

:blink: Man sitas nepielec ari kaut gan gribas sito ficu php programeshana iemacities! Nezinu kapec bet pec skata oop klases man vairak patik neka parastais kods ! Ja nu kadam ir kads links uz kadu manuali vai ari kaut kas ko palasit tad nu drukajiet foruma vai nu sutitiet uz email! [email protected] :blink:

Link to comment
Share on other sites

nu saac ar pashu vienkaarshaako:

 

 

<?

class HelloWorld {

  var $message;

  //konstruktors 
  function HelloWorld(){
  
      $this->message='Hello World!';

  }

  function say(){

     echo $this->message;      

  }


}


$hw=new HelloWorld();
$hw->say();

//rezultaads buus "Hello World!" browzerii :)

?>

 

 

:) Galvenais jebkukuraa iebraukshanaa ir prakse :)

saac vienkaarshi aardiities.

pofig, ka saakumaa sanaak liiki.

pofig, ka peec kaada laika tagad raxtiitais liekas nekam nederiigs.

galvenais ir action :)

Link to comment
Share on other sites

Thank ! des tu esi mans guruu! Es pat agrak nezinaju ka tekstu prosta paradit ar OOP bet nu tagad tev pateicoties es zinu!

Link to comment
Share on other sites

×
×
  • Create New...