Δημιουργία προτύπων HTML με χρήση PHP. HTML, CSS, PHP, JavaScript, SQL – τι και γιατί

Ένα από τα σπουδαία πράγματα της PHP είναι ο τρόπος που λειτουργεί με φόρμες HTML. Το κύριο πράγμα εδώ είναι ότι κάθε στοιχείο φόρμας γίνεται αυτόματα διαθέσιμο στα προγράμματα PHP σας. Για λεπτομερείς πληροφορίες σχετικά με τη χρήση φορμών στην PHP, διαβάστε την ενότητα. Ακολουθεί ένα παράδειγμα φόρμας HTML:

Παράδειγμα #1 Η πιο απλή φόρμα HTML

Το όνομα σου:

Η ηλικία σου:

Δεν υπάρχει τίποτα ιδιαίτερο σε αυτή τη φόρμα. Αυτή είναι μια κανονική φόρμα HTML χωρίς ειδικές ετικέτες. Όταν ο χρήστης συμπληρώσει τη φόρμα και κάνει κλικ στο κουμπί υποβολής, θα καλείται η σελίδα action.php. Αυτό το αρχείο μπορεί να έχει κάτι σαν:

Παράδειγμα #2 Εμφάνιση δεδομένων φόρμας

Γειά σου, .
Σε εσέναχρόνια.

Παράδειγμα εξόδου αυτού του προγράμματος:

Γεια σου, Σεργκέι. Είσαι 30 χρονών.

Εάν δεν λάβετε υπόψη τα κομμάτια του κώδικα με htmlspecialchars()Και (int), η αρχή λειτουργίας αυτού του κώδικα πρέπει να είναι απλή και κατανοητή. htmlspecialchars()Διασφαλίζει ότι οι "ειδικοί" χαρακτήρες HTML είναι σωστά κωδικοποιημένοι, ώστε κακόβουλο HTML ή Javascript να μην εισαχθεί στη σελίδα σας. Το πεδίο ηλικίας, το οποίο γνωρίζουμε ότι πρέπει να είναι αριθμός, μπορούμε απλά να το μετατρέψουμε ακέραιος αριθμός, το οποίο θα απαλλαγεί αυτόματα από τους ανεπιθύμητους χαρακτήρες. Η PHP μπορεί επίσης να το κάνει αυτόματα χρησιμοποιώντας την επέκταση φίλτρου. Οι μεταβλητές $_POST["name"] και $_POST["ηλικία"] ορίζονται αυτόματα για εσάς από την PHP. Παλαιότερα χρησιμοποιούσαμε τη μεταβλητή superglobal $_SERVER, αλλά εδώ χρησιμοποιούμε επίσης τη μεταβλητή superglobal $_POST, η οποία περιέχει όλα τα δεδομένα POST. σημειώσε ότι μέθοδος αποστολής(μέθοδος) της φόρμας μας είναι POST. Αν χρησιμοποιούσαμε τη μέθοδο ΠΑΙΡΝΩ, τότε οι πληροφορίες της φόρμας μας θα βρίσκονται στην υπερσφαιρική μεταβλητή $_GET. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη μεταβλητή $_REQUEST εάν η πηγή δεδομένων δεν έχει σημασία. Αυτή η μεταβλητή περιέχει ένα μείγμα δεδομένων GET, POST, COOKIE.

15 χρόνια πριν

Σύμφωνα με την προδιαγραφή HTTP, θα πρέπει να χρησιμοποιείτε τη μέθοδο POST όταν χρησιμοποιείτε τη φόρμα για να αλλάξετε την κατάσταση κάποιου στοιχείου στο τέλος του διακομιστή. Για παράδειγμα, εάν μια σελίδα έχει μια φόρμα που επιτρέπει στους χρήστες να προσθέτουν τα δικά τους σχόλια, όπως αυτή σελίδα εδώ, η φόρμα θα πρέπει να χρησιμοποιεί POST Εάν κάνετε κλικ στο "Επαναφόρτωση" ή "Ανανέωση" σε μια σελίδα στην οποία φτάσατε μέσω ενός POST, είναι σχεδόν πάντα ένα σφάλμα -- δεν πρέπει να δημοσιεύετε το ίδιο σχόλιο δύο φορές --. Αυτός είναι ο λόγος για τον οποίο αυτές οι σελίδες δεν έχουν σελιδοδείκτη ή προσωρινή αποθήκευση.

