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

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

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

Απάντηση
billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

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

Δημοσίευση από billiaswhs » 14 Φεβ 2011 03:11

Αν τα κάνεις όλα illustrator, photoshop, html, css, PHP MVC, OOP, δεν τη χρειάζεσαι
template engine, αν όμως δουλεύεις με ομάδα ο designer πέρας της html δεν νομίζω ότι
πρέπει να ξέρει και php, ειδικά παρακάτω blog post είναι αρκετά επεξηγηματικό
γιατί χρειάζεται template engine

Templating with PHPTAL: Don't make your designer think (about the wrong things)

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

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

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

pimpogio δεν θέλω να σε τρομάξω νυχτιάτικα, αλλά τα interfaces είναι κάτι που εφάρμοσε η Microsoft. Δεν ξέρω αν της ανοίκει και η εφεύρεση, αλλά σίγουρα είναι αυτή που εδραίωσε τα interfaces με το COM (component object model) μετά το χάος με τα DLL στα windows 95.

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

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

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

μπα τα interfaces με το κοψιμο της πολλαπλης κληρονομικοτητας το εκανε η java και ακολουθησανε οι αλλοι...
Τα interfaces φυσικα και υπηρχανε και πριν απο τη java σε αλλες γλωσσες αλλα τον τροπο που καθιερωσε η java ακουλουθησανε και οι αλλοι.
Πχ τα interfaces στην php ειναι αντιγραφη των interfaces στη java οπως και ολο σχεδον object oriented κομματι.
Multiple inheritance is a difficult concept that should be used only by experienced programmers. In fact, some of the problems associated with multiple inheritance are so subtle that newer programming languages, such as Java and C#, do not enable a class to derive from more than one base class.
δες εδω το κλασσικο προβλημα του ρομβου στην πολλαπλη κληρονομικοτητα
http://en.wikipedia.org/wiki/Diamond_problem

η java και η php την εχουνε κομμενη την πολλαπλη κληρονομικοτητα εχουνε interfaces...

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

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

Δημοσίευση από cpulse » 14 Φεβ 2011 04:36

Στο θέμα μας πάντως, και πάλι γυρνάμε στο MVC. Δηλαδή, ακόμα κι αν δεν υπήρχε η έννοια του MVC, ένα template ή μια εφαρμογή θα έπρεπε να φτιάξει διαφορετικές εκδόσεις ενός class για να βγάλει διαφορετικά skins. Αυτό προφανώς θα πρέπει να γίνει σε ξεχωριστά αρχεία από το κεντρικό και η εφαρμογή ή το template θα πρέπει να ξέρει που να τα βρεί και να τα καλέσει. Όμως αυτή ακριβώς η διαδικασία είναι η φιλοσοφία του MVC. Η διαφορά με το MVC είναι οτι τα κάνει όλα αυτά χωρίς να γράφει classes.

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

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

Δημοσίευση από pimpogio » 14 Φεβ 2011 04:54

το mvc ειναι ενα γενικο pattern και σημασια παιζει η υλοποιηση. Υπαρχουνε διαφορες παραλλαγες του..
Πχ αυτο που λες με τα classes ενα ειδος (mc)v ειναι αλλα καπως ποιο απλοικό.
Αμα θες να εχεις διαφορετικα templates αναγκαστικα
πρεπει να υλοποιεις τουλαχιστον το view..
Αμα θες η εφαρμογη για παραδειγμα εκτος απο web να ειναι και desktop πρεπει να υλοποιησεις και το m και το c και το v.
Αμα δεν θες ουτε templates να αλλαζεις μπορει να ειναι και χυμα ολα μαζι.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

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

Δημοσίευση από dimsis » 14 Φεβ 2011 08:54

Thanx cplulse. Κοιτώντας πάντως τα παραδείγματα phpbb με joomla, δεν βλέπω και μεγάλη σχέση της μιας template engine με της άλλης.
Προσωπικά πιστεύω πως και με ομάδα από designers ή απλούς χρήστες που θα θέλουν να φτιάχνουν templates, ακόμα και χωρίς mvc μπορείς να κάνεις δουλειά με καθαρή σκριπτογλώσσα. Τρανή απόδειξη το wordpress. Βλέπουμε τι themes βγαίνουν για αυτό και πολλά γίνονται από άτομα που δεν έχουν ιδέα από προγραμματισμό.

