PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-18 18:05:28
Hei!

Seekord pillun avalikkuse poole ühe huvitava template'i mootori, mis ideena on peas juba pikalt mõlkunud.

Nimelt on PHP'l olemas alternatiivne syntax. ( http://php.net/manual/en/control-structures.alternative-synt )

PHP kood:
 if(true){
 
//Klassikaline
}

if(
true):
 
//Alternatiivne
endif;


Ja vot sellisest asjast koorus välja mõte, et miks mitte teha template'imine selline, et ei peaks hakkama uue template'i mootori süntaksit õppima, vaid kasutaks seda sama alternatiivset PHP süntaksit template'i keele jaoks.

Tulemuseks oleks ülikiire (kuna on native kood) template'indus, mille keelt ei pea õppima hakkama. Samas on see väga võimas, kuna valla on terve php funktsionaalsus. Omaette eesmärk oli hoida ka see "mootor" võimalikult minimalistlik.

Välja tuli mõttest selline asi:
https://github.com/Seramis/PHP_Template

Rohkem infot seal samas github'is.
Laske hea maitsta!
RE: PHP alternative syntax templeitidesse!
Postitaja: indrekp 2014-10-19 16:05:18
Kui template süsteemil on "valla terve php funktsionaalsus" siis mis on asja mõte?

Ainuke mis pähe tuleb on koodi kirjutamise näiline kokkuhoid, kirjutades

PHP kood:
<?php echo $x;?>
asemel
{=$x;} (eeldusel et shortcode ei ole lubatud).

Ja isegi see ei ole mingi kokkuhoid, kui samas peab kirjutama

PHP kood:
 foreach($arr as $x){echo $x;}
asemel
{foreach($arr as $x}:echo $x;endforeach;}

Lihtsalt sõrmeharjutusena päris hea, samas.
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-19 17:44:50
TSITEERITUD:
Kui template süsteemil on "valla terve php funktsionaalsus" siis mis on asja mõte?

Ainuke mis pähe tuleb on koodi kirjutamise näiline kokkuhoid, kirjutades

PHP kood:
<?php echo $x;?>
asemel
{=$x;} (eeldusel et shortcode ei ole lubatud).

Ja isegi see ei ole mingi kokkuhoid, kui samas peab kirjutama

PHP kood:
 foreach($arr as $x){echo $x;}
asemel
{foreach($arr as $x}:echo $x;endforeach;}

Lihtsalt sõrmeharjutusena päris hea, samas.

Natuke vale syntax:

PHP kood:
 {foreach($arr as $x):}
{=
$x}
{endforeach}

Short-tag'id ei pea php's lubatud olema, samas suudab templeidi mootor kirjutada sinu "short syntax'i" pikaks.

Asja mõte on see, et oleks mugavam MVC's eraldada V ja C. Samas ei tahaks mingit monstrumit alati kasutusele võtta (Nt. smarty), millel on oma süntaks ja nii mõnedki asjad suhteliselt keeruliselt lahendatavad. Ja noh, kui templeidimootorivabalt teha, siis ei viitsiks koguaeg neid php tag'e avada ja sulgeda. Need kõik kokku mängivad minu jaoks piisavalt suurt rolli.

Ainus, mis asjal puudu veel on, mis tuleks mul juurde kirjutada, on ilus teksti escape'imine, mida oleks hea lihtne ja kiire teha. Hetkel mõtlen välja süntaksit, kuid ilmselt oleks hea näiteks:
{#$sComment}
Nii on ta sarnane võrdusmärgiga echo'le, samas saan ma temaga käituda erinevalt. Eks näis.

Rohkem funktsionaalsust ma templeidindusse panna ei tahaks, kuna siis hakkaks juba mõtte suhtes asi ka view'st välja minema. Me ei räägiks siis enam puhtast templeidindusest. :P
RE: PHP alternative syntax templeitidesse!
Postitaja: geo__ 2014-10-19 20:54:32
Kordamine on tarkuse vanaema:
Ennem kui midagi leiutada, tuleks vaadata kas see juba olemas pole.

PHP template lahendusi on välja töötatud pea 40:
http://en.wikipedia.org/wiki/Comparison_of_web_template_engi

Eks selle PHP template mõtekusest on ka juba leierdatud.
PHP keel on juba ise selline, et ei vaja mingit template enginet.

Päev alõpus jõutakse ikka selleni, et mingi tag lisatakse HTML-i.
Kas see on {=$surramurra} või <?php eco $surramurra; ?>.
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-19 21:43:27
Ja miks sa arvad, et ma sellega kursis pole?
RE: PHP alternative syntax templeitidesse!
Postitaja: geo__ 2014-10-20 09:30:58
TSITEERITUD:
Ja miks sa arvad, et ma sellega kursis pole?


Sest pikas perspektiivis ei näe sellel tuleviku.
1) Valik on juba piisavalt suur.
2) Puudub karjuv nõudlus, sest palja PHP-ga saab sama asja aetud.