Θα πρέπει να χρησιμοποιήσετε τη μέθοδο GET όταν η φόρμα σας αφαιρεί κάτι από τον διακομιστή και στην πραγματικότητα δεν αλλάζει τίποτα. Για παράδειγμα, η φόρμα για μια μηχανή αναζήτησης θα πρέπει να χρησιμοποιεί GET, καθώς η αναζήτηση μιας τοποθεσίας Web δεν θα πρέπει να αλλάζει τίποτα που μπορεί να ενδιαφέρει ο πελάτης, και η προσθήκη σελιδοδείκτη ή αποθήκευση των αποτελεσμάτων ενός ερωτήματος μηχανής αναζήτησης είναι εξίσου χρήσιμη με τη δημιουργία σελιδοδεικτών ή την προσωρινή αποθήκευση μια στατική σελίδα HTML.

Πριν 1 χρόνο

Αξίζει να διευκρινιστεί:

Το POST δεν είναι πιο ασφαλές από το GET.

Οι λόγοι για την επιλογή GET vs POST περιλαμβάνουν διάφορους παράγοντες όπως η πρόθεση του αιτήματος («υποβάλλετε» πληροφορίες;), το μέγεθος του αιτήματος (υπάρχουν όρια στο πόσο μπορεί να είναι μια διεύθυνση URL και οι παράμετροι GET αποστέλλονται σε τη διεύθυνση URL) και πόσο εύκολα θέλετε να είναι δυνατή η κοινή χρήση της Ενέργειας -- Παράδειγμα, οι Αναζητήσεις Google είναι GET επειδή διευκολύνουν την αντιγραφή και κοινή χρήση του ερωτήματος αναζήτησης με κάποιον άλλον, απλώς κοινοποιώντας τη διεύθυνση URL.

Η ασφάλεια λαμβάνεται υπόψη μόνο εδώ, λόγω του γεγονότος ότι ένα GET είναι πιο εύκολο να μοιραστεί από ένα POST. Παράδειγμα: δεν θέλετε να σταλεί κωδικός πρόσβασης από το GET, επειδή ο χρήστης μπορεί να μοιραστεί τη διεύθυνση URL που προκύπτει και να αποκαλύψει ακούσια τον κωδικό πρόσβασής του.

Ωστόσο, ένα GET και ένα POST είναι εξίσου εύκολο να υποκλαπούν από ένα καλά τοποθετημένο κακόβουλο άτομο εάν δεν αναπτύξετε το TLS/SSL για την προστασία της ίδιας της σύνδεσης δικτύου.

Όλες οι φόρμες που αποστέλλονται μέσω HTTP (συνήθως θύρα 80) είναι ανασφαλείς και σήμερα (2017), δεν υπάρχουν πολλοί καλοί λόγοι για έναν δημόσιο ιστότοπο να μην χρησιμοποιεί HTTPS (το οποίο είναι βασικά HTTP + Transport Layer Security).

Ως μπόνους, εάν χρησιμοποιείτε το TLS, ελαχιστοποιείτε τον κίνδυνο οι χρήστες σας να λάβουν κώδικα (AD) στην επισκεψιμότητά σας που δεν τοποθετήθηκε εκεί από εσάς.

Από τον συγγραφέα: PHP ή HTML – ποιο είναι καλύτερο; Μην κάνετε ποτέ τέτοια ερώτηση σε έναν επαγγελματία. Πρώτον, στα μάτια του θα «πέσεις» αμέσως στο επίπεδο μιας πλήρους «τσαγιέρας». Και δεύτερον... Μια τέτοια ερώτηση μπορεί να προκύψει μόνο από ένα πλήρες «σετ τσαγιού». Λοιπόν, αυτό σημαίνει ότι σήμερα κάνουμε ένα «πάρτι τσαγιού» ​​αφιερωμένο σε αυτό το περίεργο θέμα.