Και το στηρίζω στο γεγονός πως στον χρόνο που θα σπαταλούσαν για να μάθουν την εκάστοτε template engine, θα μπορούσαν να μάθουν και 10-20 εντολές της ίδιας της γλώσσας ή την σύνταξη για την χρήση κάποιων functions που θα είχαν δημιουργηθεί από τους developers και να τα χρησιμοποιούσουν στα templates τους, όπου σε συνδυασμό με την CSS θα ήταν εφικτός και πάλι ο διαχωρισμός περιεχομένου με κώδικα. Και πως κάτι τέτοιο θα κάλυπτε το μεγαλύτερο ποσοστό των web sites που βλέπουμε σήμερα να ανεβαίνουν στο διαδίκτυο.

Το ίδιο και από την πλευρά των developers, όπου εκεί στην τελική μπορεί να γίνει χρήση κάποιου framework αν θέλουμε και να γλιτώσουμε χρόνο και να πετύχουμε τον διαχωρισμό.

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

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

Δημοσίευση από cpulse » 14 Φεβ 2011 15:26

Υπάρχει σχέση. Στο phpBB χρησιμοποιεί μεταβλητές μέσα σε αγκύλες, στο Joomla αν παρατηρήσεις έχει μεταβλητές με την μορφή HTML tags. Το template engine και στις δύο περιπτώσεις πρέπει να κάνει parse και compile.

Σχετικά με την σύγκριση wordpress με joomla, το Wordpress είναι blog, το Joomla CMS. Το Wordpress είναι υποσύνολο του Joomla, θεωρητικά πάντα. Όπως λένε μεταξύ τους οι Joomloμανείς, το Joomla με ένα extension μπορεί να γίνει Wordpress, στο Wordpress δεν υπάρχει extension για να γίνει Joomla. Επομένως δεν ισχύει τέτοια σύγκριση. Αν ποτέ το Wordpress γίνει ολοκληρωμένο CMS τότε θα δούμε αν μπορεί να μην χρησιμοποιήσει MVC ή κάτι που να του μοιάζει.

Στην νέα του έκδοση το Joomla (1.6) ακολουθεί την φιλοσοφία του Wordpress σπάζοντας αρχεία όπως κάνει και το Wordpress. Σπάει την αυστηρή φιλοσοφία του MVC για το περιεχόμενο, αλλά δεν καταργεί το MVC για τα modules, γιατί δεν υπάρχει εναλλακτική λύση. Σαν αποτέλεσμα τώρα είναι να τα έχει κάνει μπάχαλο. Έχει κάνει έναν αχταρμα από τις customιές του wordpress με MVC. Μόνο ψαγμένοι μπορούν πλεον να βγάλουν 100% άκρη.

Έχω άποψη για το θέμα, αλλά η δικιά μου άποψη πάει πακέτο με ένα νέο σύστημα που ετοιμάζω. Δυστυχώς θα πρέπει να περάσει λίγος καιρός ακόμα μέχρι να ετοιμαστεί πλήρως και να το δημοσιοποιήσω. Όλο το ζήτημα είναι να μπορεί να υπάρχουν όλες οι επιλογές που σου δίνει ένα σύστημα MVC με την απλότητα που ζητάει ένας άσχετος και όλα να τρέχουν γρήγορα.

Όμως.. ό,τι και να φτιάξει ο οποιοσδήποτε, ο καθένας θα βολεύεται περισσότερο με αυτό που ξέρει καλύτερα. Οπότε όλος αυτός ο σαματάς δεν έχει νόημα για μένα.


billiaswhs:
Διάβασα αυτά που γράφει στο link που παραθέτεις. Δεν τα λένε και πολύ σωστά οι τύποι. Πρώτων αυτό που εκείνοι λένε για ανακάλυψη το χρησιμοποιεί το Joomla και πιθανόν και άλλα συστήματα εδώ και χρόνια. Δεύτερων, εγώ ο ίδιος έχω πολύ πικρή εμπειρία από τέτοια. Παλιότερα σε αυτό το forum είχα παρουσιάσει ένα φοβερό και τρομερό template engine για photo galleries, το λέγαν fweb. Ήταν απλησίαστο για web designers επειδή έπρεπε να γράψεις λίγη HTML, με αποτέλεσμα να αποτύχει παταγοδώς. Κάτι τέτοιο βλέπω και γι αυτούς που λένε για αυτό το PHPTAL.

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

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

