Συζήτηση σχετικά με τις PHP template engines

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από pimpogio » 15 Φεβ 2011 20:08

αμα γραφεις σωστα και οπως πρεπει την php δεν εχεις αναγκη καμμια template engine γιατι η ιδια η php ειναι
template engine.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από cherouvim » 15 Φεβ 2011 20:13

pimpogio έγραψε:αμα γραφεις σωστα και οπως πρεπει την php δεν εχεις αναγκη καμμια template engine.
Ναι, το είπαμε αυτό. Μπορεί και 100 φορές. Είναι σωστό. :pint:

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από ThyClub » 15 Φεβ 2011 20:30

dva_dev έγραψε:Μπορεί να είμαι εντελώς offtopic αλλά οι διαφορές μου φαίνονται αστείες στο τελευταίο παράδειγμα του ThyClub, είναι απλώς μερικοί χαρακτήρες παραπάνω. Δεν ξέρω πως το βλέπουν οι designers, ίσως αυτοί οι παραπάνω χαρακτήρες να κάνουν σημαντική διαφορά...

Αντιθέτως στο
Όταν ένα select γίνεται με :
κώδικας:

<select name="avatar" id="avatar">
{html_options values=$avatars selected=$useravatar output=$avatars}
</select>

ενώ στην php (μπορείτε να κάνετε αλλαγές στην php που παραθέτω αλλά πάλι η διαφορά είναι χαώδης!!!):
κώδικας:

<select name="avatar" id="avatar">
<?php foreach($avatars) as $avas):?>
<?php if($avas['name']==$useravatar){
$selected = "selected";
}else{
$selected='';
}
?>
<option <?php echo $selected?> value="<?php echo $avas['name']?>"><?php echo $avas['name']?></option>
<?php endforeach?>
</select>
Στο 2o σημείο αν και φαινομενικά είναι πιο μπέρδεμα (αν και σε design view που θα δουλεύουν οι designers απλώς θα υπάρχει ένα εικονίδιο ότι εκεί υπάρχει php κώδικας) είναι ξεκάθαρο ότι μέσα στο select εμφανίζεται κάτι (ένα option με μερικές παραμέτρους). Στο smarty πού φαίνεται ότι εμφανίζεται κάτι; (βασικά τι είναι αυτό; option; select; a; ul; li; div; )

Πάλι μπορεί να είναι ιδέα μου επειδή έχω μικρή σχέση με την php και καμία με τη smarty. Το πιο κοντινό (εμφανισιακά όπως βλέπω) στη smarty, που έχω δουλέψει είναι τα srf (server response files).
Σωτήρη δεν διάβασες ότι το παραπάνω είναι ενα plugin της smarty. Το συγκεκριμένο λοιπόν είναι ένα plugin το οποίο χρησιμοποιείται για να εμφανίσει <options> γι αυτό και το tag είναι: {html_options}
Δεν είναι δλδ ενα γενικό loop αλλά ένα συγκεκριμένο html element loop

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από Apostolis_38 » 15 Φεβ 2011 20:32

"Ναι, το είπαμε αυτό. Μπορεί και 100 φορές. Είναι σωστό.'
:D :D :D :D :D


cherouvim Δεν αναφέρθηκα στην τάση με κακή έννοια αλλά σαν ρεύμα, σαν κάτι που χρησιμοποιεί πολύς κόσμος. Ελπίζω να μην παρεξηγήθηκα.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από korgr » 15 Φεβ 2011 20:46

Κώδικας: Επιλογή όλων

<select name="avatar" id="avatar">
<?php foreach&#40;$avatars&#41; as $avas&#41;&#58;?>
<?php if&#40;$avas&#91;'name'&#93;==$useravatar&#41;&#123;
$selected  = "selected";
&#125;else&#123;
$selected='';
&#125;
?>
<option <?php echo $selected?> value="<?php echo $avas&#91;'name'&#93;?>"><?php echo $avas&#91;'name'&#93;?></option>
<?php endforeach?>
</select> 
Βασίλη αυτά είναι για να δημιουργούμε εντυπώσεις.
Όταν ξέρεις php ξέρεις και το να αντικαθιστάς το ανωτέρω με μια μέθοδο κλάσσης.
http://www.korinthorama.gr/new/odyssey/ ... es&catID=2

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από ThyClub » 15 Φεβ 2011 20:52

Δλδ απαντάς στα επιχειρήματα μου υπέρ μιας template engine με μια άλλη;

:wink:

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από korgr » 15 Φεβ 2011 21:04

ThyClub έγραψε:Δλδ απαντάς στα επιχειρήματα μου υπέρ μιας template engine με μια άλλη;