Κοτόπουλο, αυγό - ποιος έρχεται πρώτος;

Δεν πρέπει να βλέπετε αυτόν τον τίτλο με τέτοια μάτια. Πιστέψτε με, το ζήτημα της προτεραιότητας μεταξύ της γλώσσας του υπερκειμένου μου φαίνεται επίσης λίγο τρομακτικό. Γιατί είναι έτσι; Λοιπόν, γιατί δεν είναι η πρώτη φορά που συναντιόμαστε και ελπίζω πραγματικά να μην σας προκύψουν τέτοιες ερωτήσεις. Αλλά θα το καταλάβουμε πάντως!

Αρχικά, ας μάθουμε τι είναι ένας σύγχρονος ιστότοπος. Για να μην "τρυπάτε" για μεγάλο χρονικό διάστημα, λάβετε πληροφορίες αμέσως. Τώρα κάθε πόρος Ιστού δημιουργείται χρησιμοποιώντας τέσσερις τεχνολογίες:

HTML – χρησιμοποιείται (όπως και πριν) για τη σήμανση σελίδων στα συστατικά στοιχεία τους.

CSS – υπεύθυνος για την εμφάνιση του ιστότοπου.

JavaScript – διασφαλίζει την αλληλεπίδραση του UI (διεπαφή χρήστη) με ένα άτομο.

PHP – διασφαλίζει τη δυναμική δημιουργία πόρων και όλες τις επακόλουθες «συνέπειες»: CMS, πρόσθετα για αυτούς κ.λπ.

Ναι, παραλίγο να ξεχάσω τη MySQL. Αυτό είναι ένα DBMS. Νομίζεις ότι κάνω πλάκα; Όχι πραγματικά! Απλώς το θέμα μας είναι τόσο "τσάι" - σε τι διαφέρει η HTML από την PHP. Θα έδινα βραβεία Ig Nobel για αυτές τις ερωτήσεις (υπάρχουν και τέτοια).

Λοιπόν, προσπαθήστε να πετάξετε ένα από τα αναφερόμενα στοιχεία ενός σύγχρονου ιστότοπου και θα λάβετε όχι έναν δυναμικό πόρο, αλλά έναν στατικό τρόμο που μόλις «υφαίνει». Ειδικά αν το ξεφορτωθείς.

Διαφορές στα παραδείγματα

Τα προφορικά επιχειρήματα σχετικά με την προτεραιότητα και τη διαφορά μεταξύ των δύο κλάδων μπορούν να δοθούν ατελείωτα. Είναι καλύτερα να δούμε τις διαφορές μεταξύ PHP και HTML χρησιμοποιώντας συγκεκριμένα παραδείγματα. Ας μάθουμε ποια επιλογή θα είναι πιο εύκολη η αλλαγή του χρώματος του φόντου.

Υπάρχει μια πολύ δημοφιλής μηχανή που ονομάζεται WordPress. Τρέχει σε PHP. Για σύγκριση, ας πάρουμε τη σήμανση μιας κανονικής ιστοσελίδας και ας προσπαθήσουμε να αλλάξουμε το χρώμα φόντου σε αυτήν. Στη συνέχεια θα εφαρμόσουμε το ίδιο χρησιμοποιώντας τον πίνακα διαχείρισης CMS.

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

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

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

Σκεφτείτε έναν κανονικό ιστότοπο HTML

Από τη μία πλευρά, θα πάρουμε έναν κανονικό ιστότοπο HTML, ο οποίος είναι ουσιαστικά στατικός. Με απλά λόγια, υπάρχει ένας ορισμένος αριθμός σελίδων με πληροφορίες που συνδέονται μεταξύ τους με συνδέσμους. Συνήθως δεν υπάρχουν πολλές σελίδες σε έναν τέτοιο ιστότοπο, αν και υπάρχουν εξαιρέσεις.


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

Όμως, όπως δείχνει η εμπειρία, μόνο λίγοι αντιμετωπίζουν αυτό το έργο και οι ιστοσελίδες τους συνεχίζουν να αναπτύσσονται και να αναπτύσσονται.