Δημοσίευση από cherouvim » 14 Φεβ 2011 16:28

dimsis έγραψε:...τι θεωρείς εσύ ως template engine
view κώδικας (template):

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

User&#58; &#123;$user->name|escape&#125;<br/>
application κώδικας:

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

$base->fireMissile&#40;$enemy&#41;;
Η χρήση template engine δεν είναι υποχρεωτική. Όμως για να είναι πιο καθαρά (κατά MVC) τα πράγματα αλλά και για να αποφύγουμε τις "εκτοξεύσεις πυραύλων" από το view layer καλό είναι να γίνεται χρήση κάποιου engine.

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

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

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

να ξεκαθαρισουμε εδω οτι αλλο το mvc και αλλο η template engine(για να μην υπαρξει παρανόηση) για παραδειγμα μπορεις ανετα στην php να εχεις πολυ καλο mvc χωρις template engine.
Το mvc ειναι σχεδον υποχρεωτικό ενω η template engine
οχι..

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

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

Δημοσίευση από dimsis » 14 Φεβ 2011 17:45

cpulse το «δεν έχει σχέση» εννοώ από πλευράς σύνταξης, όχι ότι δεν κάνει parse η μια ή η άλλη. Δηλαδή αν δεις το ίδιο template με την σύνταξη του phpbb και το ίδιο με το joomla, θα ψάχνεσαι για να βγάλεις άκρη.

Και το wordpress αν διαβάσεις τι έγραφα, δεν το αναφέρω συγκριτικά με το joomla, αλλά ως προς την μη χρήση template engine και την χρήση καθαρού κώδικα php στα templates του. Επίσης το ανέφερα σαν παράδειγμα πασίγνωστου CMS που δεν ακολουθεί MVC αρχιτεκτονική αλλά classes και ένα τελικώς ένα framework που έχουν φτιάξει οι προγραμματιστές τους, με το οποίο γίνετε όλη την δουλειά.
Τώρα για το αν είναι CMS ή όχι, αυτό είναι μια άλλη τεράστια συζήτηση για άλλο θέμα, απλά μπορώ να δώσω 3 links [1] - [2] - [3] και το συζητάμε αλλού αν ενδιαφέρει.
cpulse έγραψε:Όλο το ζήτημα είναι να μπορεί να υπάρχουν όλες οι επιλογές που σου δίνει ένα σύστημα MVC με την απλότητα που ζητάει ένας άσχετος και όλα να τρέχουν γρήγορα.

Όμως.. ό,τι και να φτιάξει ο οποιοσδήποτε, ο καθένας θα βολεύεται περισσότερο με αυτό που ξέρει καλύτερα. Οπότε όλος αυτός ο σαματάς δεν έχει νόημα για μένα.
Συμφωνώ 100% σε αυτά και ελπίζω όταν θα έχεις έτοιμο το σύστημα που ετοιμάζεις να θυμηθείς να μας το παρουσιάσεις, είμαι σίγουρος πως θα είναι εξαιρετικά ενδιαφέρον.

Εγώ αν είδες ήδη έγραψα σε προηγούμενο μου post το ίδιο που γράφεις και εσύ τώρα. Με ότι βολεύεται ο καθένας. Δεν είναι θέμα σαματά, απλά κάνουμε συζήτηση για να δούμε τα υπέρ και τα κατά που βλέπει ο καθένας μας και αναπτύσσουμε γνώμες και απόψεις. Και από όσο βλέπω οι απόψεις διίστανται και σε αυτό το θέμα.

Οπότε εσύ cherouvim συνιστάς χρήση template engine για λόγους ασφαλείας αν κατάλαβα καλά; Προφανώς αν ισχύει αυτό, θεωρείς ασφαλέστερο να δίνεις στους χρήστες ένα πιο κλειστό σύστημα, ώστε να μη μπορούν να το κάνουν καβουρδιστήρι.

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

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