:wink:
Απαντώ με pure php χωρίς να χρειαστεί να ορίζω τι και που στο smarty :wink:
Σέβομαι αυτούς που θεωρούν το πλεονέκτημα της απλότητας πολύ σημαντικό ώστε να το χρησιμοποιούν αλλά θεωρώ πως υπάρχουν κι άλλοι δρόμοι μένοντας στην php.

Αντίθετα θεωρώ πολύ πιο σημαντικό θέμα τα πλούσια comments αν και παραδέχομαι πως και εγώ αρκετές φορές παραλείπω (βελτιώνομαι όμως project με project).

ΥΓ Πολύ καλή δουλειά με το Qerdizo και τα feeds man :D

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από cherouvim » 15 Φεβ 2011 21:09

Apostolis_38 έγραψε:Δεν αναφέρθηκα στην τάση με κακή έννοια αλλά σαν ρεύμα, σαν κάτι που χρησιμοποιεί πολύς κόσμος. Ελπίζω να μην παρεξηγήθηκα.
Κουβέντα κάνουμε :)

Δεν νομίζω οτι πρόκειται για ρεύμα. Καλύπτει συγκεκριμένες ανάγκες (οι οποίες λύνονται και αλλιώς πιο εύκολα ή πιο δύσκολα) και όποιος θέλει το χρησιμοποιεί.

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από mrpc » 15 Φεβ 2011 22:47

Η PHP έχει εξελιχθεί με τα χρόνια σε μια υπέροχη γλώσσα που δίνει άπειρες επιλογές σε coding styles και σε εργαλεία που μπορεί να χρησιμοποιήσει κάποιος. Κάποια από αυτά είναι και τα template engines. Χρήσιμα εργαλεία, όχι απαραίτητα, αλλά σε κάποιες περιπτώσεις βοηθάνε ιδιαίτερα.
Ο καθένας ξέρει από μόνος του τις ανάγκες του κάθε project που κάνει, και αυτό που είναι σωστό για κάποιον, μπορεί να μην είναι τόσο βολικό για κάποιον άλλο.
Αν ο developer είναι προσεκτικός με το coding standard που ακολουθεί, γράφει σωστά σχόλια κ.λ.π., ό,τι και να κάνει, την άκρη θα την βγάλει.

Προσωπικά σε δικά μου project έχω στήσει για το cms μου μια μικρή template engine για τα themes, η οποία τραβάει δεδομένα από διάφορα τμήματα του cms και τα ρίχνει στη σελίδα, χωρίς ο διαχειριστής να γνωρίζει από php. Βολεύει τους λιγοστούς 3ους χρήστες (διαχειριστές) που έχω και δεν φοβάμαι μην μου διαλύσουν το site. Αυτή η λύση έτυχε να με βολέψει σε αυτά τα project, σε άλλα χρησιμοποιώ pure php. Άλλες ανάγκες, άλλη λύση.
Στον προγραμματισμό δεν υπάρχουν μονόδρομοι.

Άβαταρ μέλους
greek_manager
Honorary Member
Δημοσιεύσεις: 1243
Εγγραφή: 21 Οκτ 2002 19:01
Τοποθεσία: Back to Greece
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από greek_manager » 16 Φεβ 2011 01:15

Να προσθέσω και εγώ μια άλλη προοπτική:
Δουλεύοντας σε Java/J2EE τεχνολογίες, το να πας με template engine (και MVC model) είναι μονόδρομος!

Την PHP, όπως έχει γίνει κατανοητό από όσα γράψατε ολοι, μπορείς να την χρησιμοποιήσεις και σαν "template engine". Προσωπικά, έχω χρησιμοποιήσει την Smarty και το templating σύστημα του phpBB. Γενικά, όπου χρησιμοποιώ PHP (εππειδή και το μέγεθος του project είναι ένα κριτήριο για την επιλογή της γλώσσας), μπορώ να πω ότι η χρήση template engine PHP ήταν overhead.

Αλλά επειδή "Code should be poetry", πρέπει να είσαι προσεχτικός μην το παρακάνεις με τον κώδικα PHP στο view...
aka thkouk
Football Manager - H ελληνική κοινότητα
παιχνιδια στρατηγικης - Παίξε Δωρεάν

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από cpulse » 17 Φεβ 2011 03:40

Τελικά ούτε αυτό το θέμα είναι ικανό να μας κάνει να πλακωθούμε αξιοπρεπώς έτσι; Μέσα σε 8 σελίδες έληξε το θέμα. Mac vs PC ισ δε κίνγκ.

