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

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

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

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

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

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

δεν υπαρχει καποια ετοιμη standar lib που κανει sanitization καρατσεκαρισμενο σε ολους τους browsers ?
Γιατι ο tinymce που θελω να χρησιμοποιησω ειναι RΤΕ...

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

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

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

pimpogio έγραψε:δεν υπαρχει καποια ετοιμη standar lib που κανει sanitization καρατσεκαρισμενο σε ολους τους browsers ?
Αυτή η δουλειά δεν γίνεται στο client αλλά στο server. Συνήθως πριν καταλήξει η πληροφορία μέσα στη βάση.

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

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

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

μα στο server λεω και εγω...
απλα εννοω απο το sanitization να μην ξεφευγει κατι
και δειχνει οτι να ναι καποιος browser ενω σε αλλους
browsers ναι ειναι ok...
γιατι αλλιως ερμηνευει την html ενας browser και αλλιως ο αλλος ...
ειδικα οταν δεν ακολουθει καποιο DTD

px <<b> κειμενο

μπορει στον Χ browser να παιζει οκ και στον Y να σου διαλυει τη σελιδα

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

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

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

dimsis έγραψε: Εσύ orfeo σε τι είδους sites έκρινες απαραίτητη την χρήση της smarty αν επιτρέπετε;
Θα σου απαντήσω ξεκάθαρα. Σε ΚΑΝΕΝΑ.

Όμως έχω δει ότι κοιμάμαι πολύ πιο καλά όταν έχω κάνει αλλαγές σε 20 templates μου όλη την ημέρα και σε καμία αλλαγή δεν έγραψα ούτε μία γραμμή καθαρή php.

Είναι ένα βήμα ακόμη στο διαχωρισμό logic και design. Μόνο αυτό. Όταν έχεις ένα project με 150 template files είναι καλό να δουλεύεις με όσο πιο μεγάλη άνεση και ασφάλεια μπορείς.

Το χειρότερο είναι ότι είναι αποδεδειγμένο ότι αν δώσεις σε 10 developers να αλλάξουν template θα καταληξουν να γράψουν πιο πολύ php μέσα στο template από ότι χρειάζεται για να εκτοξεύσεις πύραυλο.

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

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

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

orfeo έγραψε:Όμως έχω δει ότι κοιμάμαι πολύ πιο καλά όταν έχω κάνει αλλαγές σε 20 templates μου όλη την ημέρα και σε καμία αλλαγή δεν έγραψα ούτε μία γραμμή καθαρή php.
Και γιατί τόσος "φόβος" για γράψιμο κώδικα;

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

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

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

Apostolis_38 έγραψε:Και γιατί τόσος "φόβος" για γράψιμο κώδικα;
Γιατί όταν θες να κάνεις debug σε ένα design σε πολλάπλούς browser και σε πολλαπλές αναλύσεις δεν θέλεις να έχεις μπροστά σου καθόλου php κώδικα και λογική. Δεν φοβάμαι να γράψω κώδικα προφανώς αλλά όταν φρενάρω την μηχανή προτιμώ να πατήσω φρένο παρά να γράψω $bike->brake('now', 'urgent');

Είναι ο ίδιος λόγος που σε ένα καλό συνεργείο δεν υπάρχουν μπαλαντέζες στο πάτωμα και εργαλεία πεταμένα σε ένα κουτί.

Ξαναλέω ότι δεν λέω ότι είναι 100% απαραίτητη η χρήση template engine. Είναι μια λύση όμως που προσφέρει θετικά στοιχεία.

Αυτό που έκανε ο dimsis είναι κατανοητό και λογικό. Το κοιτάξε και έκρινε ότι τα μείον είναι περισσότερα από τα συν. Προς τιμήν του όμως δεν είναι απόλυτος. Καταλαβαίνει νομίζω ότι υπάρχουν παράμετροι που δεν μπορείς να αξιολόγήσεις έως ώτου αποκτήσεις hands on εμπειρία.

Προφανώς για σένα να μην είναι κακό να γράφεις php μέσα σε ένα template. Be my guest. Για εμένα είναι.

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

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

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