Δημοσίευση από cpulse » 14 Φεβ 2011 18:11

Πλάκα κάνεις; Αμα το τελειώσω θα έρχομαι να σας ξυπνάω έναν έναν ακόμα και στον ύπνο σας να σας θυμίζω πόσο τέλειο το χω κάνει! :lol:

Θέμα ασφάλειας δεν υφίσταται σε τέτοια πράγματα. Η ασφάλεια είναι για το input, για να κόβεις την φόρα των hackers. Ένα template engine είναι output. Αν υπάρχει θέμα ασφάλειας είναι να εξασφαλίζεις οτι ο Χ αλεξιπτωτιστής που θα βρεθεί να κάνει μια μετατροπή δεν θα προκαλέσει κατάρευση του συστήματος.

Σε γενικές γραμμές νομίζω οτι αν το σύστημα σου προορίζεται να αντέχει τους αλεξιπτωτιστές τότε καλύτερα με μεθόδους τύπου smarty, phpBB κτλ. Σημείωση οτι καμιά φορά ο αλεξιπτωτιστής μπορεί να είναι και ο ίδιος ο δημιουργός σε συνθήκες πανικού. Αν σε ενδιαφέρει η ταχύτητα, η αμεσότητα ή η απλότητα τότε καλύτερα <?php κώδικας ?> χωρίς πολλά πολλά (MVC κτλ).

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

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

Δημοσίευση από cherouvim » 14 Φεβ 2011 18:18

dimsis έγραψε:Οπότε εσύ cherouvim συνιστάς χρήση template engine για λόγους ασφαλείας αν κατάλαβα καλά; Προφανώς αν ισχύει αυτό, θεωρείς ασφαλέστερο να δίνεις στους χρήστες ένα πιο κλειστό σύστημα, ώστε να μη μπορούν να το κάνουν καβουρδιστήρι.
Εκτός από την ασφάλεια το templating engine χρειάζεται και για άλλους λόγους.
Τώρα για τους χρήστες αν εννοείς content managers τότε μπορείς να τους δώσεις ότι θέλεις (ή θέλουν). Σε public χρήστες όμως ούτε κάν RTE.

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

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

Δημοσίευση από orfeo » 14 Φεβ 2011 18:51

Να ξεκαθαρίσω από την αρχή ότι έχω φτιάξει μεγάλα project με smarty, με custom cms και με zend framework. Μεγάλα και high traffic sites.

Πάντα η πραγματικότητα απέχει από την θεωρεία.

Από την δικιά μου εμπειρία:
- Δεν υπάρχει overhead από την Smarty που να αποτελεί αποτρεπτικό παράγοντα. Όσο και αν το λέμε και το διαβάζουμε κανένα site δεν είναι αργό λόγο Smarty. Πάντα άλλοι είναι οι λόγοι.
- Δεν έχω γράψει ούτε μία γραμμή καθαρής php μέσα σε smarty template. Ότι είναι να κάνω το κάνω πριν δώσω δεδομένα στο smarty και τελικά το template είναι ένα πολύ απλό αρχείο html που μπορεί να γίνει render και χωρίς data. ΠΟΛΥ ΣΗΜΑΝΤΙΚΟ μερικές φορές.
- Η php δεν είναι template engine. Επειδή δεν είναι compiled δεν σημαίνει ότι πρέπει να τα πετάμε όλα σε μία html. Τέτοιες ατάκες ακούω μόνο από τύπους που ξέρουν C# και θεωρούν αυτούς που ξέρουν php πιτσιρικάδες και second class προγραμματιστές. Η γλώσσα έχει εξελιχθεί πολύ και έχει δυνατότητες που έφτιαξαν ένα facebook των 600 εκατομμυρίων χρηστών. Συνεχίστε να πιστεύεται ότι είστε ανώτεροι όσο εμείς αλλάζουμε την ζωή σας.
- H καθαρή php στο κομμάτι του view είναι πηγή προβλημάτων και βρώμικη λύση. Ό λόγος είναι ότι όταν μπορείς να γράψεις κώδικά στο view κομμάτι της εφαρμογής καταλήγεις να το κάνεις όλο και πιο πολύ. Με αποτέλεσμα να δημιουργούνται templates τελικά που είναι εξαιρετικά δυσχρηστα, πολύ δύσκολα κατανοητά από άλλους και δύσκολο να κάνεις debug. Φρικάρω όταν βλέπω wordpress plugins που κάνουν τα πάντα μέσα στο template, μέσα στο td, μέσα στο span.