Επειδή δεν αντέχω θέλω να πω μια εξυπνάδα ακόμα. Η διαφορά της τέχνης με την επιστήμη είναι οτι η επιστήμη έχει μόνο μία απάντηση σε μια ερώτηση. Η τέχνη έχει πολλές. Αλλά γίνονται και συνδυασμοί.. πχ τα μαθηματικά είναι επιστήμη γιατί έχουν (σχεδόν) πάντα μόνο μια απάντηση στην κάθε ερώτηση, αλλά η προσέγγιση του προβλήματος μπορεί να γίνει με 1000 τρόπους. Άρα κρύβει και την τέχνη μέσα του.

Οπότε όπως φαίνεται τα template engines είναι τέχνη τελικά. Πιστεύω όμως οτι αν κάποιος βάλει στο τραπέζι και τις πραγματικές συνθήκες ενός project βρίσκει οτι μόνο μία από όλες τις προσεγγίσεις που είπαμε μέχρι στιγμής ταιριάζει περισσότερο.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από gvre » 17 Φεβ 2011 12:36

Η χρήση template engine ή όχι εξαρτάται από πολλούς παράγοντες, όπως πχ το μέγεθος του project. Προσωπικά, χρησιμοποιώ το HTML_Template_Sigma αρκετά χρόνια και είμαι απόλυτα ευχαριστημένος. Προσθέτει ένα overhead (όχι τραγικό) αλλά βοηθάει πάρα πολύ όταν φτιάχνω templates για διαφορετικές δουλειές. Δεν επιτρέπει τη χρήση php μέσα στο template, κάτι το οποίο βοηθάει αρκετά στο διαχωρισμό php, html. Υποστηρίζει callbacks, compiled templates (όχι σε php) και διάφορα άλλα ωραία.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από cherouvim » 17 Φεβ 2011 12:44

2 παλιά posts μου σχετικά με την ευελιξία που πρέπει να έχει ένα templating engine. Συγκεκριμένα αναφέρομαι στο freemarker και στο 2ο post κάνω και αναφορά στο πως λύνεται το πρόβλημα σε σκέτη PHP.
http://blog.cherouvim.com/freemarker-ex ... -handling/
http://blog.cherouvim.com/runtime-dispa ... ojo-views/

orfeo
Δημοσιεύσεις: 98
Εγγραφή: 17 Μάιος 2001 03:00
Τοποθεσία: Αθήνα

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από orfeo » 17 Φεβ 2011 15:16

Είναι σημαντικό για αυτούς που δεν το έχουν δοκιμάσει ακόμη να ξέρουν ότι το overhead ειναι αμελητέο.

Θυμάμαι πριν λίγα χρόνια να ισχυρίζονται κάποιοι ότι και ένα database layer προσθέτει overhead. Και τώρα έχουμε το σεβαστό από όλους zend να δημιουργεί 200 object για το hello world και να κάνει include 500 αρχεία (τυχαία νούμερα).

Από την άλλη έχω δει με τα μάτια μου εφαρμογή για auction που είχε στο αρχείο (π.χ.) auction_view.php 6000 γραμμές κώδικα σχεδόν χωρίς καν function.

Στο μυαλό του ο κακόμοιρος μπορεί να είχε ότι δεν χρειάζεται να κάνει include και classes και όλα αυτά που λένε διάφοροι. Θα έβαζε ένα ακόμη layer που δεν το χρειάζεται. Άσε που θα είχε και overhead από τόσα include, που θα καθυστερούσαν την super εφαρμογή του. Σαφώς και δεν σύμφερε κανέναν να κάτσουμε να κάνουμε refactor αυτό το τέρας του μηδενικού overhead.

Design Patterns are there for a reason. Κάποιος πιο έμπειρος και ίσως και πιο έξυπνος αποφάσισε να μας βοηθήσει, ας το εκμεταλευτούμε.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Συζήτηση σχετικά με τις PHP template engines

Δημοσίευση από cherouvim » 17 Φεβ 2011 15:31

Δεν υπάρχει overhead άξιο συζήτησης εκτός και αν μιλάμε για εφαρμογές που υπολογίζουν fractals ή για websites που θα σπρώχνουν 200+ pages το δευτερόλεπτο ανά node.

Στα συνηθισμένα webapps/websites (χωρίς παιδαριώδη λάθη) κατά 99% το bottleneck είναι η επικοινωνία με τη βάση ανεξαρτήτως framework, γλώσσας, server και λειτουργικού. Οποιαδήποτε δουλειά για optimization σε άλλα σημεία είναι δουλειά προς τη λάθος κατεύθυνση.

Προφανώς και υπάρχει το ψυχολογικό "overhead" και knowledge complexity των extra layers αλλά όταν απαιτείται είναι αποδεδειγμένο οτι το abstraction λύνει προβλήματα. Αλλιώς θα γράφαμε όλοι webapps σε assembly και θα μιλούσαμε στη βάση με στέλνοντας byte streams μέσα από sockets.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες