Sliipeetais Posted August 27, 2004 Report Share Posted August 27, 2004 (edited) Esmu nolēmis savus uzrakstītos PHP skriptus reizi pa reizei iemest šeit, lai tos apskata profesionāļa acs un izsaka savu viedokli, citādi, es labāk skriptēt neiemācīšos. Pirmās ir funkcijas, ar kuru palīdzību ir ērtāk veidot html tabulas: function caption($caption) { $table=" <caption>$caption</caption>\n"; return $table; } function header() { $table=" <tr>\n"; foreach(func_get_args() as $item) { $table.=" <th>$item</th>\n"; } $table.=" </tr>\n"; return $table; } function head($id='default') { $table="<table id=\"$id\">\n"; return $table; } function body($array, $header='') { $table=" <tr>\n"; if(!empty($header)){ $table.=" <th>$header</th>\n"; } foreach($array as $item) { $table.=" <td>$item</td>\n"; } $table.=" </tr>\n"; return $table; } function foot() { $table="</table>\n"; return $table; } Nākamās funkcijas paredzētas dažādu FORM elementu izveidošanai: function form_h() { $form="<form method=\"POST\" action=\"$_SERVER['PHP_SELF']\">\n"; return $form; } function form_f() { $form="</form>\n"; return $form; } function textbox($size, $name, $value='') { $form="<input type=\"text\" name=\"$name\" value=\"$value\" size=\"$size\" />\n"; return $form; } function checkbox($name, $value, $checked='') { $form="<input type=\"checkbox\" name=\"$name\" value=\"$value\" $checked />\n"; return $form; } function groupbox_h($legend) { $form="<fieldset style=\"padding: 2\">\n<legend>$legend</legend>\n"; return $form; } function groupbox_f() { $form="</fieldset>\n"; return $form; } function dropdownbox_h($name) { $form="<select size=\"1\" name=\"$name\">\n"); return $form; } function dropdownbox_b($value, $text, $selected='') { $form="<option value=\"$value\" $selected>$text</option>\n"; return $form; } function dropdownbox_f() { $form="</select>\n"; return $form; } Edited August 27, 2004 by Sliipeetais Link to comment Share on other sites More sharing options...
bubu Posted August 27, 2004 Report Share Posted August 27, 2004 Kautkā neliekas par daudz to funkciju? Nebūtu laiks padomāt par OOP vai kautko uz templeitu pusi? Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 (edited) Nu lūk, pastāsti man lūdzu kaut ko par OOP un templeitiem. Par OOP minimāli izpratne ir, par templeitiem neesmu dzirdējis. Edited August 27, 2004 by Sliipeetais Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 T.i., kā šo pašu var uzrakstīt efektīgāk? Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 Izgūgloju internetu par tēmu templates. Ideju sapratu. Bet ko darīt ar OOP? Es neredzu jēgu (mana saprašana) tās funkcijas sabāzt klasē. Pēc tam viss tikai sarežģijas. Link to comment Share on other sites More sharing options...
bubu Posted August 27, 2004 Report Share Posted August 27, 2004 Nu lab OOP nevajag, ja nav pašam skaidrības. Man jau nu OOP patīk. Bez uz templeišu izvadi der pastīties, nebus ar rociņām pašam jāizsauc tās head/body/foot fjas. Viss notiksies kandrīz automātiski Link to comment Share on other sites More sharing options...
рпр Posted August 27, 2004 Report Share Posted August 27, 2004 nu oop ir gauzjaam vienkaarshi tavaam funkcijaa izdari shaadi: class nosaukums { // sheit ieliec taas funkcijas } peec tam nodefinee klasi. $klase = new nosaukums(); peec tam vari izsaukt savas funkcijas no klases $klase->header() ; viss straadaa taa pat kaa ar funkcijaam tikai priekshrociiba, ka tu tagad vari arii veidot klases mainiigos (var) un izmantot konstruktorus utt. Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 Lūk, tieši šo priekšrocību es nesparotu. Klases mainīgos? Labi, es saprotu, man ir mainīgais, kuru var izmantot visas šīs funkcijas un šis mainīgais ir tikai iekš klases. Taču manā gadījumā neviens šāds mainīgais, šķiet, nav vajadzīgs. Un kas ir konstruktori? Link to comment Share on other sites More sharing options...
рпр Posted August 27, 2004 Report Share Posted August 27, 2004 piemeeraa abas funkcijas var izmantot vienu klases mainiigo. sho klases mainiigo ar ii var izmantot aareeji. nu ceru, shis koda gabalinjsh dariis tev gaishaaku galvu. klase nosaukums { var $mainiigais = 'viens'; function viens () { return $this->mainiigais; } function divis () { return $this->mainiigais; } } konstruktors ir taada funkcija, kur palaizjot nodefineejot klasi. Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 Sapratu. Bet konkrēti manā gadījumā takš nav šādu mainīgo, kuri būtu nepieciešami visām funkcijām.? Link to comment Share on other sites More sharing options...
bubu Posted August 27, 2004 Report Share Posted August 27, 2004 Sliipeetais saproti, php nav namespaces. Tās var tur realizēt ar klasēm. Tagad tev kā ir tās funkcijas - visas vienā kaudzē, nesmuki. Nosaukumui var pārklāties vai vēl kas. A tu varētu uztaisīt klases - vienu html failam, vienu - tabulām, vienu - meņucim, vienu - formām, utt. Un tad darīt apmēram šādi: <?php $page = new html('mans title'); $table = new table('caption'); $table->addRow('aa', 'bb', 'cc'); $table->addRow('aa'...); $form = new form('add.php', 'post'); $form->addTextInput('name', $maxlength, ...); $page->insert($table->getHtml()); $page->insert($form->getHtml()); $page->display(); ?> Nu vai šitā kods nepaliek smukāks, tb. loģiskāks? A tavā gadījumā būs kaudz ar funkciju izsaukumiem, un nezinātājām būs jāskātās, kādam elementam, kura funkcija ko dara. Link to comment Share on other sites More sharing options...
рпр Posted August 27, 2004 Report Share Posted August 27, 2004 nu tabulu funkcijai piemeeram tajaa mainiigajaa var iemest tabulu saturu, liidz ar to tev nevajadzees speciaali kaut kur piegalabaat datus, vienkaarshi ar funkciju pieliek rindu un tie dati jau saglabaajas tajaa mainiigajaa. atkal ar beigu funkciju nosleedz tabulu un izvada. vismaz es taa esmu dariijis un man likaas eerti. Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 Emm, tāds kautrīgs jautājums, kas ir namespaces? Link to comment Share on other sites More sharing options...
bubu Posted August 27, 2004 Report Share Posted August 27, 2004 (edited) Ja tev vienā failā definēts $i = 4, bet tu savā failā (kurā inklūdo to pirmo failu) lieto arī $i mainīgo, tad īstenībā tas būs viens un tas pats mainīgais. Īsāk sakot bardaks ar vienādi nosauktajiem globālajiem mainīgajiem. Ar namespace tu vinjus vari atdalīt, pasakot pie kura konkrētā $i tu vērsies. Paskālā šī problēma ir atrisināta izmantojot Unitus, C++ valodā ir implementēts namespace keywords, a PHP jāiztiek ar klasēm: <?php class klase1 { static $i; function abc() { return 'esmu klase1::abc'; } } class klase2 { static $i; function abc() { return 'esmu klase2::abc'; } } // tagad var lietot tos abus $i kā dažādus mainīgos klase1::$i = 1; klase2::$i = 2; echo klase1::$i; // izdrukās 1 echo klase2::$i; // izdrukās 2 // funkcijas tāpatās echo klase1::abc(); echo klase2::abc(); ?> Edited August 27, 2004 by bubu Link to comment Share on other sites More sharing options...
Sliipeetais Posted August 27, 2004 Author Report Share Posted August 27, 2004 OK, par namespacēm sapratu, bet tagad atgriežoties mazliet atpakaļ: <?php $page = new html('mans title'); $table = new table('caption'); $table->addRow('aa', 'bb', 'cc'); $table->addRow('aa'...); $page->display(); ?> Es nesaprotu, kā es varēšu panākt, ka tā tabula aiztaisīsies? Es nesparotu, kā var izveidot tabulu un pēc tam viņai sabāzt iekšā tos rowus. Link to comment Share on other sites More sharing options...
Recommended Posts