Την στιγμή που θα προσπαθήσεις να προσθέσεις inline css (για debug π.χ.) στο παρακάτω

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

<?php echo "<p class='$properclass' >$data</p>"; ?>
αντι για το

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

<p class="&#123;$properclass&#125;" >&#123;$data&#125;</p>
καταλαβαίνεις γιατί έχει νόημα ένα smarty. Μερικές φορές είναι πολύ σημαντικό το γεγονός ότι η πρώτη γραμμή είναι αόρατη σε κάποιο html εditor ενώ η δεύτερη όχι.

Δεν είναι πανάκεια ένα template engine αλλά είναι χρήσιμο από την άποψη ότι σε βάζει σε μία διαδικασία να σκεφτείς: "Τι δεδομένα θα χρειαστώ, ας τα ετοιμάσω και ας τα δώσω στο engine να τα χρησιμοποιήσει". Οπότε ξέρεις ότι όταν περάσεις στο template θα μπορέσεις να ασχοληθείς μόνο με το presentation όπως και πρέπει.

Σαφώς είναι ένα παραπάνω layer που πρέπει να μάθεις αλλά βοηθάει και αυτό στο να βάλεις σε τάξη και να τροποποιήσεις αισθητικά μεγάλα project. Κάθε διαχωρισμός μεταξύ logic και look είναι θετικός τελικά σε μεγάλα project και μεγάλες ομάδες.

Στο zend που δουλεύω τώρα, υπάρχει ένα view layer το οποίο χρησιμοποιεί όμως καθαρή php. Κάπου στην μέση, αλλά ακόμη βρίσκω πολύ πιο εύκολο να κάνω typo γράφοντας άπειρα echo και for παρά smarty tags.

my 2c
Τελευταία επεξεργασία από το μέλος orfeo την 14 Φεβ 2011 18:53, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

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

Δημοσίευση από fafos » 14 Φεβ 2011 18:52

Den einai mono thema tou oti voleuei ton kathenan.. o dhmiourgos prepei na sevastei kai ton epomeno developer-designer pou tha mpei na diorthosei h na allaxei pragmata sthn efarmogh mas.. den mporo ego na ypoxreoso ton designer na katsei na mathei php h to odyssey tou kontopatrioth h to troada tou fafou gia na ferei ena box apo ta dexia sta aristera h gia na prosthesei ena box ston bottom ths selidas...

o kathenas nas exei ton tropo tou na anaptysei tis efarmoges tou.. auto den shmainei oti den prepei na kratame kapoia standards pou isxyoun se olous tous kodikes (esoxes, sxolia klp).. kapoioi programmatistes se megala erga protimoun tis templates engines..

an den voleuei emas san dhmiourgous (san synthrhtes mas symferei sigoura) den shmainei oti prepei na tous rixoume ston keada..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

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

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

Δημοσίευση από pimpogio » 14 Φεβ 2011 19:07

orfeo έγραψε: - Η php δεν είναι template engine. Επειδή δεν είναι compiled δεν σημαίνει ότι πρέπει να τα πετάμε όλα σε μία html.
Συγγνωμη που θα σου το πω αλλα ναι ειναι template engine...
οταν με ενα echo τυπωνεις / τυπωνεις χυμα παντου χωρις να χρειαζετε να ορισεις καποια class (πχ σαν servlet) / εχει ομορφα loops (forearch: endforeach;) / ελεγχους(if: else: endif;) μπορεις και βγαινεις απο την php με <?php ?> για να γραψεις καθαρο html ωστε να μην εκτυπωνεις html μεσα απο την php και τοσα αλλα...
Απο αυτα που εγραψα παραπανω επιασες μονο την λεξη compiled...

Απο την σχεδιαση της φτιαχτηκε ετσι ωστε να ειναι και template engine.

Απάντηση

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

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

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