Τι γίνεται με όλους τους άλλους;

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

Από την άλλη πλευρά, ας δούμε έναν ιστότοπο που δημιουργήθηκε χρησιμοποιώντας έναν συνδυασμό κανονικού HTML και μιας απλής γλώσσας προγραμματισμού Ιστού - PHP.

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

Τι μας δίνει αυτό;

Σου δίνει ελευθερία. Εκείνοι. Τώρα μπορούμε να συνδέσουμε αυτά τα μπλοκ στο κύριο πλαίσιο και ακόμα κι αν με την πάροδο του χρόνου έχουμε 10.000 σελίδες στον ιστότοπο και ξαφνικά χρειαστεί να αλλάξουμε κάποιο στοιχείο πλοήγησης, τότε δεν θα υπάρχει τίποτα περίπλοκο σε αυτό. Ανοίξαμε το αρχείο με το επιθυμητό μπλοκ, το επεξεργαστήκαμε και αυτό είναι! Και στις 10.000 σελίδες, αυτή η αλλαγή συνέβη σε μια στιγμή.

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

— Ο ιστότοπος καταλαμβάνει λιγότερο χώρο.
— Η δημιουργία αντιγράφων ασφαλείας δεδομένων απλοποιείται.
— Διευκολύνει την αλλαγή οποιωνδήποτε δεδομένων.
— Καθίσταται δυνατή η καταμέτρηση οποιασδήποτε πληροφορίας (πόσες φορές προβλήθηκε μια σελίδα, έγινε λήψη ενός αρχείου, προστέθηκαν σχόλια κ.λπ.).
— Μπορείτε να χρησιμοποιήσετε πολλά έτοιμα σενάρια PHP στον ιστότοπο.
- και τα λοιπά.

HTML ή PHP

Αν κάνουμε μια αναλογία μεταξύ των ιστοσελίδων HTML και PHP με αυτοκίνητα, τότε όπως τα σύγχρονα αυτοκίνητα έχουν γίνει πιο άνετα, πιο ισχυρά, πιο λειτουργικά και ταυτόχρονα άρχισαν να καταναλώνουν λιγότερα καύσιμα από τα αντίστοιχά τους πριν από 50 χρόνια, έτσι και ο ιστότοπος PHP έχει γίνει πιο ελαφρύ, πιο λειτουργικό, πιο εύκολο στη διαχείριση και πιο φορητό από τον αντίπαλό του σε HTML.

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

Εβγκένι Ποπόφ– Συγγραφέας του μαθήματος βίντεο διάρκειας 22,5 ωρών «Όλα τα τεχνικά σημεία της διαδικτυακής επιχείρησης σε μορφή βίντεο 2 ή PHP+MySQL για αρχάριους», το οποίο δείχνει ολόκληρη τη διαδικασία δημιουργίας ενός ιστότοπου PHP από την αρχή απευθείας στην οθόνη του υπολογιστή σας με φωνητικές επεξηγήσεις.

Ενώ εργαζόμουν για ενημερώσεις ιστότοπου, παρατήρησα την παλιά μου διάταξη όταν ήμουν ακόμα νέος στην PHP. Λαμβάνοντας υπόψη την εμπειρία που αποκτήθηκε, οι ελλείψεις της παλιάς μεθόδου διάταξης είναι ορατές, όταν η HTML πλαισιώνει την PHP και δεν βρίσκεται μέσα σε αυτήν.

Δυστυχώς, ακόμα δεν έχω βρει κάτι ενδιαφέρον σχετικά με αυτό το θέμα για να διαβάσω πώς να το διατάξω καλύτερα. Ωστόσο, κοιτάζοντας τον σύγχρονο κώδικα διάταξης, παρατήρησα όλο και περισσότερο ότι η html βρίσκεται σχεδόν πάντα μέσα σε δομές php. Και υπάρχουν σημαντικά πλεονεκτήματα σε αυτό.

Ας δούμε τα πλεονεκτήματα της ύπαρξης HTML μέσα στην PHP χρησιμοποιώντας το παράδειγμα της εξόδου κεφαλίδας στο WordPress.

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