Pane nüüd kaalukausile:
Ühele poole see mida projekti panustad. Arendamiseks kuluv aeg.
Dokumentatsioon, versiooni uuendused, ühilduvus erinevate PHP versioonidega, testimine jms.

Teisele poole, see mida sa projektist saad.
Kui nõudlust ei ole, siis teed seda ainult iseendale.
Kui ainult iseendale, kas siis ei ole odavam* mingi olemasolev lahendus kasutusele võtta?

Ja ma tean küll, oma tehtud 'lapsuke' on kõige armsam, sa tead iga selle nurgatagust jne. Aga vahest see lihtsalt ei tasu ära.
Ma usun, et suudaksid luua midagi elujõulisemat kui "veel üks template mootor".


*odavam = arendajale on aeg, kõige kallim ressurss.
RE: PHP alternative syntax templeitidesse!
Postitaja: Poiss 2014-10-20 10:16:54
Template engined phps pole mitte sellepärast kasulikud, et seal saab midagi kergemini või lühemaks... vaid selleks, et arendajad ei teeks viewdes asju mida seal ei peaks tegema. Piisava (arengu)taseme korral on see kiht muidugi täiesti ebavajalik.
RE: PHP alternative syntax templeitidesse!
Postitaja: tiigrikutsu 2014-10-20 11:03:49
Nõustun et kood ja disain on vaja eraldada, aga kas selleks on vaja päris eraldi asi välja arendada?

Ise kasutan midagi analoogset, kus index.php fail on:


<?

// üldised asjad - nagu sessioonid, andmebaasi ühendus, statistika jne


// näiteks võtame kontaktilehe
$page = 'contact';

// sisuosa kood, kus tehakse lehe andmete laadimine, salvestamine jne
include('code/'.$page.'.php');

// sisuosa kujundus ja andmete väljastus
ob_start();
include('template/'.$page.'_tpl.php');
$data = ob_get_contents();
ob_end_clean();


// üldine lehe kujundus
ob_start();
include('designe/design.php');
$data = ob_get_contents();
ob_end_clean();


// väljastame tulemuse ekraanile
echo(trim($data));

?>


Antud lahenduse puhul on kood ja disain lahus - disainer saab tegeleda lehtede kujundusega ilma, et ta midagi koodis ära rikuks ja vastupidi. Ei pea õppima uut süntaksit -> 100% php. Antud juhul on eraldi veel lehekülje üldine disain.

Negatiivsed pooled....hetkel ei tulegi pähe:)

Viimati muudetud: 20-10-2014 11:04:42
Muutja: tiigrikutsu
Põhjus:

RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-20 11:18:15
Nii palju, kui ma erinevaid template mootoreid läbi olen kamminud, ei ole ma sellist asja leidnud, mida ma siiani kirjutanud olen. Samas võib-olla on asi selles, et ma olen pigem kirjutanud pisikese helper layer'i, et kirjutada view'des php'd, mitte ei ole ma kirjutanud template'i mootorit.

Võib-olla see tekitab ka veidi segadust.

Nii palju lisan, et olen aastate jooksul palju kirjutanud erinevaid suuremaid ja väiksemaid süsteeme erinevate template'i mootoritega. Ma tean, mis nad on, millised nad on, kuidas neid kasutada ja mul on kujunenud ka nendest oma arvamus ja vaatepilt.

Aga kõige lõpuks, on see üldse oluline? Oluline oleks see siis, kui keegi oleks juba kirjutanud sama põhimõttega midagi. Kas on?
RE: PHP alternative syntax templeitidesse!
Postitaja: asdasd 2014-10-20 19:43:02
Isiklikult vihkan ja ei saa aru mis kasu on sellest alternatiiv süntaksist- keegi võiks selle kasuteguri ära seletada mulle.

Nimelt - minu editorid/IDE'd mida näppind olen suudavad edukalt leida bloki { ja } vastavalt kumbale klikin ja selle ära värvida/rõhutada ja näen kenasti bloki alguse/lõpu ära kui peale klikkan visuaalselt. Aga neid alternatiivseid ei värvi.