Apostolis_38 έγραψε:Και γιατί τόσος "φόβος" για γράψιμο κώδικα;
Γιατί πρέπει το κάθε υποσύστημα, σε αυτή τη περίπτωση το view layer, να είναι όσο πιο ανεξάρτητο (decoupled).

Φαντάσου κάθε φορά που θα ήθελες να βάλεις βενζίνη να έπρεπε να σου ανοίξουν τη μηχανή και τα πιστόνια. Θα είχε πολύ κόπο και θα ένιωθες τον ίδιο "φόβο".

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

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

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

Εγώ πάλι έχω την εξής απορία.
Που ακριβώς χρειάζεται ο designer να γράψει php code για να αλλάξει layout σε ένα κώδικα όπως ο ακόλουθος?

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

	<div class="book_title">
	<?php
	if&#40;$row->url&#41;&#123;
	?>
	<a class="link_book" href="<?php echo $variables->makeURL&#40;$row->url&#41;;?>"><?php echo $row->title;?></a>
	<?php
	&#125;else&#123;
        echo $row->title;
        &#125;
	?>
	</div>

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

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

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

orfeo, cherouvim:
Ok. Σεβαστό.
Από τη άλλη όμως εγώ δεν καταλαβαίνω γιατί κάθε φορά που θέλω να προσθέσω ένα σταυρουδάκι στον λεβιέ ταχυτήτων να αναγκάζομαι να φτιάχνω το αμάξι από την αρχή.

Πρόσθεσε ένα πεδίο στη βάση,
ενημέρωσε τo file που κάνει update - insert - delete,
ενημέρωσε τα included .conf και .so files,
ενημέρωσε τα configs του smarty,
ενημέρωσε τα modules,
τροποποίησε το tpl

Μου πέφτει λίγο βαρύ είναι η αλήθεια.
Τεσπα. Περί ορέξεως...

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

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

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

Μ'αρέσει που όλοι πιάσαμε παραδείγματα με αυτοκίνητα και μηχανές :D . Δεν νομίζω ότι σε καμία περίπτωση θα γλύτωνες την αλλαγή στο template πάντως.

Για μένα είναι από τα 2 παρακάτω το smarty είναι πιο καθαρό.

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

 <div class="book_title">
   <?php
   if&#40;$row->url&#41;&#123;
   ?>
   <a class="link_book" href="<?php echo $variables->makeURL&#40;$row->url&#41;;?>"><?php echo $row->title;?></a>
   <?php
   &#125;else&#123;
        echo $row->title;
        &#125;
   ?>
   </div>

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

<div class="book_title">
	&#123;if $row.url&#125;
	   <a class="link_book" href="&#123;$row.url&#125;">&#123;$row.title&#125;</a>
	&#123;else&#125;
	  &#123;$row.title&#125;
	&#123;/if&#125;
</div>
Ο καθένας κάνει τις επιλογές του φυσικά. Αν εσένα σου φαίνεται ok εμένα μου περισσεύει. Λάθος δεν είναι σίγουρα.

Εγώ βρίσκω το smarty πιο άνετο στο development και με λιγότερο fatal λάθη. by the way εδώ και 1 χρόνο δεν το χρησιμοποιώ λόγο zend.

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

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

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

orfeo από απορία και μόνο

το

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

<a class="link_book" href="&#123;$row.url&#125;">&#123;$row.title&#125;</a>
δεν είναι το ισοδύναμο του

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

<a class="link_book" href="<?php echo $variables->makeURL&#40;$row->url&#41;;?>"><?php echo $row->title;?></a>
μπορείς να δώσεις το ισοδύναμο σε smarty?

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

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

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

ναι έχεις δίκιο ότι δεν είναι. Υποθέτω ότι το makeURL είναι μια function που σου δημιουργεί το πλήρες url της σελίδας. Εγώ θα το έκαναν στην σελίδα που καλεί το smarty και τελικά θα έγραφα.

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