< ! -- Title -- >

< h3 class = "archive-entry-title" itemprop = "name" > < a href = " " rel = "σελιδοδείκτης" τίτλος = " !}" > ID , "name_rus" , true ) ): ?>ID, "name_rus", true) ; ?> < / a > < / h3 >

< ! -- Title End -- >

Υπάρχουν πολλά μειονεκτήματα σε αυτόν τον σχεδιασμό κώδικα. Πρώτον, δεν είναι οπτικό - όλα είναι γραμμένα σε μια γραμμή. Αυτό έγινε επίτηδες, ώστε να μην υπάρχουν κενά κενά μεταξύ των ετικετών H1, H2, H3. Εξάλλου, δεν υπάρχει τίποτα καλό στο να υπάρχουν κενά στις ετικέτες τίτλου. Είναι αδύνατο να προβλεφθεί πώς σε αυτήν την περίπτωση, μεταξύ των μηχανών αναζήτησης, αυτό θα επηρεάσει τον ιστότοπο. Εάν τα επιπλέον κενά θα μειώσουν τη δύναμη του τίτλου ή όχι. Δεδομένου ότι δεν υπάρχουν απαντήσεις σε μια τέτοια ερώτηση, θα πρέπει κανείς να υποθέσει το χειρότερο. Και επομένως γράψτε μαζί.

Διαφορετικά, σε συνέχεια των όσων ειπώθηκαν, αν κάνουμε οπτικό τον παραπάνω κώδικα:

< ! -- Title -- >

< h3 class = "archive-entry-title" itemprop = "name" >

< a href = " " rel = "σελιδοδείκτης" τίτλος = " !}" >

ID , "name_rus" , true ) ): ?>

ID, "name_rus", true) ; ?>

< / a >

< / h3 >

< ! -- Title End -- >

Στη συνέχεια, κατά την προβολή του κώδικα HTML της σελίδας στο πρόγραμμα περιήγησης στην κεφαλίδα των ετικετών h3, θα δούμε τα εξής:

Χρειαζόμαστε επίσης ο κώδικας να είναι ευανάγνωστος κατά την επεξεργασία και στη συνέχεια να εμφανίζεται απρόσκοπτα κατά τη φόρτωση του ιστότοπου. Δηλαδή, έτσι ώστε να μοιάζει με αυτό:

Για να το κάνετε αυτό, θα πρέπει να χρησιμοποιήσετε την PHP και να τυλίξετε όλο τον κώδικα html σε αυτήν. Και λαμβάνουμε τον ακόλουθο τύπο κώδικα php για την κεφαλίδα του WordPress:

< ! -- Title -- >

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

Η ερώτησή μου είναι πώς και γιατί πρέπει να δημιουργήσετε ένα πρότυπο για ολόκληρη τη σελίδα σε ένα αρχείο. Ας υποθέσουμε ότι θέλατε να εμφανίσετε μια φόρμα σύνδεσης σε περισσότερες από μία σελίδες, δεν θα χρειαστεί να δημιουργήσετε μια φόρμα σύνδεσης για κάθε πρότυπο που θέλετε να εμφανίσετε; Δεν είναι αυτό ενάντια στους κανόνες DRY;

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

$title = "Μπλα Μπλα Μπλα"; $user = "Jon Miller"; include "index.phtml"; !} <?php echo $title; ?>

φόρμα σύνδεσης


το έκανα

$title = "Μπλα Μπλα Μπλα"; include "header.phtml"; $user = "Jon Miller"; include "user.phtml"; include "login_form.phtml"; include "footer.phtml"; header.phtml !} <?php echo $title; ?> user.phtml

login_form.phtml
φόρμα σύνδεσης
footer.phtml

Όπως πάντα, θα ήθελα απλώς να μάθω τον σωστό τρόπο για να το κάνω αυτό, καθώς και το πώς και γιατί... Αυτό φαίνεται να έρχεται σε αντίθεση με τον κανόνα DRY.

4 απαντήσεις