Ilmselt saab sama asja ka if:endif-i jaoks aga pole vist näppind. Aga neid ei värvi by defult minumeelest mitte miski? Vb mingi väga PHP'le orienteeriud programm?

RE: PHP alternative syntax templeitidesse!
Postitaja: ise php 2014-10-20 20:18:13
Erilist muud kasutegurit peale trükimusta kokkuhodmise vist polegi. No muidugi ka noobide segadusse ajamiseks väga hea, et keegi aru ei saaks, mida su programm teeb.
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-20 23:42:31
Minu IDE saab igasugu värvimiste ja sektsioonide näitamisega väga hästi hakkama. PHP'd tuleks kirjutada ikka php tööristadega. ;)

Ise kasutan PhpStorm'i, mida julgeksin enda kogemuse kohaselt parimaks nimetada. Ka Netbeans'i lahendus peaks suutma eelnimetatutega kenasti hakkama saama.

Alternatiivse süntkasi põhjuseid võid netist palju lugeda. Templeidinduses üks põhjustest on näiteks, et kui sul on <div></div>, siis sulgemisel sa ütled, mida sa sulged. Nii ka alternatiivse süntaksiga, kus sa if'i sulged endif'iga. Põhjuseid on veelgi... Mina saan näiteks loogelisi sulge veel kasutada, kuna alternatiivne süntaks neid ei kasuta.
RE: PHP alternative syntax templeitidesse!
Postitaja: asadasd 2014-10-21 10:09:22
Aga loogilite sulgude puhul kehtib sama loogika- mis nende <div></div> puhul - on talgi bloki lõpetamise märk - nimelt-> }

Ei tundu pädevat väide selle alternatiivi kasuks seoses ellega.
Või mõtlen vales võtmes.
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-21 10:53:08
Sa ei mõistnud mu mõtet.

Loogeliste sulgude puhul võiks html'i kirjutada <div></>
RE: PHP alternative syntax templeitidesse!
Postitaja: rtfm 2014-10-22 14:13:23
template engine kasutamisel projektis on ainult üks hea omadus, et klient peab sinu käest contenti tegemist ostma , sest ta ise ei oska ei phpd ega seda suvalist templatemise süntaksit.

kõigeks muuks ei ole seda vaja ja on lihtsam kommunikeerida php-d (mis kasvaski ise välja template enginest) va juhul, kui su template engine ei ole maailmakuulus ja kasutatav miljonite puhul nagu wordpress shorttagid , smarty jne

Lihtsalt minu 15 aastat kogemust .
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-22 14:49:59
Olen sinuga 100% nõus. Ja seepärast ma tahtsingi teha midagi, mis kasutaks php enda süntaksit, mitte ei leiutaks mingit uut keelt. Täpselt sellist lahendust pole ka niiväga kuskil näinud.

On mõned sellised, mis oskavad tekitada template'ile "skoobi", et seal sees mängida, kuid pidev php tag'ide avamine/sulgemine, manuaalne escape'imine ja igasuguse muu "toetuse" puudumine teeb selliste lahenduste kasutamise (vähemalt minu jaoks) väga ebamugavaks.
RE: PHP alternative syntax templeitidesse!
Postitaja: GHz 2014-10-22 14:50:52
Aga noh, tea, kui õigus mul on. Kogemust on mul grammi võrra vähem: Veidi üle 10 aasta.
RE: PHP alternative syntax templeitidesse!
Postitaja: lohoihasd 2014-10-22 16:23:03
Front-end kaugeneb järjest serverist.
Kui perspektiivne on serveri skriptimise keelega toota frontendi märgistust?

Javascript oma templeidindusega astub kandale, ootab vaid JSONI serverist.

minu 1 sent mõtet.
RE: PHP alternative syntax templeitidesse!
Postitaja: Ervin Tursapea 2014-10-22 16:50:50
frontendis mõni javascripti mvc ja backendist tuleb json. oleks aeg kivikirves tulirelvaks upgradeda.
RE: PHP alternative syntax templeitidesse!
Postitaja: Arvi V 2014-10-26 11:26:57
Jah järjest enam läheb UI ja programm lahku. Tehakse restful API, mis tegeleb kogu andmestikuga ja omab ka äriloogikat. Kui tahetakse weebi siis tehakse see AngularJS sarnase asjaga.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0921800136566