<a class="link_book" href="&#123;$row.url_done&#125;">&#123;$row.title&#125;</a>
Γυρναμε δηλαδή στην προσπάθεια του να διαχωρίζουμε το logic από το view. Είναι λίγο και θέμα του πόσο κώδικα μπορείς να σκανάρεις εύκολα με το μάτι σου ώστε να βρεις το λάθος ή την απαραίτητη αλλαγή για να πετύχεις αυτό που θες. Γιατί πολλές φορές έχουμε κάτι τέτοιο.

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

   <a class="link_book_<?php echο $row->type_of_link; ?>" href="<?php echo $variables->makeURL&#40;$row->url&#41;;?>" rel="<?php echο $row->prod_id; ?>" title="<?php echο $row->title; ?>"><?php echo $row->title;?></a>
ή και ακόμη πιο πολύπλοκο, καταλαβαίνεις που το πάω.

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

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

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

cherouvim έγραψε:Όποιος αποφασίσει να φτιάξει δικό του CMS θα κάνει πάρα πολλά λάθη και θα μάθει πάρα πολλά πράγματα.

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

nbc
Honorary Member
Δημοσιεύσεις: 526
Εγγραφή: 05 Σεπ 2009 20:12
Επικοινωνία:

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

Δημοσίευση από nbc » 15 Φεβ 2011 15:02

orfeo έγραψε:

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

   <a class="link_book_<?php echο $row->type_of_link; ?>" href="<?php echo $variables->makeURL&#40;$row->url&#41;;?>" rel="<?php echο $row->prod_id; ?>" title="<?php echο $row->title; ?>"><?php echo $row->title;?></a>
Αυτό είναι τραβηγμένο από τα μαλλιά με σκοπό τις εντυπώσεις. Μπορείς να το γράψεις κι έτσι:

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

   <?php echo sprintf&#40;'<a class="link_book_%s" href="%s" rel="%s" title="%s">%s</a>', $row->type_of_link, $variables->makeURL&#40;$row->url&#41;, $row->prod_id, $row->title, $row->title&#41; ?> 

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

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

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

orfeo αυτό ακριβώς περίμενα να πεις για να μου δώσεις την ευκαιρία να διαφωνήσω κάθετα!
Όταν λοιπόν σε κάποιο άλλο σημείο του κώδικα, θα έχω δημιουργήσει την $row.url_done, αυτή σε μετέπειτα κοίταγμα του κώδικά μου (ακόμα και από μένα τον ίδιο) δεν θα παρέπεμπε στην μέθοδο makeURL της $variables class μου! Θα παραπέμπει σε έτοιμη τιμή που την παίρνει από το πεδίο του mysql πίνακα.

Η συγκεκριμένη μέθοδος όμως ανήκει στο view μου! Μου διασφαλίζει πως αν στο πεδίο url της βάσης, ο χρήστης καταχωρήσει το url ως www.mysite.com θα εμφανιστεί στο link ως http://www.mysite.com

Και όχι αυτό δεν μπορώ να το κάνω κατά την εισαγωγή δεδομένων γιατί θα χάσω την αυτοματοποίηση της δημιουργίας backend στα sites μου (το πεδίο url αντιμετωπίζεται ως string και ισότιμα με το name ή το address!).

Σίγουρα είναι ότι βολεύει τον καθένα, αλλά για μένα είναι εγληματικό να κρύψω τόσο σημαντική πληροφορία για χάρη του smarty και του οποιουδήποτε smarty!
Και ο Αποστόλης έχει απόλυτο δίκιο όταν λέει πως όταν δούμε κάποιον κώδικά μας μετά από καιρό, έχει τεράστια σημασία να μην ακολουθούμε τον κώδικα ως ιχνηλάτες, ανακαλύπτοντας paths και files που δημιουργούνται από συνθέσεις διαφόρων σταθερών ή μεταβλητών, και ανοιγοκλείνουμε φακέλους των included και helper files, μέχρι να εντοπίσουμε το σημείο που πιθανά βρίσκεται η όποια $variables->makeURL() ώστε να ανακαλύψουμε γιατί το link αναζητεί το site ως τοπικό φάκελο "www".

Απάντηση

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

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

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