Μια λέξη: Οργάνωση. Ο διαχωρισμός κάθε μέρους της σελίδας θα επιτρέψει την προβολή/επεξεργασία του καθενός ξεχωριστά. Αυτή η απλή ιδέα είναι πολύ χρήσιμη. Για παράδειγμα, οποιοσδήποτε σε μια ομάδα θέλει να χειριστεί τη διαδικασία σύνδεσης μπορεί εύκολα να καταλάβει ότι χρειάζεται να επεξεργαστεί το login_form.phtml και μπορεί να είναι σίγουρος ότι η επεξεργασία του login_form.phtml θα είναι λιγότερο πιθανό να επηρεάσει ακούσια άλλες λειτουργίες.

Ο καλύτερος τρόπος είναι πώς το κάνω (όχι ακριβώς, αλλά παρόμοιο).

$Title = "Μπλα Μπλα Μπλα"; $User = "Jon Miller"; $ThemeName = "MyGreenPage"; $Contents = array("User", "Login_Form"); function Include($FileName) { if (file_exists($FileName)) include $FileName; } !}

MyGreenPage.phtml:

<?php echo $title; ?>

User.pcss:

/* Ορισμένα στυλ που χρειάζονται ο χρήστης */

User.pjs:

/* Κάποιο σενάριο που χρειάζεται ο χρήστης */

User.phtml:

Login_Form.pcss:

/* Ορισμένα στυλ που απαιτούνται από το Login_Form */

Login_Form.pjs:

/* Κάποιο σενάριο που απαιτείται από το Login_Form */

login_form.phtml:

φόρμα σύνδεσης

Επιτρέψτε μου να σας υπενθυμίσω ξανά ότι αυτό δεν κάνω (ότι χρησιμοποιώ το OOP), επομένως μπορεί να μην λειτουργεί ακριβώς όπως είναι και ίσως χρειαστεί να το επεξεργαστείτε.

Θα πρέπει να ελέγξετε τις έννοιες των διατάξεων και να δείτε βοηθούς. Αν και είμαι συνδεδεμένος με την έκδοση Zend Framework αυτών των εννοιών, άλλα πλαίσια MVC (και η έννοια MVC) θα πρέπει να τα έχουν επίσης.

Η βασική ιδέα είναι ότι η σελίδα "προβολή" σας - για παράδειγμα, μια φόρμα σύνδεσης - περιλαμβάνεται στη διάταξη του ιστότοπού σας - το συνολικό πρότυπο που χρησιμοποιείται σε ολόκληρο τον ιστότοπό σας. Όταν ζητάτε έναν άλλο ελεγκτή, με διαφορετική προβολή - για παράδειγμα προφίλ χρήστη - αυτή η προβολή περιλαμβάνεται επίσης στην ίδια διάταξη.

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

Η μέθοδος "συμπερίληψης" δύο βημάτων λειτουργεί καλύτερα από τη γραμμική συμπερίληψη τμημάτων (συμπεριλαμβανομένης της κεφαλίδας, μετά του περιεχομένου και μετά το υποσέλιδο - αυτό που κάνετε τώρα), επειδή τα πρότυπά σας δεν χρειάζεται να διαχωρίζουν τις ετικέτες HTML. Το σεμινάριο Zend έχει ένα ωραίο οπτικό παράδειγμα προτύπων προβολής σε διάταξη.

Ο πιο συνηθισμένος τρόπος δημιουργίας προτύπων HTML με PHP είναι να χρησιμοποιήσετε ένα από αυτά τα δημοφιλή πρότυπα:

Εναλλακτικά, μπορείτε απλά να βάλετε σύμβολα κράτησης θέσης στο HTML σας που μοιάζουν<% variablename %>. Απλώς φορτώστε τον κώδικα HTML, εκτελέστε το regex, βρείτε όλα τα σύμβολα κράτησης θέσης και αντικαταστήστε τα με τις κατάλληλες μεταβλητές.

Εναλλακτικά, μπορείτε να φορτώσετε το HTML σας, να το αναλύσετε όπως Έγγραφο DOMκαι μετά αλλάξτε το DOM σας. Δημιούργησα μια βιβλιοθήκη



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: