>> Για να αρχίσετε να γεφυρώσει αυτό μπορεί να είναι μόνο η εμπειρία σας
με τον προγραμματισμό web, αυτό που Σκέφτηκα να κάνουμε είναι να κλέψει ένα ζευγάρι
παραδείγματα ότι να έχετε δει στις 50
αν το πήρε το παρελθόν χρόνος ή δύο ή δεν μπορεί να έχει
αν το πήρε πριν από λίγα χρόνια
που είναι τα βήματα του μωρού της προς πυριδίνη γνωρίζουμε ως MBC,
Model View Controller, και τι σημαίνει αυτό;
Αυτό είναι που θα δούμε και πάλι, ίσως Είναι απλά ένας τρόπος εκκίνησης
να καθαρίσει το σχεδιασμό μερικών web-based κομμάτι του λογισμικού,
ή θα μπορούσε να είναι πλευρά του πελάτη βασίζεται επίσης, αλλά εμείς θα το χρησιμοποιήσετε
στο πλαίσιο της PHP, έτσι ώστε να μπορούμε να αρχίσουμε
να κάνει πιο σύνθετη έργα και το είδος
χωριστών διαφορετικούς τύπους κώδικα μέσα από την εφαρμογή?
ιδιαίτερα, έτσι ώστε όταν υπάρχουν πολλά άτομα που εργάζονται
σε ένα έργο είναι πολύ πιο εύκολο να σχεδιάσετε γραμμές.
Έτσι, πρώτα ας ρίξουμε μια δούμε ένα τρόπο αναντίστοιχο
των εκτελεστικών κάτι.
Ας υποθέσουμε ότι θα ήθελα να κάνω ένα σούπερ απλό μάθημα ιστοσελίδα για 50
ή οποιαδήποτε άλλη κατηγορία, και ότι η τάξη έχει τα πράγματα
όπως διαλέξεις και εξεταστέα ύλη.
Θα μπορούσα να κάνω κάτι σαν ένα h1 tag στην κορυφή της σελίδας μου
και μια μη διατεταγμένη λίστα με Λίστα li στοιχεία προκειμένου
να έχουμε μόνο μια λίστα με κουκκίδες των επιλογές του μενού, έτσι εξαιρετικά απλή.
Λοιπόν, πώς θα μπορούσαμε να το κάνουμε αυτό;
Λοιπόν, επιτρέψτε μου να πάω σε μου παράθυρο τερματικού εδώ,
και να παρατηρήσετε ότι έχω μια ανάγνωση μου και θα συνδέουν σε αυτό το κώδικα
στην ιστοσελίδα του μαθήματος σε λίγο,
και να παρατηρήσετε ότι έχω Δείκτης dot htm - index dot php.
Έτσι, επιτρέψτε μου να πάει μπροστά και να ανοίξει ότι, και αρκετά βέβαιος ότι το είδος
ανόητο ότι αυτό ακόμη και καλείται php
γιατί το μόνο που έχω είναι ένα σχόλιο php
και στη συνέχεια όλα τα άλλα είναι απλώς πρώτων κώδικα html.
Αλλά και πάλι η νέα έκδοση είναι μηδέν,
έτσι ένα βήμα προς την κατεύθυνση κάτι πιο ενδιαφέρον,
αλλά παρατηρήσετε έχω σκληρό κωδικοποιούνται CS50 όπως ο τίτλος, CS50 στο h1,
και τώρα έχω την διαλέξεις σύνδεση,
τώρα έχω το σύνδεσμο διδακτέα ύλη.
Εντάξει, έτσι ώστε να μην κάνει φαίνεται ότι όλα παράλογη
μέχρι να ακολουθήσετε μια σύνδεση, όπως , έχετε συνειδητοποιήσει διαλέξεις και
ότι εντάξει είναι διαφορετικό περιεχόμενο, αλλά είναι το είδος
το ίδιο πράγμα? Είναι ένας τίτλος της σελίδας και μη διατεταγμένη λίστα.
Κάνω κλικ εβδομάδα μηδέν από το περασμένο έτος, και αυτό είναι το είδος
το ίδιο πράγμα, ένα h1 tag και μια μη διατεταγμένη λίστα
και στη συνέχεια, τέλος, κάνω κλικ αυτό, και παίρνω σε κάποιο φύλλο,
που είναι οι διαφάνειες ότι η συγκεκριμένη διάλεξη.
Έτσι, κάτι μου λέει Είμαι έτοιμος να μαζεύομαι.
Αν έχω ανοίξει διαλέξεις dot ανακοίνωση php
ότι είναι λίγο πολύ αντιγραφή και επικόλληση από το προηγούμενο αρχείο?
Έχω αλλάξει μόνο τον τίτλο h1, και ποιες είναι αυτές οι συνδέσεις είναι.
Χειρότερα ακόμα, αν πάω στην εβδομάδα μηδέν dot php,
είναι η ίδια δουλειά αντιγραφή επικόλληση
με ακριβώς ένα κομμάτι της περιεχόμενο πειραγμένο.
Έτσι, σίγουρα υπάρχει μια ευκαιρία εδώ να βελτιωθεί,
και σίγουρα αυτό θα πρέπει να είναι ένας καλός εμπειρικός κανόνας?
οποτεδήποτε αισθάνεστε τον εαυτό σας την αντιγραφή
και επικόλληση κάτι περισσότερο από ό, τι ίσως φορά,
κόκκινες σημαίες θα πρέπει να ελπίζουμε να αρχίσει να σβήνει.
Αλλά πώς θα το κάνουμε για τη βελτίωση αυτό;
Λοιπόν, υπάρχουν μερικοί τρόποι, και οι τεχνικές που μπορείτε να χρησιμοποιήσετε
σε php έχουν εξελιχθεί με την πάροδο χρόνο, αλλά ας προσπαθήσουμε αυτό.
Επιτρέψτε μου να πάω σε μία έκδοση, έτσι ώστε η επόμενη επανάληψη αυτού,
και επιτρέψτε μου να προσπαθήσω να καθαρίστε επάνω ένα κομμάτι.
Δεξιά, ένα από τα php του απλούς μηχανισμούς
για την επίλυση αυτού του προβλήματος είναι η old school απαιτούν τη λειτουργία,
το οποίο κάνει λίγο πολύ ένα αντίγραφο και επικόλληση των περιεχομένων
του σε κάποιο αρχείο εδώ, όπως το γ είναι απότομη περιλαμβάνουν,
και άλλες γλώσσες έχουν πολύ παρόμοια κατασκευάσματα.
Γι 'αυτό φαίνεται λίγο παράξενο τώρα,
σίγουρα δεν είναι μια ολοκληρώσει αναζητούν ιστοσελίδα,
αλλά προφανώς αυτό είναι εσωτερικό του header dot php.
Όλα τα άλλα πράγματα, σωστά, η html ετικέτα, τότε το κεφάλι,
ο τίτλος της ετικέτας, όλα τα πράγματα ότι ήταν πάνω από την κύρια ουσία
της σελίδας, που είναι αναμφισβήτητα μόνο η μη διατεταγμένη λίστα,
και στο κάτω μέρος της σελίδας είναι πιθανώς όπως και το κλειστό ετικέτα του σώματος,
ετικέτα του κλειστού html του? αρκετά πληκτικός
αλλά η επανάληψη τα πράγματα.
Εντάξει, και σίγουρα αρκετά αν πάω
στην κεφαλίδα dot php είναι ακριβώς είδος του θραύσματος ορφανού
από την κορυφή, και αν πάει στο υποσέλιδο dot php,
είναι η ορφανή θραύσμα από τον πυθμένα,
και είμαι χρησιμοποιώντας αυτές τις ίδιες θραυσμάτων σε άλλα αρχεία μου,
όπως διαλέξεις dot php.
Εντάξει, έτσι τι είναι καλύτερο γι 'αυτό θα σας πω;
Ναι;
>> Απλότητα.
>> Απλότητα;
Δεν ξέρω αυτό το είδος των βλεμμάτων πολύ τρομακτικό για μένα τώρα, σωστά;
>> Αν ήθελα να αλλάξω σας κεφαλίδα, δεν θα είχατε
να το αλλάξετε σε όλα τα προηγούμενο, όπως αρχεία.
Μπορείτε απλά να το αλλάξετε στην κεφαλίδα σας.
>> Ακριβώς, οπότε ίσως σε ότι η έννοια αυτή είναι απλούστερη,
ίσως θα ήθελα να το πλαισιώνουν, όπως είναι απλά είναι πιο εύκολο να το ενημερώσετε.
Είναι ίσως λίγο καθαρότερο
γιατί να ενημερώσετε αυτό σε ένα μόνο σημείο.
Έτσι ώστε να είναι αρκετά επιτακτική? τι είναι ένα μειονέκτημα
αυτής της προσέγγισης ή τι το πρόβλημα παραμένει
ότι δεν έχουμε πραγματικά λυθεί;
Ναι;
[Off Mic Comment]
Ναι, ακριβώς, εννοώ, είμαι ακόμη αντιγραφή και επικόλληση?
είναι λίγο λιγότερο, αλλά μόνο τράβηξε δύο από αυτά τα αρχεία,
και λίγο πολύ ακόμα ήταν πανομοιότυπη.
Υπήρξε μια απαιτούν την κορυφή, μία απαιτούν στο κάτω μέρος,
και μια μη διατεταγμένη κατάλογο στη μέση
η οποία ήταν η ίδια ακόμα συντακτικώς το ίδιο.
Επιπλέον, παρατηρήσετε αυτό, αν στην πραγματικότητα δείτε αυτό το παράδειγμα,
επιτρέψτε μου να πάω στην έκδοση One τώρα,
και να παρατηρήσετε έχω CS50 Διάλεξη Ύλη.
Uh oh, CS50 Εβδομάδα Zero Εβδομάδα Ένα και CS50, Τετάρτη, Παρασκευή,
Έχω το είδος του κόψει μια γωνία.
Ποια ήταν - τι ήταν οι εν λόγω τίτλους στο παρελθόν;
[Off Mic Comment]
Ήταν σαν διαλέξεις σε Εβδομάδα Zero, σαν να ήταν το είδος
των πιο σέξι, και στην πραγματικότητα είχε αρκετό δυναμισμό σε αυτό,
και αυτό είναι το είδος της - είμαι ακριβώς το είδος του στοίχημα τώρα
και μόνο υπό την προϋπόθεση ότι ολόκληρη η ιστοσελίδα είναι CS50
και λειτουργεί εντάξει, αλλά είναι σίγουρα δεν είναι τόσο κομψή
ή ως ένα είδος των απλών διαβιβάσει, όπως ήταν κάποτε,
αλλά αυτό είναι λογικό, διότι αν κοιτάξετε δείκτη dot php
και διαλέξεις dot php και την εβδομάδα μηδέν php dot,
είναι όλοι, συμπεριλαμβανομένων το ίδιο αρχείο,
έτσι πώς μπορούμε να βελτιώσουμε αυτό;
Ποια είναι η επόμενη επανάληψη του αυτός ο κώδικας κατά πάσα πιθανότητα πρόκειται να κάνει;
[Off Mic Comment]
Ναι, ακριβώς, οπότε αν - και επιτρέψτε μου να συνοψίσω
με επιθυμούμε ουσιαστικά παραμετρικοποίηση ότι η κεφαλίδα
έτσι ώστε ναι υπάρχει ακόμα σκληρό κωδικοποιούνται h1 tag, αλλά η ουσία
στο μεταξύ, η ανοικτή και η ετικέτα κλεισίματος,
είναι πιθανώς δυναμική, και προέρχεται από κάτι άλλο.
Ίσως το "πάρει string" ή το πράγμα μετά το ερωτηματικό
στο URL ήταν κάπου αλλιώς, οπότε ας ρίξουμε μια ματιά.
Έτσι, αν πάω στην έκδοση δύο,
σήμερα παρατηρούμε ότι έχω πήρε ένα πρόσθετο αρχείο,
μοιάζει βοηθοί dot php.
Πραγματικά, δεν ξέρω από πού να αρχίζουν έτσι είμαι πρόκειται να ξεκινήσει μόνο
στο δείκτη, όπως, όπως πάντα, και τώρα παρατηρήσετε ότι είναι λίγο διαφορετικό,
έτσι έχω μια γραμμή απαιτούν
στην κορυφή που απαιτούν βοηθοί dot php,
αλλά μπορώ να το καλέσετε ό, τι θέλω,
αλλά τώρα παρατηρήσετε γραμμή των τριών υπάρχει μια κλήση της συνάρτησης
να καταστήσει την κεφαλιά, η οποία είναι ενδιαφέρον μόνο στο βαθμό
όπως τι να περάσει στην προφανώς, το έθιμο του τίτλου
για αυτή τη συγκεκριμένη σελίδα.
Εν τω μεταξύ, υπάρχει καθιστούν footer στο κάτω μέρος,
και δεν χρειάζεται καμία παραμετροποίηση εκεί είναι απλά
υποσέλιδο, αλλά τώρα φαίνεται να υπάρχει
να είναι ένα βήμα προς μια καλύτερη λύση, καθιστούν κεφαλίδα παίρνει,
και τι κάνει η πλατεία παρένθεση δείχνουν για εκείνους
που δεν έχουν δει php ποτέ ή σε μια στιγμή;
[Off Mic Comment]
Ναι, είναι μια σειρά.
Είναι ένα associative array ή ένα hash που συνδέει τα πλήκτρα
με τιμές? είναι σαν Java Σενάρια, σημειογραφία αντίρρηση,
ή άλλες γλώσσες, παρόμοια syntaxs.
Εντάξει, έτσι τι είναι σε βοηθούς dot php?
Σε βοηθοί dot php είναι μόλις δύο λειτουργίες,
καθιστούν κεφαλίδα και υποσέλιδο καταστήσει.
Έτσι, ένα ζευγάρι των στοιχείων αν είναι λιγότερο εξοικειωμένοι,
έτσι ώστε πρώτα απ 'όλα το γεγονός
που καθιστούν την κεφαλιά παίρνει μια το επιχείρημα των δεδομένων που είναι προφανώς
ανατεθεί το κενό array εκεί σημαίνει τι;
Τι σημαίνει να κάνουμε ίσων ελεύθερο βραχίονα κλειστό βραχίονα
ως παράμετρος σε php?
Είναι η προεπιλεγμένη τιμή.
Έτσι, αν δεν περάσω σε array ή οποιοδήποτε επιχείρημα απολύτως
στην κεφαλίδα ή καθιστούν το καθιστούν τη λειτουργία footer,
Μπορώ τουλάχιστον εμπιστοσύνη και η συντάκτης αυτών των καθηκόντων
ότι τα δεδομένα θα είναι ελάχιστα είναι ένα άδειο πίνακα?
δεν θα Απροσδιόριστος ή ψευδείς, ή κάτι τέτοιο,
θα είναι ακριβώς ό, τι Μου έδωσε ως προεπιλογή.
Τώρα αυτό είναι ένα κομμάτι από ένα είδος ένας τρόπος hackish συμβόλων φόρτωσης
στο διάστημα το όνομά σας να το πω έτσι,
αλλά λειτουργεί αρκετά και προς το σκοπό αυτό
από την εφαρμογή της δικής μας είδος μηχανή προτύπων φτωχού.
Εντάξει, υπάρχει πολλή εργαλεία εκεί έξω για Python Ruby
και php που σας δίνουν δυνατότητες προτυποποίησης
και αυτό είναι ακριβώς αυτό που θέλουμε.
Θέλουμε ένα πρότυπο που έχει ένα h1 open tag, ένα h1 tag κλειστά,
και το είδος της μια θέση κάτοχος στη μέση,
και θέλουμε να γεμίσει αυτές τις τόπο κατόχους μέσω αυτής της λειτουργίας,
έτσι ώστε αυτή η λειτουργία εκχύλισμα ακριβώς έτσι συμβαίνει
για να σας δώσει την ακόλουθη δυνατότητες.
Αν έχετε μια συνειρμική του πίνακα με τους βασικούς ζεύγη τιμών
όπως foo ισούται με μπαρ, εκχύλισμα θα δημιουργήσει μια τοπική μεταβλητή
ονομάζεται αποτελεσματικά σύμβολο του δολαρίου foo και να δώσει μια αξία bar
έτσι ώστε να εκρήγνυται συνειρμική σας σειρά από βασικά ζεύγη τιμών
σε νέες μεταβλητές με οι αντίστοιχες τιμές.
Και στη συνέχεια απαιτούν dot κεφαλίδα dot php είναι η ίδια όπως και πριν,
ναι, τι είμαστε κατά πάσα πιθανότητα θα να δει μέσα από την κεφαλιά dot php?
Είναι πιθανόν να πήρε την ετικέτα h1 και η στενή ετικέτα? τι συμβαίνει
να είναι στο εσωτερικό του ίσως στο μεταξύ αυτό;
[Off Mic Comment]
Ακριβώς, είναι πιθανόν να υπάρχει κάποιο αναφορά σύμβολο του δολαρίου τίτλου
και αρκετά βέβαιος αν έχω μεγέθυνση για το θέμα αυτό υπάρχει ετικέττα τίτλου μου,
υπάρχει ετικέτα h1 μου, και μέσα από αυτό είναι μια δυναμική εισαγωγή
από το σύμβολο του δολαρίου τίτλο, αλλά μόνο για το καλό μέτρο,
Κάνω αυτό το html ειδική χρεώνουν atrociously όνομα
λειτουργία, αλλά είναι χρήσιμο? τι κάνει
ή τι να προστατεύουν;
Αυτό είναι πραγματικά μια λύση σε μια απειλή που υπαινίχθηκε?
θα μας έχουν οδηγήσει σε.
[Off Mic Comment]
Ακριβώς, έτσι ώστε αν ένα κακόβουλο χρήστης ή ένα ανυποψίαστο θύμα
μιας επίθεσης phishing κλικ σε ένα σύνδεσμο
ότι αυτο ήταν ένα ερωτηματικό και κάτι σαν foo ισούται,
και τότε η τιμή παπο ήταν στην πραγματικότητα
όπως το ανοιχτό βραχίονα script, κλειστό βραχίονα,
και στη συνέχεια κάποιες κώδικα JavaScript?
αν δεν την είχε καλέσει αυτό μακράς κύρια λειτουργία,
πραγματικά θα πρέπει να μολύνει πρώτες html στην ιστοσελίδα σας,
το αποτέλεσμα της οποίας είναι ότι έτσι μπορεί να παρασυρθείτε.
Ίσως να ξεγελώντας τον χρήστη σε εκτέλεση κώδικα JavaScript
ότι αυτός ή αυτή έκανε στην πραγματικότητα δεν σκοπεύουν.
Και παρόλο που συνήθως είστε μόνο πληγώνει τον εαυτό σας,
όπως μόνο εσείς ξέρετε ένα ηλίθιος πρόκειται να πληκτρολογήσετε
σε ανοιχτή σενάριο βραχίονα, κλειστό βραχίονα, και να πω σε εγρήγορση
ή κάτι τέτοιο και τον εαυτό του να κάνει
με κάποιο περίεργο αποτέλεσμα, αν δεν παρασυρθείτε
κλικ σε ένα link που έχει πρώτες JavaScript ενσωματωμένα σε αυτό
καθώς η αξία του εν λόγω χαρακτηριστικού,
μπορείτε, μεταξύ άλλων, κλέψει τα cookies κάποιου
επειδή υπάρχει ένα ακίνητο που ονομάζεται έγγραφο μπισκότο dot
σε JavaScript που σας επιτρέπει να αρπάξει cookie συνόδου του χρήστη,
και αν θυμηθούμε τι μια συνεδρία επίθεση πειρατεία είναι,
μακρά ιστορία σύντομη, αυτό είναι ένα τρόπος εξαπάτηση πραγματικά κάποιος
να σου δώσει αυτό το εικονικό σφραγίδα στο χέρι και στη συνέχεια να λάβει
πάνω από τον λογαριασμό τους στο Facebook ή κάποιο άλλο είδος του λογαριασμού.
Εντάξει, έτσι αυτό είναι λίγο μεγάλο,
αλλά είναι απλώς χρησιμοποιώντας πρώτες κώδικα html.
Αυτό είναι το ισοδύναμο καλώντας echo
ή να εκτυπώσετε αποτελεσματικά, και είμαστε ουσιαστικά την εισαγωγή
ότι δυναμικά.
Λοιπόν, τι περισσότερο παραμένει εδώ;
Λοιπόν, επιτρέψτε μου να μπω σε Έκδοση Τρεις εδώ,
και θα δούμε μια κάπως διαφορετικά -
ακριβώς το ίδιο αρχείο διάταξης αλλά προειδοποίηση
ότι αυτή τη φορά θα πάμε να γενίκευση της κεφαλίδας και του υποσέλιδου
ως πρότυπα, έτσι ώστε ό, τι Δεν εννοώ με αυτό;
Ποιο είναι το ένα πράγμα αυτό είναι διαφορετικό εδώ;
Τι έχει αλλάξει από η τελευταία έκδοση;
Λεπτές, αλλά είναι αναμφισβήτητα απλά μια καλύτερη καθαρότερο σχεδιασμό.
Ναι;
[Off Mic Comment]
Ναι, υπάρχει μόνο ένα πρότυπο καθιστούν τη λειτουργία?
Δεν είχα ειδική περίπτωση καθιστούν κεφαλίδα ή να καταστήσει footer,
οι οποίες, αν ανάκληση από τους βοηθούς dot php,
είμαστε λίγο πολύ ίδια εκτός από τα ονόματα τους
και τα πρότυπα που περιλαμβάνονται.
Γιατί δεν είναι μόνο παραμετροποιήσετε η λειτουργία καθιστούν
και να λάβει ένα επιχείρημα, ότι είναι το όνομα του προτύπου,
και ένα δεύτερο προαιρετικό όρισμα που είναι τα βασικά ζεύγη τιμών
που θέλετε να συνδέσετε in
Έτσι, αν εξετάσουμε τώρα βοηθοί dot ειδοποίηση php
ότι είμαι είναι ένα τώρα λίγο πιό φανταχτερό.
Είμαι πραγματικά κάνει έλεγχο η το αρχείο υπάρχει και αν ναι πάμε μπροστά
και απαιτούν? μόνο στην περίπτωση ο χρήστης κατά λάθος τους τύπους
σε κάποιο ψεύτικο όνομα του προτύπου σας Δεν θέλω να ρίξει ένα λάθος
στο πλαίσιο του προγράμματος ώστε να μπορούμε να ελάχιστα να το κάνουν αυτό
ευνοούν εδώ.
Εντάξει, αλλά μπορούμε να κάνουμε λαμβάνουν αυτό το ένα βήμα παραπέρα;
Σε αυτή την έκδοση εδώ παρατηρήσετε τα ακόλουθα.
Έχω μόλις πληκτρολογήσατε ls, και τι αμέσως άλματα
έξω είναι κάπως διαφορετική.
Έτσι, υπάρχουν δύο κατάλογοι, δεξιά,
και έτσι αυτό είναι τώρα ένα βήμα προς την κατεύθυνση τι τελικά θα είναι μια πιο
κατάλληλο πλαίσιο.
Αυτό είναι το είδος των προχειρότητα μου να ρίχνουν όλα
του περιεχομένου μου μέσα από ένα δημόσια προσβάσιμο κατάλογο
που κυριολεκτικά λέγεται δημόσια.
Και παρόλο που, δυστυχώς, πολλά πλαίσια,
παλαιότερα ιδιαίτερα, και ακόμη και μερικά μηνύματα στο διαδίκτυο,
Dream υποδοχής μεταξύ τους, οι δυνάμεις μπορείτε να βάλετε όλα τα αρχεία σας
στο ισοδύναμο ενός δημόσιου καταλόγου, ακόμη και
αν τα αρχεία σας θα μπορούσε περιλαμβάνουν κωδικούς πρόσβασης βάση δεδομένων
και τα ονόματα των χρηστών ή άλλα τέτοια διαπιστευτήρια,
αυτό δεν είναι καθόλου καλό σχεδιασμό.
Πολύ καλύτερα είναι μόνο να θέσει
στο δημόσιο κατάλογο τι έχει απολύτως
να είναι προσβάσιμες από το χρήστη, και ό, τι άλλο
ότι είστε συμπεριλαμβανομένων όπως βοηθοί dot php,
δεν υπάρχει κανένας λόγος ότι θα πρέπει να είναι προσβάσιμο μέσω web μια
browser με ένα url.
Θα μπορούσε να είναι εντελώς αβλαβές αν ο χρήστης θέλει να δει ίσως
ο οποίος ζευγάρια, αλλά είναι ακριβώς η αρχή του,
και Θεός φυλάξοι το κάνει πραγματικότητα έχουν ένα όνομα χρήστη ή τον κωδικό πρόσβασης?
δεν θέλετε το χρήστης κατά λάθος
ή σκόπιμα να μπορούν να έχουν πρόσβαση.
Έτσι, δεν είμαστε αρκετά σε μια τέλεια προσέγγιση εδώ,
αλλά παρατηρήσετε την ακόλουθη τώρα.
Στο δείκτη dot php, παρατηρούμε ότι Είμαι ακόμα απαιτούν βοηθοί,
αλλά το κάνω με τέτοιο τρόπο ότι είμαι το είδος της οργάνωσης όλων
από τα αρχεία που θα συμπεριληφθούν
σε έναν υποκατάλογο που ονομάζεται συμβατικώς περιλαμβάνει,
και, στη συνέχεια, καλώ για καθιστούν κεφαλίδα και το υποσέλιδο, όπως πριν.
Έτσι, το μόνο πράγμα Έχω κάνει είναι είδος
από την αναδιοργάνωση καταλόγους μου να είναι λίγο πιο πρωκτικό
σχετικά με τη δομή του αρχείου.
Αλλά αν εμείς τώρα πάμε να αυτό το πέμπτο παράδειγμα,
Παρατηρούμε ότι τώρα έχουν ένα τρίο των φακέλων,
και αυτό είναι ένα κομμάτι παραπλανητική αυτή τη στιγμή
γιατί για την απλότητα για χάρη της τάξης,
Έχω μόλις ρίξει τα πάντα
John στο Χάρβαρντ Δημόσιος Κατάλογος ακριβώς
ώστε να μπορούμε να πλοηγηθείτε μέσω ένα πρόγραμμα περιήγησης, αλλά ειδοποίηση -
αγνοήσει αυτό το μέρος για μια στιγμή,
το γεγονός ότι είμαι εκεί.
Σημειώστε ότι έχω τρεις υποκαταλόγους: δημόσια,
πρότυπα, και περιλαμβάνει.
Η ιδέα τώρα είναι ότι σε μια ρυθμιστεί σωστά web server I
θα πω ότι αυτό Apache δικτυακός τόπος έχει πρόσβαση το κοινό
αρχεία εδώ, και πουθενά αλλού.
Έτσι, τι αρχείο νομίζεις Πάω να δω μέσα
των δημόσιων αν πληκτρολογήσετε ls;
Τι υπάρχει τουλάχιστον ένα αρχείο αυτό είναι πιθανώς εκεί μέσα;
[Off Mic Comment]
Εντάξει php δείκτη τελεία, και τι το αρχείο δεν είναι προφανώς
εκεί μεταξύ άλλων;
Όπως βοηθοί dot php, header dot php, footer dot php?
όλα τα κλάσματα, όλη τη λειτουργικότητα
ότι δεν χρειάζεστε πραγματικά να είναι προσβάσιμη στο κοινό,
πρέπει να είναι χρησιμοποιήσιμα από τα αρχεία
που είναι προσβάσιμες από το κοινό, αλλά και οι ίδιοι,
κανένας χρήστης δεν χρειάζεται να δείτε ή να quire μια διεύθυνση URL για τους βοηθούς dot php.
Σημειώστε ότι, αν αντί να πάω
σε Περιλαμβάνει υπάρχει βοηθοί dot php,
και αν πάω σε πρότυπα,
υπάρχει footer και header dot php.
Ειλικρινά, θα μπορούσα να είχα βάλει τους στον ίδιο κατάλογο,
αλλά εγώ προσπαθώ να είναι ακόμη περισσότερα πρωκτικό σχετικά με τη διατήρηση των αρχείων
που είναι ακριβώς το είδος του στατικά πρότυπα διαφορετικά
από λειτουργικές αρχεία όπως βοηθοί dot php,
και είμαι μόνο ακολουθώντας κάποιες αρκετά κοινές συμβάσεις
καλώντας τους καταλόγους περιλαμβάνει και τα πρότυπα.
Έτσι, το μόνο πράγμα που άλλαξε τότε είναι και πάλι η διαδρομή.
Αν πάμε εδώ παρατηρήσετε ότι έχω τώρα μόνο
να περιλαμβάνει μια σχετική κατάλογο,
dot dot κάθετος περιλαμβάνει βοηθοί dot php,
ή μπορώ να είμαι λίγο πιο ορθή και πραγματικά να κάνουμε κάτι
όπως αυτό, php και πολλά
γλώσσες έχουν αυτά τα ειδικά σύμβολα
που αντιπροσωπεύουν το κατάλογο τρέχουσα αρχείου,
έτσι υπογραμμίζουν υπογράμμισης dir υπογραμμίζουν υπογράμμισης αντιπροσωπεύει
ανεξάρτητα από τον κατάλογο Είναι αυτού του αρχείου,
και έτσι αν απλά ενώσετε με τον φορέα εκμετάλλευσης τελεία, ότι,
ότι θα επιτευχθεί το ίδιο αποτέλεσμα,
και τείνει να είναι λίγο πιο ισχυρή, επειδή μπορείτε να πάρετε
σε καταστάσεις με σχετική κατάλογοι ήταν απλά λέγοντας dot
ή dot dot μπορεί πραγματικά να σας φέρει σε λάθος μέρος,
έτσι αυτό τείνει να είναι λίγο πιο ισχυρή.
Εντάξει, έτσι τι όμως παραμένει;
Τι κάνετε εσείς ακόμα δεν αρέσει γι 'αυτό;
Τι θα μπορούσε να βελτιωθεί και σχολίασε νωρίτερα νομίζω
ότι υπάρχει ακόμα κάποια θέματα;
[Off Mic Comment]
Δεξιά, σίγουρα δεν έχουμε να αρχίσετε να γράφετε όπως τοποθεσίες
που μοιάζει με αυτό, έτσι δεν είναι;
Αυτό δεν αισθάνεται όλα αυτά πολύ καλύτερα,
υπάρχει ακόμα αντιγραφή επικόλληση.
Εξακολουθώ να έχω την απαιτούν γραμμή στο πάνω μέρος.
Εξακολουθώ να έχω καταστήσει κεφαλίδα καθιστούν υποσέλιδο.
Υπάρχουν πολλές επικαλύψεις.
Ναι;
[Off Mic Comment]
Ναι, ακριβώς, έτσι έχουμε λάβει μια βήμα προς το είδος της διάσπασης
μέχρι το "c" από το "ν", έτσι MVC είναι Model View Controller?
ελεγκτής είναι το είδος της εγκεφάλους της αίτησης.
Μοντέλο τείνει να είναι τα δεδομένα ή κάποιο κοινόχρηστο λειτουργικότητα,
και προβολή τείνει να είναι η αισθητική, το πρότυπο,
έτσι έχουμε κάνει ένα βήμα προς την κατεύθυνση διαχωρίζοντας το "c" από το "ν"
γιατί τώρα τουλάχιστον να έχουν καταλόγου αυτού του προτύπου,
αλλά ακόμη και εκεί που ουσιαστικά έχουν έναν ελεγκτή ανά αρχείο.
Δεν φαίνεται σαν να υπάρχει πολύ λογική συμβαίνει εδώ,
αλλά δείκτης dot php είναι αποτελεσματικά έναν ελεγκτή.
Όταν επισκέπτεστε μια διεύθυνση URL και λήγει στο δείκτη dot php,
όλα τη λογική που υλοποιεί η σελίδα είναι σωστό
σε php δείκτη dot, και ίδια για διαλέξεις dot php.
Το ίδιο για την εβδομάδα μηδέν php dot.
Έτσι, έχουμε το είδος της Strone μας λογική σε όλη τη χώρα,
και αισθάνεται σαν αυτό δεν πρόκειται
να κλιμακώνονται πολύ καλά τη στιγμή που θα δεν έχουν τέσσερις, αλλά σαράντα σελίδες
αν κάθε σελίδα ξεκινά με με την αντιγραφή μια παλαιότερη έκδοση
του αρχείου και μόλις μικροαλλαγές κάποια
του περιεχομένου στο εσωτερικό του.
Έτσι, έχουμε λάβει μόνο ένα βήμα προς αυτήν την κατεύθυνση,
και ένα από τα εργαλεία θα εισαγάγει
την Τετάρτη είναι μια σχεδιαστής που ονομάζεται "Laravel"
και αυτό είναι πολύ δημοφιλές πλαίσιο php,
άλλων αυτές περιλαμβάνουν "Fuelphp."
Υπάρχει ένα παλαιότερο που ονομάζεται "Codeigniter."
Υπάρχει ένα που ονομάζεται "Cake".
Υπάρχει ένα που ονομάζεται "Symphony".
Εννοώ αν έχετε Google πλαισίων php,
υπάρχει μια αποτρόπαια τον αριθμό των πλαισίων, όπως
ότι οι άνθρωποι που υλοποιούνται.
Laravel είναι ένα από τα περισσότερο και ελθόντες?
Είναι μία από τις καθαρότερες αυτά, και θα βρείτε
ότι τελικά βοηθά μπορείτε να αποθηκεύσετε αρκετά
του χρόνου, ακόμη κι αν δεν υπάρχει ένα κομμάτι από μια καμπύλη μάθησης,
αλλά ότι θα καθοδηγήσει σας πάνω από την Τετάρτη.
Επιπλέον, θα εισαγάγει αυτό που ονομάζεται "ORM."
Σε αυτή την περίπτωση, θα χρησιμοποιήσουμε κάτι που έρχεται
με το παρόν πλαίσιο ονομάζεται Laravel.
Λέγεται "Ρήτορας» και αυτό είναι μόνο ένα στρώμα κώδικα
που σας επιτρέπει να, μεταξύ άλλων, τα πράγματα μιλούν σε βάσεις δεδομένων.
Και εδώ, επιτρέψτε μου να κλέψει ένα παράδειγμα, ότι είναι είτε πρόσφατη
ή μια ιστορική αναδρομή για κάποιοι από εσάς από 50.
Εάν έλαβε 50, και κάνατε "CS50 Οικονομικών,"
ίσως θυμάστε τα αρχεία που μπορείτε να γράψετε ή να ξαναέγραψε που φαίνονται
όπως αυτό, αυτό ήταν login dot php, και εκείνη την εποχή,
ειδικά από τη στιγμή δεν περνούν πολύ χρόνο
στις βασικές αρχές php νωρίς,
αυτό μπορεί να έχει το ίδιο ήταν αρκετά δύσκολο,
και έτσι κάναμε, στην πραγματικότητα, προσπαθήσει να απλοποιήσει το σχεδιασμό.
Δεν είχαμε πραγματικά ξεχωριστό "Μ" από το "V" από "C" όλα αυτά πολύ
για τα προβλήματα που "Επτά CS50 Οικονομικών,"
αλλά παρατηρήσετε το ένα πράγμα ότι θα πρέπει να ξεκινήσει ελπίζουμε
να τρίβετε σύντομα το λάθος τρόπο, είναι κάτι σαν αυτό.
Θέλω να πω, δεν ήταν μόνο αυτό συνδεθείτε dot php έναν ελεγκτή.
Ήταν, επίσης, μιλώντας άμεσα
σε μια βάση δεδομένων ειδικά χρησιμοποιώντας συνέχεια, το οποίο δεν πρόκειται
να κλιμακώνονται πολύ καλά, όταν αρχίσετε να εργάζεστε με ένα
ή δύο ή τρεις συνεργάτες.
Για παράδειγμα, εάν μία από τις οι εταίροι είναι υπεύθυνοι
για τη δημιουργία σας πίνακες της βάσης δεδομένων και την προσεχή
με δείκτες σας και υπολογίζοντας
ποιο είναι το κλειδί πρέπει να είναι η πρωτεύοντα κλειδιά, τα ξένα κλειδιά,
και όλα αυτά, τη λήψη απόφασης για τα ονόματα τραπέζι και όλα αυτά.
Τώρα μπορείτε το άλλο πρόσωπο η ομάδα πρέπει να γνωρίζουν όλοι
από τις αποφάσεις του σχεδιασμού αυτός ή που έχει κάνει, και θα πρέπει τώρα
στο σκληρό κώδικα οι αποφάσεις στο αρχείο σας, οπότε τώρα
ή αυτή είναι αρκετά πολύ περιορισμένη
ποτέ να αλλάξει και πάλι αυτά τα ονόματα πίνακα.
Ποτέ ξανά για να αλλάξετε αυτές κατατεθεί ονόματα
χωρίς να σας ενημερώσουν.
Επιπλέον, δεν μπορείτε πραγματικά να εύκολα να εργαστούν στο ίδιο αρχείο
χωρίς σύγκρουση με το άλλο, αν
ή αυτή είναι συνεχώς αλλαγή ονομάτων,
και έχετε το παλιό εκδόσεις και ούτω καθεξής,
έτσι αυτό είναι απλά καλώντας πάρα πολλά πονοκεφάλους.
Επιπλέον, όπως θα δείτε πριν από καιρό,
ακόμα κι αν δεν χρειάζεστε
να κάνει ιδιαίτερα σύνθετα ερωτήματα εδώ,
τη στιγμή που θα αρχίσει να έχει πολλαπλές πίνακες, δύο πίνακες, τρία, πέντε,
δέκα πίνακες σε μια MySql ή γενικά μια σχεσιακή βάση δεδομένων,
θα πρέπει να ενταχθούν αυτά τα τραπέζια συχνά, αν γνωρίζει, και έχετε
να συνδυάζουν δεδομένα από το ένα με το άλλο,
και ειλικρινά ερωτήματα sequel σας αρχίζουν να παίρνουν πλέον, και πλέον,
και περισσότερο, και πιο περίπλοκη, και μόλις αρχίζει
για να πάρετε μια πολύ πιο εύκολο να κάνουν λάθη
και πολύ πιο δύσκολο να πάρει τα πράγματα δεξιά.
Και έτσι όπως τα εργαλεία Εύγλωττη και ORM πρόκειται
για να μας βοηθήσει να διαμορφώσει τα δεδομένα μας και είναι επίσης αποτελεσματικά θα
για τη δημιουργία του κώδικα που έχουμε πρέπει να αρχίσουν να διερευνούν τις βάσεις δεδομένων
σε πιο εκλεπτυσμένους τρόπους.
Έτσι, εάν έχετε ένα πρωτεύον κλειδί εδώ και ένα ξένο κλειδί
εδώ, το μόνο που χρειάζεται να κάνετε είναι να διδάξει ότι ORM,
Αντικείμενο συσχέτιση Mapper, ό, τι η σχέση αυτή είναι
και θα καταλάβω τι ερωτήματα για να εκτελέσει για εσάς.
Και μόνο σε σπάνιες περιπτώσεις χρειάζεστε
να γράψει κατ 'ανάγκην sequel κωδικό σας.
Αν θέλετε πραγματικά να πρόστιμο κάτι μελωδία,
αλλά για το μεγαλύτερο μέρος, μπορείτε να μόλις ξεκινήσει τη θεραπεία οντότητες
στις βάσεις δεδομένων σας, όπως ισχύει αντικείμενα και όχι μόνο αυτές οι επίπεδες σειρές
ότι με κάποιο τρόπο πρέπει να ανακατασκευή και de εξομαλύνει.