Maris-S Posted July 19, 2011 Report Share Posted July 19, 2011 Vai ir liela jēga izmantot šablonu sistēmas? Iespējams es neesmu kaut ko sapratis, bet es redzu vairāk trūkumus nekā priekšrocības šablonu sistēmām. Piemēram, ja apskatam "smarty", es nesaprotu ar ko šis: <ul> {for $foo=1 to 3} <li>{$foo}</li> {/for} </ul> ir labāks par šo: <ul> <?php for ($i = 1; $i < 4; $i++) { echo("<li>$i</li>"); } ?> </ul> Vienīgā priekšrocība ir tas ka kods ir mazliet īsāks, ko es nekad neesmu uzskatījis par priekšrocību. Tomēr trūkumu ir vairāk kā vajag. Pats primitīvais ka nav "code highlight" jebkurā izstrādāšanas vidē. Tālāk jāmācās vēl šablonu valoda, ja iet runa par smarty, tad daudz maz ir ok, tā ir izplatīta, tai ir dokumentācija, to var salīdzinoši vienkārši iemācīties, bet ja iet runa par paštaisītu, kurai noteikti nav ne dokumentācijas ne pamācību, tad uzreiz sarežģījas lietas, kad kods ir jānodod citiem programmētājiem. Nākošais ir veiktspēja. Jau tā php ir salīdzinoši lēns, jo ir interpretators un tad ar šo interpretatoru tiek veidots vēl viens šablonu interpretators, ar savu sintaksi, saviem tagiem, kas visu kopējo padarīšanu vēl vairāk palēninās. Viss tas tikai tāpēc, lai izņemtu <?php ?> no html koda un izveidotu savus, kas veido nepieciešamību pētīt kā kodā darbojas visādi ķeburi, kuriem nav pilnīgi nekā kopēja ne ar php, ne html. Kas ir slikts ja skatā parādās daži php tagi? To visu dara principa pēc, vai kā? Quote Link to comment Share on other sites More sharing options...
rpr Posted July 19, 2011 Report Share Posted July 19, 2011 es nekad neesmu izmantojis nevienu template sistēmu. īsti pat bbcode nav izmantots. Quote Link to comment Share on other sites More sharing options...
codez Posted July 19, 2011 Report Share Posted July 19, 2011 PHP pats ir template dzinejs līdz ar to PHP pusē nav jēga izmantot ko citu kā tikai pašu PHP (izņemot atsevišķus gadījumus). Quote Link to comment Share on other sites More sharing options...
briedis Posted July 19, 2011 Report Share Posted July 19, 2011 Pie velna tos šablonu dzinējus. Kas vainas šai sintaksei? <ul> <? for ($i = 1; $i < 4; $i++): ?> <li><?=$i;?></li> <? endfor; ?> </ul> <? while(..): ?> .... <? endwhile; ?> <? if(..): ?> .... <? endif; ?> Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 19, 2011 Report Share Posted July 19, 2011 Why use a templating engine with a framework? Why should I use templating system in PHP? Quote Link to comment Share on other sites More sharing options...
404 Posted July 19, 2011 Report Share Posted July 19, 2011 (edited) Pie velna tos šablonu dzinējus. Kas vainas šai sintaksei? <ul> <? for ($i = 1; $i < 4; $i++): ?> <li><?=$i;?></li> <? endfor; ?> </ul> <? while(..): ?> .... <? endwhile; ?> <? if(..): ?> .... <? endif; ?> Laikam jau tāda,ka: <? esot slikti,un short_open_tag var nākotnē kļūt deprecated,tāpēc nākas rakstīt jau <?php echo $var; ?> jo <?php $var; ?> neparādīs neko un dizaineriem,kam jāstrādā ar templeitiem,esot vieglāk uztvert {} vai %% nekā <?= ?> :D Citi argumenti nenāk prātā,jo ar nekad neesmu sapratis,kādas priekšrocības dod kaut kāda monstroza templeitu sistēma kas jāstudē kā cita valoda lai viņu varētu vispār pielietot. Edited July 19, 2011 by 404 Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 19, 2011 Report Share Posted July 19, 2011 dizaineriem,kam jāstrādā ar templeitiem,esot vieglāk uztvert {} vai %% nekā <?= ?> :D Citi argumenti nenāk prātā,jo ar nekad neesmu sapratis,kādas priekšrocības dod kaut kāda monstroza templeitu sistēma kas jāstudē kā cita valoda lai viņu varētu vispār pielietot. Pilnīgas muļķības, ja kodu liek iekšā programmētājs, tad dizainerim visāpār ar to nav nekāda sakara. Tur pretī ja dizaineris liek iekšā tos templetu simbolus etc. , tad vieglāk viņam iemācīt PHP pamatus. Piedevām templetu sistēma noēd daļu no resursiem. Kods vispār jastrukturē tā, lai pēc iespējas mazāk HTML daļa būtu PHP konstrukcijas - tikai tīras datu izvades un nekas vairāk .. 99% gadījumos nav nepieciešams HTML kodā daļa izmantot IF/FALSE vai vel trakāk ciklus. Vienkārši jaizmanto MVC principus, nav jau jāpieturās pilnīgi pie viņiem, tomēr PHP daļu maksimāli būtu jādala no HTML Quote Link to comment Share on other sites More sharing options...
Kverkagambo Posted July 19, 2011 Report Share Posted July 19, 2011 Ir svarīgākā priekšrocība - var izmantot neinicializētus mainīgos. Savukārt mācīties vēl vienas valodas ciklus un kontroles struktūras nav pārāk labi. Lūk, nebūtu slikti izdarīt tā, lai visas kontroles struktūras būtu kodā, bet šabloni citur, bet vai kāda šablonu sistēma to atļauj? Quote Link to comment Share on other sites More sharing options...
briedis Posted July 19, 2011 Report Share Posted July 19, 2011 Ir svarīgākā priekšrocība - var izmantot neinicializētus mainīgos. [..] Nu nez, es vairāk teiktu, ka tas balansē uz trūkuma robežas... Quote Link to comment Share on other sites More sharing options...
404 Posted July 19, 2011 Report Share Posted July 19, 2011 Pilnīgas muļķības, ja kodu liek iekšā programmētājs, tad dizainerim visāpār ar to nav nekāda sakara. Tur pretī ja dizaineris liek iekšā tos templetu simbolus etc. , tad vieglāk viņam iemācīt PHP pamatus. Nu par to tas bija vairak kā sarkasms,jo tādi argumenti ir dzirdēti,un,ja nemaldos,tad vai arī šeit tas netika savulaik diskutēts par to,kā pārklājas dizainera un kodera pienākumi līdz pat absurdam,kad abi "griež" vai mēģina kodēt.Bet ja par to nedefinēto variabļu izmantošanu,tad ir baigi kaitinoši pēc reportinga ieslēgšanas uz E_ALL,ieraudzīt lapu izraibinātu no noticēm. Arī "dārgos" komercskriptos. Kā arī potenciāli nākamajam koderim var rasties vēlme uzbraukt iepriekšējam,par viņa slinkumu :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 19, 2011 Report Share Posted July 19, 2011 1) '<?=' no PHP 5.4 jau ir automātiski ieslēgts, par 'deprecated' nav ne runas, 2) Pats esmu pret tādiem monstriem kā Smarty, kas, reāli, ir vēlviens, lieks, apstrakcijas slānis. Tieši tāpēc, atkārtošos, uzmetiet aci Mustache... atslēgvārds te būs "logic-less"; Quote Link to comment Share on other sites More sharing options...
mad182 Posted July 20, 2011 Report Share Posted July 20, 2011 IMHO ja reiz lieto templeitu sistēmu, tad uzreiz http://templatepower.codocad.com/ vai ko līdzīgu. Ja jau tev ir templeits, tad tur nekādu loģiku iekšā bāzt nevajag. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 20, 2011 Report Share Posted July 20, 2011 Tieši tā! "Logic-less". Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted July 20, 2011 Report Share Posted July 20, 2011 it's over 9000, bet ja jau visi atkārtojas, tad es ar - php nevajag atsevišķas template engines, jo php scripta gabalu var iekļaut vienā failā ar html. Templates ir visu to valodu, kam nav tāda iespēja must-have kaut cik normālai web izstrādei. imho php template engines ir labs piemērs, ka php'isti dažreiz mēdz risināt problēmas, kuras viņiem nav un nebūtu jārisina. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted July 20, 2011 Author Report Share Posted July 20, 2011 Paldies par atbildēm un diskusiju. Principā redzu ka neesmu vienīgais kas neuzskata šablonu sistēmas par priekšrocību. Paldies arī par saitēm uz stackoverflow diskusijām par šo tēmu. Kā jau minēju viens no trūkumiem ir veiktspēja, šis pētījums to apliecina: http://www.phpcomparison.net. Vēl dažas pārdomas par tēmu. Pārsvarā visur par priekšrocībām tiek minēts loģikas atdalīšana no skata un tas, ka dizainerim būtu vieglāk strādāt pie dizaina izvietošanas htmlā, nemācoties php. Nevaru piekrist ne vienam, ne otram pamatojumam. Nekāda loģikas atdalīšana no skata nenotiek vispār, mainās tikai loģikas pierakstīšanas sintakse, būtībā tiekam vaļā no loģikas pieraksta php sintaksē un izveidojam jaunu valodas sintaksi loģikas pierakstam. Nevar pierakstīt "ja - tad - citādi" izteiksmi bez loģikas, nav iespējams. Dizainerim nav jādomā vispār par loģikas niansēm. Piemēram, dizainerim nav jāraksta tāds html kods, kādu to bieži norāda šablonu sistēmu piemēros: <title>{$title}</title> dizainerim ir jāraksta: <title>Vieta nosaukuma</title> vai vienalga ko jāliek "vieta nosaukumam" vietā, nav viņam jādomā par to ka tur būs mainīgais, nemainīgs tekst, vai vispār neko tur nerakstīs. Dizainerim arī nevajadzētu domāt par cikliem, kas izvada <ul>, <ol> sarakstu elementus, vai izvada tabulu rindiņas, vienkārši jāizveido statisks htmls un loģika jāveido programmētājam. Tādas ir manas domas un secinājums ir tāds, ka šablonu sistēma, vismaz uz doto brīdi, nav nepieciešama un nekādas priekšrocības nerada. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.