Jump to content
php.lv forumi

MVC iekš PHP


Recommended Posts

Vai kāds nevarētu sniegt piemēru par Model-View-Controller (MVC) pielietošanu iekš PHP? Cik es saprotu, piemēram, var atdalīt lapas attēlošanu un mysql vaicājumus kodā. Iepriekš paldies, ja kādam būs ar ko padalīties.

Link to post
Share on other sites

nav gan patterni s**ds, tik jāatrod 'fīlings' kā, kur un kuru patternu lietot tā lai tie tiešam palīdzētu, nevis tikai būtu izmantoti. t.i. scripts būtu labāk lasāms, ātrāk rakstāms, vieglāk atkukaiņojams utt.

 

arī subjectīvi, protams :)

Edited by v3rb0
Link to post
Share on other sites

ar mvc kļūda var būt 3vietās, templeitā(visi gluki ar htmlu), modelī (kaut kas ar sqliem), vai kontrolerī(kaut kas ar scripta loģiku - piem izauc saglabāšanu, a izpildās dzēšana), un varbūt arī 4turtā vieta - kādā helperī (scripta gabali ar kontrolerim specifisku vai globālām utilītu f-jām)

identificēt kurā daļā ir kļūda nav nemaz tik grūti ;)

Link to post
Share on other sites

2 Delfins

Daudz bēdīgāk gan ir, kad atver tādu "pure PHPTML", un mati saceļas stāvus, jo nav saprotams, kur beidzas loģika, sākas algoritms un vēl atēlojums "maisās pa kājām". Un, ja sākumā tas vēl kaut cik ir lasāms, tad pēc zināma labojumu/uzlabojumu ieviešanas kods kļūst absolūti nelasāms pat autoram.

Var tikai apsveikt virzību uz OOP un patterniem. Kad pie tā pierod, vairs nav ne mazākās vēlēšanās atgriezties pie tā "pure".

Sorry par off :)

Link to post
Share on other sites

Man nav nekāds MVC un citu kutu templeišu sistēmu... bet lietot šādi tev neviens neaizliedz, bet imho visādi Smarty/MVC tik visu sarežģī..

 

$table = new InventTable();
$xtable = new XTable('items');

$xtable->setSelectionColumn('itemid');

$field = new StdClass();
$field->ID = 'itemid';
$field->Label = label('ID');
$field->Type = 'text';
$xtable->addField($field);

$field = new StdClass();
$field->ID = 'statustxt';
$field->Label = label('status');
$field->Type = 'text';
$xtable->addField($field);

$html_table .= $xtable->getHeaderHtml();
$query = $table->getQuery();
while ( $row = $this->dbio->obj($query) )
{
$row->statustxt = InventTable::status2txt($row->status);

$html_table .= $xtable->processRecord($row);
}
$html_table .= $xtable->getFooterHtml();

htmlAddVar('BODY', $html_table);

Link to post
Share on other sites

Es nesaprotu, nu kāpēc ir jāizvaro programmēšanas valoda.. nu nav tam PHP domāts - PHP pamatos ir bijis vienkāršs, ātrs.. tagad grib pataisīt par kārtējo sūdu, lai piemēram uzrakstītu HelloWorld būs jauzliek core-web application, jāuzcep modulis, jasazīmē templeits, jo redz bez tā nevarēs ;)

Link to post
Share on other sites

piekrītu par purephp Delfinam.

man nepatīk, ka jāinklūdo cores faili uz 50kb, tad jāizsauc miljons funkcijas, lai dabūtu echo 'helloword'; galugalā uztaisot projektu tiek sainklūdoti savi 100kb 95% nevajadzīga koda, izbraukts caur miljards nevajadzīgām funkcijām un ātrdarbība samazinās 666 reizes. un kam tas vajadzīgs? lai projektu pabeigtu par nedēļu ātrāk? un lai pēctam pasūtītājs pērk megakrutus serverus, lai viņi spēj turēt to visu abnormāli nevajadzīgo slodzi? pff

Link to post
Share on other sites
×
×
  • Create New...