ra001 Posted August 8, 2006 Report Share Posted August 8, 2006 Esmu php sameeraa neilgu laiku. Pārlūkojot php dokumentācijas un lasot kaut kādas blēņas internetā, īpaši daudz neatradu par objektu izmantošu. Tā kā esmu Borland C++Builder un Delfi stagnāts, tad man interesē tomēr kāda ir Jūsu attieksme ismantojot PHP oop? Cik sapratu tad nekādas mantošanas te nav iespējams un vēl dažas pierastas lietas, kas ir "parastajās" valodās? Es nedaudz ķepājos iepriekš ar Perlu un tur bija jauka klase CGI, kuru es mēģināju (protams ne pilnībā) implementēt iekš saviem php darbiņiem Te ir to piemērs. Tad nu jautājums diskusijai - vai būtu ērti izmantot šādu vai līdzīgi klasi, vai tomēr pieturēties pie parastā procedurālā pieraksta? Man jau nu pašiem liekas, ka vismaz kods paliek stipri pārskatāmāks... bet var bau būt, ka tās ir ikai iedomas. class RaTable { function begin($param = "") { echo "<table cellspacing='0' cellpadding='0' $param>\n"; } function end() { echo "</table>\n"; } function td($text, $param = "") { echo "<td $param>$text</td>\n"; } function td_blank($param = "") { echo "<td $param> </td>\n"; } function td_begin($param = "") { echo "<td $param>"; } function td_end() { echo "</td>\n"; } function tr() { echo "<tr>\n"; } function tr_end() { echo "</tr>\n"; } } //end class table class RaForm { function begin($action = "", $param="") { echo "<form method='post' action='$action' $param>\n"; } function end() { echo "</form>\n"; } function input_text($name, $value, $param="") { echo "<input type='text' name='$name' value='$value', $param>\n"; } function input_memo($name, $value, $param="") { echo "<textarea name='$name' $param>$value</textarea>\n"; } function submit($name, $value, $param="") { echo "<input type='submit' name='$name' value='$value' $param>\n"; } function hidden($name, $value) { echo "<input type='hidden' name='$name' value='$value'>\n"; } function select($name, $param="") { echo "<select name='$name' $param>\n"; } function option($name, $value, $param="") { echo "<option value='$value' $param>$name</option>\n"; } function select_end() { echo "</select>\n"; } function calendar() { echo "<iframe width=199 height=178 name='gToday:normal:agenda.js' id='gToday:normal:agenda.js' src='WeekPicker/ipopeng.htm' scrolling='no' frameborder='0' style=' visibility:visible; z-index:999; position:absolute; top:-500px; left:-500px; ' ></iframe>\n"; } function do_calendar($pform, $pfield) { echo "<a href='java script:void(0)' class='calendar' onclick=' if (self.gfPop) gfPop.fPopCalendar(document.$pform.$pfield); return false; ' HIDEFOCUS> <img name='popcal' align='absmiddle' src='WeekPicker/calbtn.gif' border='0' alt=''> </a>\n"; } } //izmantošana $table = new RaTable(); $form = new RaForm(); $table->begin("width='100%'"); $table->tr(); $table->td_blank("width='20'"); $table->td("Datums","width='85'"); $table->td("width='100'"); $form->begin("cits.php","name='test_form'"); $form->hidden("id",$id); $form->input_text("input_name","default"); $form->submit("submit","Pievienot"); $form->end(); $table->td_end(); $table->td_blank(); $table->tr_end(); $table->end(); Link to comment Share on other sites More sharing options...
v3rb0 Posted August 8, 2006 Report Share Posted August 8, 2006 (edited) mantošana class A extends B { ... } table tagam f-ju gan nevajag rakstīt - liekvārdība un pašam garāk jālasa. labāk izmantot php kā templeitu valodu un templatē ar ierakstīt table tagu ar roku. ja meklē guidlines kā taisīt var pastīties kādus frameworkus, pārsvarā pēc līdzības ar javu vai ror tie tasīti - piemēram tas pats cakephp. Edited August 8, 2006 by v3rb0 Link to comment Share on other sites More sharing options...
Delfins Posted August 8, 2006 Report Share Posted August 8, 2006 (edited) Konkrēts piemērs (Ra*) nerulz... PHP to nodrošina defaultā (jo ir templeitu valoda) Es piemēram OOP izmantoju priekš DB tabulām (iespaidojos no Axapta X++) class ItemsTable extends BaseTable // BaseTable rūpējas par query izpildi un erroriem { function initFromPost($_post) { } function insert/delete/update() ... } tādejādi es daru tā: $t = new ItemsTable($params['id']); $t->initrFromPost($_POST); $t->update(); nevis: // garš penteris te if (...) $sql = "insert .. "; // garš penteris te else $sql = "update .."; // garš penteris te // garš penteris te Edited August 8, 2006 by Delfins Link to comment Share on other sites More sharing options...
Shaman`is Posted August 9, 2006 Report Share Posted August 9, 2006 iecheko CakePHP vai Zend Framework pat ja neizmantosi nevienu no shiem, sho projektu source kodi faktiski ir atbildes uz taviem jautaajumiem. Link to comment Share on other sites More sharing options...
Recommended Posts