1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Semajno 8, daŭrigis] 2 00:00:02,000 --> 00:00:04,000 [Davido J. Malan] [Universitato Harvard] 3 00:00:04,000 --> 00:00:08,000 [Jen CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:13,000 >> Ĉi tiu estas CS50, do ĉi tiu estas la fino de Semajno 8 tie. 5 00:00:13,000 --> 00:00:16,000 Ni kompreneble havis iom de uragano komence de ĉi tiu semajno, 6 00:00:16,000 --> 00:00:19,000 tial nun estas vere nur vi kaj mi en ĉi tiu prelego halo, 7 00:00:19,000 --> 00:00:22,000 sed hodiaŭ ni daŭrigos nian konversacion pri PHP 8 00:00:22,000 --> 00:00:25,000 kaj pri ttt programado pli ĝenerale, kaj ankaŭ ni enkondukos la ideo 9 00:00:25,000 --> 00:00:29,000 de datumbazoj, precipe unu nomita MySQL, kio estas sufiĉe populara tiuj tagoj, 10 00:00:29,000 --> 00:00:34,000 en granda parto pro lia escalabilidad tiel kiel ĉar lia esti libera kaj malfermita kodo. 11 00:00:34,000 --> 00:00:37,000 >> Sed unue, rigardu, kie ni cxesis lasta fojo. 12 00:00:37,000 --> 00:00:40,000 Memori, ke ni rigardas la pluraj Frosh IMS ekzemploj, 13 00:00:40,000 --> 00:00:44,000 kaj ĉi tiu estis la malbelega formo kiun mi eliris kun iuj 15 + jaroj 14 00:00:44,000 --> 00:00:49,000 por havi studentoj sur kampuso registriĝi por freshman intramural sportoj 15 00:00:49,000 --> 00:00:52,000 sen efektive devi trek plu trans la korton al Wigglesworth 16 00:00:52,000 --> 00:00:56,000 gliti fizika peco de papero sub iuj Proctor la pordo. 17 00:00:56,000 --> 00:00:59,000 Anstataŭe ni kopiis cxion interrete, sed fari tion ni bezonas por fari uzon 18 00:00:59,000 --> 00:01:03,000 de kelka teknologioj, do, ni bezonis HTML, hiperteksta markado lingvo, 19 00:01:03,000 --> 00:01:07,000 kiu denove estas ĉi markado lingvo per kiu vi faras retpaĝojn strukture. 20 00:01:07,000 --> 00:01:10,000 >> Uzanta iom de CSS tiuj tagoj, akvofalo stilo littukoj, 21 00:01:10,000 --> 00:01:16,000 per kiu ni uzas stylizations de la retpaĝo uzante malmulte malsama sintakso, 22 00:01:16,000 --> 00:01:19,000 dum la HTML-ĉiu estis proksimume la strukturo largxo. 23 00:01:19,000 --> 00:01:21,000 Ni ankaŭ bezonas enkonduki retejo programlingvo. 24 00:01:21,000 --> 00:01:25,000 En ĉi tiu kazo, ni uzos PHP, kaj PHP tuj permesos nin 25 00:01:25,000 --> 00:01:28,000 al dinamike eligo enhavo tiel kiel fari programita aĵojn kiel 26 00:01:28,000 --> 00:01:33,000 sendi retpoŝtojn, kiel okazis en la noto ni forlasis lasta semajno. 27 00:01:33,000 --> 00:01:35,000 >> Memoru ke la kodo por tio estis en 2 partoj. 28 00:01:35,000 --> 00:01:38,000 Unu, ni havis froshims3.php, 29 00:01:38,000 --> 00:01:42,000 kaj tio estis plejparte markado kun HTML formo ene de ĝi, 30 00:01:42,000 --> 00:01:45,000 ete de CSS tien en la stilo atributoj 31 00:01:45,000 --> 00:01:48,000 por ke la formo mem estus centrita sur la paĝo, sed preter tio 32 00:01:48,000 --> 00:01:51,000 ni havis iuj reprezentanto formo enigoj, teksto kampo, checkbox, 33 00:01:51,000 --> 00:01:55,000 iuj radio-butonoj, unuaranga menuo, kaj submeto-butonon. 34 00:01:55,000 --> 00:02:01,000 Kaj tra ĉi tiu formo, ni donita al dosiero kiu ŝajne nomas register3.php, 35 00:02:01,000 --> 00:02:04,000 kiuj sin rigardis iom io tiamaniere. 36 00:02:04,000 --> 00:02:08,000 Nun, la plejparto de la kodo en register3.php, revokon, temis retpoŝto. 37 00:02:08,000 --> 00:02:11,000 Ĝi faris iomete da kontrolada de la formo kiu estis afiŝita certigi 38 00:02:11,000 --> 00:02:14,000 ke la kampoj estis efektive provizis kiuj atendis. 39 00:02:14,000 --> 00:02:18,000 Tiam ni nomas iujn PHP funkcioj uzante iomete nova sintakso, 40 00:02:18,000 --> 00:02:20,000 kvankam ĝi estas pruntita de C. 41 00:02:20,000 --> 00:02:24,000 >> Ĉi sago operatoro ni permesas uzi iun nomita objekteman programadon. 42 00:02:24,000 --> 00:02:27,000 Ni ne iros en tiun de neniu detalo tie, sed scias nun 43 00:02:27,000 --> 00:02:31,000 ĝi estas maniero de havi funkcioj asociita kun celoj, 44 00:02:31,000 --> 00:02:34,000 kiu estas speciala tipo de strukturo, kiel ni vidis en C. 45 00:02:34,000 --> 00:02:37,000 Sed nuntempe, nur prenu sur fidon ke tiu estas la ĝusta sintaksa uzi 46 00:02:37,000 --> 00:02:41,000 uzinte biblioteko kiel ĉi PHPMailer biblioteko. 47 00:02:41,000 --> 00:02:44,000 Kaj poste por la fino de ĉi tiu dosiero ni dinamike generas retmesaĝon 48 00:02:44,000 --> 00:02:47,000 ke got sendis al mia jharvard@cs50.net konton 49 00:02:47,000 --> 00:02:50,000 de miaj jharvard@cs50.net konton, 50 00:02:50,000 --> 00:02:54,000 kaj ni informis la uzanto laŭe ke ili estis registritaj por tiu sporto. 51 00:02:54,000 --> 00:02:57,000 Ke estas preskaux kion la Frosh IMS retejo faris ĉiujn tiujn jarojn 52 00:02:57,000 --> 00:03:00,000 kiam mi implementado ĝin, koncedis, en malsama lingvo, 53 00:03:00,000 --> 00:03:02,000 sed montras al vi, eble la povon, ke vi havas 54 00:03:02,000 --> 00:03:05,000 nun ke vi povas esprimi vin mem ne nur programmatically 55 00:03:05,000 --> 00:03:08,000 je malalta nivelo en lingvo kiel C sed en multe pli alta nivelo 56 00:03:08,000 --> 00:03:11,000 kun tiuj tre reala mondo aplikoj kiel retpoŝton al reale solvi 57 00:03:11,000 --> 00:03:13,000 iuj reala mondo problemojn. 58 00:03:13,000 --> 00:03:16,000 >> Nun, kompreneble, kvankam mi uzas tiun skripton por generi iujn 59 00:03:16,000 --> 00:03:20,000 retmesaĝoj dinamike el jharvard@cs50.net, kiu estas ja konton 60 00:03:20,000 --> 00:03:23,000 ke mi havas aliron al, do esti sufiĉe zorgema sendi 61 00:03:23,000 --> 00:03:26,000 sendi nur de rakontoj, kiuj estas efektive viajn proprajn, 62 00:03:26,000 --> 00:03:30,000 ke aĵoj vi en iom de varma akvo en la vivo. 63 00:03:30,000 --> 00:03:35,000 Kun kiu diris, ni nun transiro al solvanta malsamaj problemo en aro, 64 00:03:35,000 --> 00:03:37,000 tiu de konservante ŝtatoj. 65 00:03:37,000 --> 00:03:39,000 Nun, kion signifas ĉi reale signifas? 66 00:03:39,000 --> 00:03:42,000 HTTP, tio hiperteksto transigo protokolo, 67 00:03:42,000 --> 00:03:45,000 estas fakte apátrida protokolo, kaj kion tiu signifas, ke 68 00:03:45,000 --> 00:03:48,000 kiam vi elsxiros iu kiel Google.com kaj poste batis eniri 69 00:03:48,000 --> 00:03:51,000 kutime via retumilo havas ian spinning ikono kiu tiam 70 00:03:51,000 --> 00:03:54,000 rezultoj en iu retpaĝo esti malŝarĝitaj, 71 00:03:54,000 --> 00:03:57,000 kaj poste tiu malgranda ikono detenas ŝpinita, kaj kiu efektive sugestas 72 00:03:57,000 --> 00:04:02,000 ke HTTP kompletigis ian rilaton al la servilo kaj tio estas ĝi. 73 00:04:02,000 --> 00:04:05,000 HTTP estas apátrida en la senco ke ĝi ne subtenas 74 00:04:05,000 --> 00:04:08,000 konstanta konektiĝi al la servilo en la sama maniero Skype faras 75 00:04:08,000 --> 00:04:11,000 aŭ Gchat faras ĉar kun HTTP 76 00:04:11,000 --> 00:04:15,000 la supozo estas, ke iam vi prenis retpaĝo jen ĝi. 77 00:04:15,000 --> 00:04:18,000 >> Nun, en realo tiuj tagoj en lokoj kiel Facebook kaj Google Maps 78 00:04:18,000 --> 00:04:21,000 kaj Twitter kaj similaj ekzistas multe pli dinamismo per 79 00:04:21,000 --> 00:04:25,000 eĉ post ke ikono ĉesu ŝpini vi povas fakte ricevas pli ĝisdatigojn 80 00:04:25,000 --> 00:04:29,000 de la servilo, pli tweets, pli stato ĝisdatigojn en Facebook kaj similaj. 81 00:04:29,000 --> 00:04:33,000 Sed eĉ tio estas uzanta teknika kiu ni raportas en unu-du semajnoj 82 00:04:33,000 --> 00:04:36,000 konata kiel Ajax uzante lingvon nomata JavaScript, 83 00:04:36,000 --> 00:04:38,000 sed fine de la tago, HTTP estas ankoraŭ apátrida. 84 00:04:38,000 --> 00:04:42,000 Kaj tamen, se vi volas iel memoras aferojn pri uzanto 85 00:04:42,000 --> 00:04:44,000 eĉ post kiam ili jam malkonektita de via servilo 86 00:04:44,000 --> 00:04:47,000 PHP faras pagi al vi per fari tiun 87 00:04:47,000 --> 00:04:52,000 ĉar, kiel ni vidis lasta fojo, PHP havas plurajn superglobals, 88 00:04:52,000 --> 00:04:55,000 kaj superglobal estas, denove, speciala tutmonda variablo 89 00:04:55,000 --> 00:04:59,000 ke tio enmanigis al vi per la TTT-servilo kaj per PHP mem. 90 00:04:59,000 --> 00:05:02,000 >> Vi ne devas fari ion por meti valorojn en ĝi, 91 00:05:02,000 --> 00:05:05,000 kaj inter la superglobals ni vidis ĝis nun estas akiri kaj afiŝi, 92 00:05:05,000 --> 00:05:08,000 kio estas kie formo kampoj estas metitaj aŭtomate por vi, 93 00:05:08,000 --> 00:05:11,000 tiel kiel paro de aliaj, kiuj ne vidis ankoraŭ. 94 00:05:11,000 --> 00:05:17,000 Ene de $ _server kelkaj specialaj variabloj ligitaj al la servilo mem. 95 00:05:17,000 --> 00:05:22,000 Kio estas la IP-adreso, kion protokolo, HTTP aŭ HTTPS vi uzas, 96 00:05:22,000 --> 00:05:25,000 kio peto metodo vi uzas kaj similaj, do tie estas kelkaj interesaj, 97 00:05:25,000 --> 00:05:29,000 suka detaloj pri la servilo, kaj fakte, la uzanto en tie ankaŭ. 98 00:05:29,000 --> 00:05:33,000 Estas $ _cookie, kiu estas kie tion nomis kuketojn estas stokitaj. 99 00:05:33,000 --> 00:05:36,000 Ni ne perdi tempon en kuketojn sin hodiaŭ, 100 00:05:36,000 --> 00:05:40,000 sed sciu nun ke kuketo estas nur malgranda peco de informo 101 00:05:40,000 --> 00:05:43,000 ke TTT-servilo povas planti sur retumilo 102 00:05:43,000 --> 00:05:46,000 kaj laŭvice ĝia RAM aŭ lia komputilo malmola disko 103 00:05:46,000 --> 00:05:49,000 por konservi informojn pri la uzanto, ekzemple, lia nomo de uzanto 104 00:05:49,000 --> 00:05:52,000 por ke ili ne devas tajpi ĝin ĉiufoje ensaluti aŭ iu 105 00:05:52,000 --> 00:05:55,000 unika cifero aŭ identigilo por ke uzanto 106 00:05:55,000 --> 00:05:58,000 por ke vi ne devas Pester ilin kun la sama specoj de demandoj pri 107 00:05:58,000 --> 00:06:00,000 preferojn en la estonteco, sed la plimulto de intereso 108 00:06:00,000 --> 00:06:02,000 nun estas $ _session. 109 00:06:02,000 --> 00:06:07,000 >> Ĉi superglobal, kiu, kiel la aliaj, estas transdonita por vi auxtomate per PHP 110 00:06:07,000 --> 00:06:10,000 kiam vi skribas PHP-bazita retejoj 111 00:06:10,000 --> 00:06:13,000 povas stoki ajn vi volas, kordoj, entjeroj, 112 00:06:13,000 --> 00:06:16,000 flosanta punktoj, valoroj, tabeloj, celoj, 113 00:06:16,000 --> 00:06:20,000 vere ion ke vi volas, kaj permesas vin por stoki ĝin en tia maniero 114 00:06:20,000 --> 00:06:23,000 ke eĉ se la uzanto vizitas vin nun kaj poste 115 00:06:23,000 --> 00:06:26,000 revenas unu minuto de nun aŭ 5 minutoj de nun ĉar 116 00:06:26,000 --> 00:06:28,000 ili prenu sian tempon antaux klaki iun alian ligilon 117 00:06:28,000 --> 00:06:32,000 PHP certigos, ke kion ajn vi metis en tiu kunsido superglobal 118 00:06:32,000 --> 00:06:37,000 minuto aŭ 5 minutoj ankoraŭ estos tie kiam la uzanto revenas. 119 00:06:37,000 --> 00:06:40,000 Kaj sub la kapuĉo ĉi superglobal estas realigita per vojo de 120 00:06:40,000 --> 00:06:44,000 tion nomis kuketojn, sed por nun, estas nur abstraktaĵo 121 00:06:44,000 --> 00:06:47,000 per tio ia la programita ekvivalento de komercaj ĉaro. 122 00:06:47,000 --> 00:06:50,000 Kion ajn vi, la programisto, metu en tiu 123 00:06:50,000 --> 00:06:53,000 superglobal asocieca tabelo estos tie iu nombro de minutoj poste 124 00:06:53,000 --> 00:06:59,000 ĝis vi forigi ĝin aŭ ĝis la uzanto fermas sian retumilo aro. 125 00:06:59,000 --> 00:07:02,000 >> Ni rigardu ekzemplon de kiel tion oni efektive uzas. 126 00:07:02,000 --> 00:07:07,000 En counter.php inter hodiaŭa pecoj de kodo 127 00:07:07,000 --> 00:07:09,000 ni havas la sekvan linion. 128 00:07:09,000 --> 00:07:13,000 Je la komenco de ĉi tiu dosiero ni havas aron da blua komentoj, kiuj estas seninteresa por nun. 129 00:07:13,000 --> 00:07:15,000 Sed en linio 13 ni havas novan linion, 130 00:07:15,000 --> 00:07:18,000 session_start, kaj ke fakte faras precize kion ĝi diras. 131 00:07:18,000 --> 00:07:20,000 Ĝi komenciĝas kunsidoj. 132 00:07:20,000 --> 00:07:25,000 Ĝi ebligas vin uzi tiun grandan superglobal $ _session, kaj tio estas tiel simpla kiel tiu. 133 00:07:25,000 --> 00:07:30,000 Nun, se ni procedi por rigardi linio 16, ni provu kompreni pri kio ĉi tiu retpaĝo tuj faros. 134 00:07:30,000 --> 00:07:35,000 If (isset ($ _SESSION ["nombrilo"]) tiam iru antaŭen 135 00:07:35,000 --> 00:07:39,000 kaj vendejon en la vendotablo variablo, minuskla vendotablo, 136 00:07:39,000 --> 00:07:42,000 $ _SESSION ["Nombrilo"]. 137 00:07:42,000 --> 00:07:45,000 Ĉi tio ŝajnas esti deklarante lokan variablon nomis nombrilo 138 00:07:45,000 --> 00:07:48,000 ene de kio ĝi estas meti kopion de kio ajn ene de la superglobal 139 00:07:48,000 --> 00:07:52,000 nomita kunsido je la loko "nombrilo". 140 00:07:52,000 --> 00:07:56,000 Alian, ŝajne, tiu malgranda loka variablo vendotablo, estas inicializado al 0. 141 00:07:56,000 --> 00:08:01,000 >> Sed tiam kelkaj linioj poste en 26 avertas ke la kunsido de kopio de vendotablo, 142 00:08:01,000 --> 00:08:06,000 lia ŝlosilo, havas novan valoron atribuita kiu estas lia aktuala valoro plus 1. 143 00:08:06,000 --> 00:08:09,000 Unuvorte, tiu dosiero ŝajnas esti ĝisdatigo 144 00:08:09,000 --> 00:08:13,000 kontraŭekzemplo ke tio stokita ene de la kunsido superglobal 145 00:08:13,000 --> 00:08:16,000 per pliigante ĝin je 1, sed unue retenas kopion de la antaŭa valoro 146 00:08:16,000 --> 00:08:20,000 per stoki ĝin en loka variablo nomita $ vendotablo, 147 00:08:20,000 --> 00:08:22,000 kaj tiam ĉi tie ni vidu kion restas. 148 00:08:22,000 --> 00:08:24,000 Ĝi rezultas estas preskaux nur HTML. 149 00:08:24,000 --> 00:08:29,000 Ĉe la malsupro de tiu ĉi paĝo ni vidas en linio 37, kiun mi vizitis ĉi tiun retejon 150 00:08:29,000 --> 00:08:33,000 nombrilo nombro de fojoj, do tie estas kelkaj interesaj trajtoj tie. 151 00:08:33,000 --> 00:08:36,000 , Ĉi tiu estas klare variablo, sed tio ne suficxas por simple meti 152 00:08:36,000 --> 00:08:39,000 $ Nombrilo en la korpo de via HTML ĉar kompreneble 153 00:08:39,000 --> 00:08:43,000 se estas nur tie inter viaj HTML PHP tuj supozi ke estas nur HTML. 154 00:08:43,000 --> 00:08:48,000 Vi laŭvorte volas $ nombrilo esti presita sur la ekrano. 155 00:08:48,000 --> 00:08:51,000 >> Sed anstataŭ per delasante en PHP modo 156 00:08:51,000 --> 00:08:55,000 kun tiu peco de sintakso povas dinamike enmeti valoron tie 157 00:08:55,000 --> 00:08:58,000 tre simila en spirito al kion ni faris lastan fojon kun 158 00:08:58,000 --> 00:09:00,000 enmeto valoroj en ĉenoj. 159 00:09:00,000 --> 00:09:04,000 Fakte, ĉi tiu estas nur stenografio skribmaniero por diri ion kiel tiu laŭvorte, 160 00:09:04,000 --> 00:09:12,000 print ($ counter) aŭ eĉ iu kiel printf (% s, vendotablo), 161 00:09:12,000 --> 00:09:14,000 aŭ eĉ, kiel vi eble vidis en linio aŭ en lernolibroj, 162 00:09:14,000 --> 00:09:17,000 ekzistas funkcio en PHP nomis eĥo 163 00:09:17,000 --> 00:09:20,000 kiuj faras la samon, kaj ĉiuj el tiuj estas nur plu winded manieroj 164 00:09:20,000 --> 00:09:25,000 diri 00:09:28,000 En ĉi tiu kazo ne bezonas meti 166 00:09:28,000 --> 00:09:30,000 la vorto PHP post la demandosigno. 167 00:09:30,000 --> 00:09:34,000 Ĉi tiu estas stenografio skribmaniero por, denove, kion ni ĵus vidis antaŭ momento 168 00:09:34,000 --> 00:09:37,000 kiu estas eĥantaj iu valoro. 169 00:09:37,000 --> 00:09:39,000 >> Ni vidu kion la fina rezulto de ĉi tiu reale estas. 170 00:09:39,000 --> 00:09:43,000 Mi volas transiri en niajn counter.php dosiero, 171 00:09:43,000 --> 00:09:47,000 kaj ni vidos, ke David simple eraris per ludante kun la kodo tie. 172 00:09:47,000 --> 00:09:50,000 Ni iru riparas ajn li ŝraŭbita supren, 173 00:09:50,000 --> 00:09:54,000 kaj la eraro ŝajnu esti tie, for, sur linio 37. 174 00:09:54,000 --> 00:09:59,000 Laŭ la supro de tiu ĉi paĝo mi vizitis ĉi tiun retejon 0 fojojn. 175 00:09:59,000 --> 00:10:02,000 Nu, ni iru antaŭen nun, kaj sur la supro de la retumilo alklaku la 176 00:10:02,000 --> 00:10:05,000 reŝargi ikono, kaj mi alklakos reŝargi, 177 00:10:05,000 --> 00:10:12,000 kaj nun mi vizitis la retejon 1 fojo, 2, 3, 4, 5, 6, 7, 8. 178 00:10:12,000 --> 00:10:16,000 Kaj efektive, se ni rigardas la fonto de tiu ĉi paĝo la efektiva fontkodon ŝanĝas, 179 00:10:16,000 --> 00:10:19,000 kaj rimarki la kompleta manko de PHP, kaj tio estas ĉar 180 00:10:19,000 --> 00:10:23,000 PHP kodo estas taksita aŭ interpretitaj servilo flanko, 181 00:10:23,000 --> 00:10:27,000 kaj por ke signifas, ke la eligo de la PHP skripto estas kio laste sendita al la retumilo, 182 00:10:27,000 --> 00:10:31,000 kiu en ĉi tiu kazo estas iom krudan HTML kaj iuj krudaj tekston. 183 00:10:31,000 --> 00:10:33,000 Kio okazas ĉi tie? 184 00:10:33,000 --> 00:10:37,000 >> Nu, kun relative malmultaj linioj de kodo mi povas stoki 185 00:10:37,000 --> 00:10:40,000 persiste kun la paso de pluraj sekundoj, aŭ se ni atendis sufiĉe longe, 186 00:10:40,000 --> 00:10:44,000 minutoj, eĉ horoj, iu valoro en maniero kiu faras HTTP 187 00:10:44,000 --> 00:10:47,000 ŝajnas stateful kvazaŭ ni konservis 188 00:10:47,000 --> 00:10:51,000 Tiurilate al la servilo, kaj ĝi estas simple memori kion mi rakontis ĝin lasta fojo, 189 00:10:51,000 --> 00:10:55,000 sed fakte ekzistas tuta aro da komplekseco okazas sub la kapuĉo 190 00:10:55,000 --> 00:10:59,000 engaĝante kuketojn ke tio ebligas PHP doni al mi ĉi iluzio 191 00:10:59,000 --> 00:11:02,000 de tiu komerca ĉaro-kiel karakterizaĵo. 192 00:11:02,000 --> 00:11:05,000 Por la momento, bagatela ekzemplo kie ni ĵus stokante entjero, 193 00:11:05,000 --> 00:11:08,000 sed ke trajto revenos al esti de granda valoro 194 00:11:08,000 --> 00:11:10,000 kiam ni komencis paroli pri pli kompleksaj projektoj, 195 00:11:10,000 --> 00:11:12,000 inter ili problemo starigis 7. 196 00:11:12,000 --> 00:11:16,000 Tiu estas via tre lasta problemo starigis en CS50. 197 00:11:16,000 --> 00:11:19,000 Mi scias, estas tiel malĝoja, sed kion vi trovos estas, ke ni tuj konkludi 198 00:11:19,000 --> 00:11:22,000 ĉi tiu parto de la semestro de reale transiro 199 00:11:22,000 --> 00:11:25,000 el la kunteksto de C certe al la kunteksto de PHP 200 00:11:25,000 --> 00:11:27,000 sed dum uzante iu de la sama fundamentojn 201 00:11:27,000 --> 00:11:29,000 ni jam parolis pri por iu tempo. 202 00:11:29,000 --> 00:11:33,000 >> La objektivo kun pset 7 estas por apliki CS50 Financoj, 203 00:11:33,000 --> 00:11:37,000 kio estas via propra versio de Yahoo Financoj aŭ Google Financoj 204 00:11:37,000 --> 00:11:40,000 aŭ eĉ Etrade.com per vi havas la kapablon 205 00:11:40,000 --> 00:11:43,000 serĉi stock prezoj por donita simboloj, sed eĉ pli ol tio 206 00:11:43,000 --> 00:11:48,000 vi havas la kapablon "aĉeti" kaj "vendi" akcioj 207 00:11:48,000 --> 00:11:51,000 kiuj komercis pri diversaj valoroj interŝanĝoj ĉar kiel ĉi hejmpaĝo 208 00:11:51,000 --> 00:11:55,000 tie sugestas, kiu estas vere la grado kiu ni komencis 209 00:11:55,000 --> 00:11:59,000 la problemo aro por vi, vi havas salutnomon formo ke tio petante uzantnomon kaj pasvorton. 210 00:11:59,000 --> 00:12:03,000 Ĝi havas submeto-butonon, sed poste, kiam ni devos eventuale vidi, 211 00:12:03,000 --> 00:12:06,000 estas nenio vere okazas sub la kapuĉo tamen ĉar ĝi 212 00:12:06,000 --> 00:12:09,000 restas por vi apliki la kapablon registri novajn uzantojn, 213 00:12:09,000 --> 00:12:12,000 la kapablo por aĉeti lignon, por vendi karcero; 214 00:12:12,000 --> 00:12:14,000 por fakte serĉi nuna stock prezoj. 215 00:12:14,000 --> 00:12:17,000 >> Kaj efektive, tiu estos kiel reala mondo kiel eble ĉar ni faris 216 00:12:17,000 --> 00:12:20,000 inkluzivas iom da kodo kiu permesos al vi kun sola funkcio 217 00:12:20,000 --> 00:12:25,000 por konsulti Yahoo Financoj, kiu mirinde faras disponebla libera datumoj 218 00:12:25,000 --> 00:12:31,000 por suprenrigardinte akcivaloroj bazita sur la stock simbolo aŭ paperbenda simbolo, 219 00:12:31,000 --> 00:12:34,000 kaj vi reiros la nuna stock prezo de la tago. 220 00:12:34,000 --> 00:12:37,000 La datumoj vi reale vidi en ĉi tiu aparta pset estos 221 00:12:37,000 --> 00:12:40,000 pri tiel reala mondo kiel ĝi povas alveni por ke vi efektive interconexión 222 00:12:40,000 --> 00:12:43,000 kun reala mondo akcioj, reala mondo prezoj, 223 00:12:43,000 --> 00:12:47,000 kaj ni vidos kiom da mono vi povas fari eble 224 00:12:47,000 --> 00:12:51,000 dum la venontaj kelkaj tagoj de ludi kun via propra problemo aro. 225 00:12:51,000 --> 00:12:55,000 >> Sed estu la unua starigis la scenejo por kiel desegni ion jen certe pli komplika 226 00:12:55,000 --> 00:12:59,000 ol counter.php, ke estas pli komplika ol la tuta Frosh IMS ekzemploj tiel malproksime, 227 00:12:59,000 --> 00:13:02,000 kaj ni provu enkonduki kelkajn paradigmoj tie kiuj permesas al ni 228 00:13:02,000 --> 00:13:06,000 tiel por pset 7 kaj eble por via fina projekto se vi faras ion retejo bazita 229 00:13:06,000 --> 00:13:11,000 teni vian kodo bone organizitaj, por gardi vin sana, 230 00:13:11,000 --> 00:13:15,000 kaj preni paŝo al kunlabori, cxu en CS50 la fina projekto 231 00:13:15,000 --> 00:13:18,000 aŭ preter se vi daŭrigas plani ion en la estonteco. 232 00:13:18,000 --> 00:13:21,000 Estas ĉi tiu ĝenerala dezajno paradigmo 233 00:13:21,000 --> 00:13:24,000 en komputiko kaj en programado pli ĝenerale 234 00:13:24,000 --> 00:13:27,000 konata kiel MVC, modelo view adaptilo, 235 00:13:27,000 --> 00:13:30,000 kaj ĉi tiu estas stulta akronimo kiu priskribas tre bona ideo, 236 00:13:30,000 --> 00:13:34,000 kiu estas la disiĝo de malsamaj aspektoj de programo, 237 00:13:34,000 --> 00:13:39,000 specife tenante apartajn la logiko aŭ la negoco logiko de afiŝinto 238 00:13:39,000 --> 00:13:42,000 por ke io kiu implikas aĵojn kiel 239 00:13:42,000 --> 00:13:45,000 nomante funkcioj kaj informpeti datumbazoj kaj similaj 240 00:13:45,000 --> 00:13:48,000 okazas ne estas inter viaj HTML 241 00:13:48,000 --> 00:13:51,000 sed prefere en apartan dosierojn, kaj ja, ekzistas ĉi tiu dosiero 242 00:13:51,000 --> 00:13:54,000 tipe, ke vi nomis la adaptilo 243 00:13:54,000 --> 00:13:56,000 ke vere la cerbon malantaŭ la operacio, kaj ni vidos ekzemplon 244 00:13:56,000 --> 00:13:58,000 de ĉi tio en nur momento. 245 00:13:58,000 --> 00:14:01,000 >> Jen modelo kiu estas programado kodo 246 00:14:01,000 --> 00:14:05,000 kiu faras la parolante al via datumbazoj, kiu raportas al Yahoo Financoj kaj similaj, 247 00:14:05,000 --> 00:14:08,000 kaj tiam tie estas la V en MVC, la opinioj, 248 00:14:08,000 --> 00:14:11,000 ĉiuj aĵoj ke tio rilataj al estetiko, la dosieroj kiuj reale enhavi 249 00:14:11,000 --> 00:14:14,000 vian HTML, eble via CSS kaj similaj. 250 00:14:14,000 --> 00:14:17,000 La ideo cxi tie, kiel tiu bildo sugestas, estas ke la adaptilo 251 00:14:17,000 --> 00:14:21,000 estas la dosiero, kiel ni baldaux vidos kaj kiel vi aparte vidas en pset 7, 252 00:14:21,000 --> 00:14:24,000 ke la mondo parolas al tra iliaj TTT-legiloj. 253 00:14:24,000 --> 00:14:27,000 Tio estas la dosiero kiun gets vizitis la publikan interreto, 254 00:14:27,000 --> 00:14:30,000 sed la adaptilo parolas al potenciale modelo, 255 00:14:30,000 --> 00:14:34,000 kiu estas unu aŭ pli aliaj dosieroj kiuj enhavas kodo rilataj datumoj, 256 00:14:34,000 --> 00:14:37,000 kodo rilataj al datumbazoj kaj similaj, kaj poste ĝi parolas al 257 00:14:37,000 --> 00:14:40,000 la controlador unu aŭ pli aliaj dosieroj konata kiel opinioj, 258 00:14:40,000 --> 00:14:43,000 kiuj estas la estetiko de retpaĝo, ŝablonojn de varoj, 259 00:14:43,000 --> 00:14:47,000 kiuj povus porti iun datumoj kiel enigo, sed fine de la tago 260 00:14:47,000 --> 00:14:50,000 la sola logiko ene de vido devus esti la desegnadon de tiu datumo, 261 00:14:50,000 --> 00:14:53,000 ripetanta super loop kaj reale kracxi iun 262 00:14:53,000 --> 00:14:56,000 HTML-bazita lego gxiaj aŭ eĉ iu kiel PDF. 263 00:14:56,000 --> 00:14:59,000 >> Kio estas agrable pri MVC estas ke vi povas havi malsamajn vidpunktojn 264 00:14:59,000 --> 00:15:02,000 surbaze de la tipo de aparato, bazita sur la tipo de dosiero formato ke vi efektive 265 00:15:02,000 --> 00:15:04,000 volas montri al la uzanto. 266 00:15:04,000 --> 00:15:10,000 Ni rigardu kelkajn iom post iom pli kompleksa kaj bone desegnita ekzemploj 267 00:15:10,000 --> 00:15:13,000 per startanta unue kun versio 0 tie. 268 00:15:13,000 --> 00:15:16,000 Lasu min kaj malfermu en nia MVC katalogo hodiaŭ 269 00:15:16,000 --> 00:15:21,000 dosiero nomata index.php en katalogo 0. 270 00:15:21,000 --> 00:15:26,000 Rimarku ĉi estas super simpla kaj tre underwhelming afiŝinto 271 00:15:26,000 --> 00:15:29,000 jen ia versio 0 de hejmpaĝo por CS50, 272 00:15:29,000 --> 00:15:32,000 kaj rimarki kiom ni havas ligon al Prelegoj, ni havas ligon al Syllabus, 273 00:15:32,000 --> 00:15:35,000 kaj se mi sekvas la ligilon al Prelegoj avertas ke la URL 274 00:15:35,000 --> 00:15:39,000 supren supro tuj ŝanĝi lectures.php. 275 00:15:39,000 --> 00:15:44,000 Se mi tiam sekvu la ligilon al Semajno 1 avertas ke la URL ŝanĝojn al week1.php. 276 00:15:44,000 --> 00:15:46,000 Ŝajnas ke sufiĉe simpla hierarkia strukturo tie. 277 00:15:46,000 --> 00:15:49,000 >> Ni prenu rapidan rigardon sub la kapuĉo, kiamaniere tiu estas metita ekstere, 278 00:15:49,000 --> 00:15:53,000 kaj vere, se mi rigardas index.php ĝi estas bela simpla. 279 00:15:53,000 --> 00:15:57,000 Fakte, kvankam mi nomis tion PHP-dosiero ne estas reala programado kodo. 280 00:15:57,000 --> 00:16:01,000 Jen komento kiun mi skribis tie en PHP ĝuste tiel la uzanto ne finas vidi ĝin. 281 00:16:01,000 --> 00:16:05,000 Kompreneble, kiel antaŭe, ion, kio estas en inter PHP etikedoj 282 00:16:05,000 --> 00:16:08,000 gets interpretita, eĉ se ĝi estas komento, kaj interpreti komenton 283 00:16:08,000 --> 00:16:11,000 signifas simple ĵeti ĝin for al la fino de la tago kaj ne reale 284 00:16:11,000 --> 00:16:15,000 sendu ĝin al la retumilo, tia ĉio ĉi tie estas nur estetiko. 285 00:16:15,000 --> 00:16:20,000 Se mi malfermas simile lectures.php ĉi tro estas nur malfacile kodita dosiero. 286 00:16:20,000 --> 00:16:23,000 Ĝi okazas al nomi ion. Php, 287 00:16:23,000 --> 00:16:27,000 sed vere estas justa. html, kaj week1.php, week2.php 288 00:16:27,000 --> 00:16:31,000 simile estas nur markado, do tie estas faskon da mankoj de ĉi dezajno. 289 00:16:31,000 --> 00:16:33,000 Unu, estas grandega kvanto de kopio / pasto. 290 00:16:33,000 --> 00:16:37,000 Kvankam la sola afero ke tio ŝanĝas inter tiuj dosieroj estas la ordigita listo, 291 00:16:37,000 --> 00:16:41,000 la li etikedoj, mi tamen havas doc tipo, HTML, kapo, 292 00:16:41,000 --> 00:16:44,000 titolo, proksime korpo, proksime HTML kaj pli 293 00:16:44,000 --> 00:16:47,000 en ĉiu unuopa dosiero, kiu signifas ke se mi iam volas restrukturi 294 00:16:47,000 --> 00:16:50,000 ĉi retpaĝon aŭ restylize ĝin mi devas iri kaj ŝanĝu 295 00:16:50,000 --> 00:16:54,000 cxiuj tiuj dosieroj permane aŭ kun iu amasa trovi kaj anstataŭigi. 296 00:16:54,000 --> 00:17:01,000 >> Ni prenu unu paŝon direkte al pli inteligenta, pli longa pensante dezajno en versio 1 tie 297 00:17:01,000 --> 00:17:04,000 per kiel por la legis mi, ke ni inkludis tiel ke vi povas ludi kune kun 298 00:17:04,000 --> 00:17:07,000 tiuj pli malrapida hejme avizo, ke ni havas ĉi tie 299 00:17:07,000 --> 00:17:10,000 resumo de la dosieroj en versio 1 de ĉi tiu retejo, 300 00:17:10,000 --> 00:17:13,000 kaj ŝajnas ke mi prenis gxin sur min al faktoro ekster 301 00:17:13,000 --> 00:17:17,000 iuj komunaj kodo, header.php kaj footer.php. 302 00:17:17,000 --> 00:17:20,000 Nu, ni rigardu kio estas ene de la unuaj el tiuj. 303 00:17:20,000 --> 00:17:23,000 Header.php aspektas familiaraj, 304 00:17:23,000 --> 00:17:26,000 sed rimarkas, kie does it get ekstermos? 305 00:17:26,000 --> 00:17:30,000 Ĝuste post linio 19, do tio estas ĉio, kio estis komuna 306 00:17:30,000 --> 00:17:33,000 el la dosieroj index.php, lectures.php, 307 00:17:33,000 --> 00:17:36,000 week1 kaj week2.php de la antaŭa ekzemplo. 308 00:17:36,000 --> 00:17:40,000 Kion mi faris estis kopio kaj kortego ĉio kiu estis komuna al ĉiuj tiuj dosieroj, 309 00:17:40,000 --> 00:17:44,000 meti ĝin en apartan header-dosiero, kaj simile en footer.php 310 00:17:44,000 --> 00:17:48,000 ĉu mi aplikas la saman principon per la sola interesa linioj 311 00:17:48,000 --> 00:17:52,000 en footer.php estas tiuj du, proksime korpo kaj proksimaj HTML. 312 00:17:52,000 --> 00:17:55,000 >> Sed kion tio signifas nun estas ke en la nova versio 313 00:17:55,000 --> 00:17:59,000 de index.php avizo kiom simplaj povas alveni. 314 00:17:59,000 --> 00:18:02,000 Koncedis, iom pli kripta rigardas, iom malpli intuicia 315 00:18:02,000 --> 00:18:06,000 sekvi supre sube, sed mia Dio, ĉiuj de tiu redundo estas nun for. 316 00:18:06,000 --> 00:18:10,000 Ni postulas uzi PHP-a funkcio laŭvorte nomis postulas supren supro, 317 00:18:10,000 --> 00:18:15,000 kio estas tre memorigas, memoras, de C estas # include mekanismo. 318 00:18:15,000 --> 00:18:17,000 Ni postulas header.php ĉe la supro. 319 00:18:17,000 --> 00:18:20,000 Ni postulas footer.php malsupre, kaj la sola kiu estas malsama 320 00:18:20,000 --> 00:18:25,000 aŭ speciala pri ĉi tiu dosiero estas la enhavo ke tio signifis esti unika al ĝi. 321 00:18:25,000 --> 00:18:29,000 Se do mi iros en, ni diru, lectures.php, la sama principo validas. 322 00:18:29,000 --> 00:18:32,000 Denove, iuj komentoj supren supro, sed tiam mi postulos header, postulas piedlinio, 323 00:18:32,000 --> 00:18:35,000 kaj inter ĝi estas nur la enhavon ke tio vere ŝanĝis. 324 00:18:35,000 --> 00:18:38,000 Kaj se ni rigardis Semajno 1 kaj Semajno 2 ni volas vidi 325 00:18:38,000 --> 00:18:42,000 ke la sama principo estis aplikita tie. 326 00:18:42,000 --> 00:18:44,000 Nu, ni ne tute farita tie. 327 00:18:44,000 --> 00:18:48,000 >> Ni rigardu versio 2, kiu havas similan strukturon, 328 00:18:48,000 --> 00:18:50,000 sed rimarkas nun mi enkondukis ion alian. 329 00:18:50,000 --> 00:18:53,000 En linio 10 Mi prezentis helpers.php, 330 00:18:53,000 --> 00:18:55,000 kiu ŝajne enhavas helpanto funkcioj. 331 00:18:55,000 --> 00:18:58,000 Al helpanto funkcio estas ĝenerale relative mallonga funkcio 332 00:18:58,000 --> 00:19:01,000 ke vi skribas por helpi vin en diversaj lokoj, 333 00:19:01,000 --> 00:19:04,000 kaj ni vidu kio estas interne de helpers.php. 334 00:19:04,000 --> 00:19:07,000 En ĉi tiu kazo, ĝi aspektas kiel ĝi havas 2 funkciojn. 335 00:19:07,000 --> 00:19:10,000 Memori de la alia tago kun niaj kubaj Ekzemplo 336 00:19:10,000 --> 00:19:13,000 vi povas difini vian propran funkcioj en PHP, kaj kion mi faris nun estas mi havas 337 00:19:13,000 --> 00:19:17,000 difinita funkcioj nomataj redonu piedlinio kaj redonu header, 338 00:19:17,000 --> 00:19:21,000 la unua el kiuj prenas parametro nomita datumoj, 339 00:19:21,000 --> 00:19:25,000 kies defaŭlta valoro estas malplena aro, kiel sugestis tie, 340 00:19:25,000 --> 00:19:29,000 kaj ni povas reale skribi ĉi eĉ pli koncize en la lasta versio de PHP 341 00:19:29,000 --> 00:19:32,000 dirante malfermita kvadrata krampo, fermita kvadrata krampo. 342 00:19:32,000 --> 00:19:35,000 Tio signifas malplenan aron de amplekso 0 sed tamen tabelo. 343 00:19:35,000 --> 00:19:38,000 >> Tiu ekstrakto funkcio estas iom speciala en tiu 344 00:19:38,000 --> 00:19:41,000 kio faras estas prenas kiel ĝia argumento asocieca tabelo 345 00:19:41,000 --> 00:19:45,000 kiu havas 0 aŭ pli ŝlosila valoro paroj, kaj se vi havas ŝlosilon de foo 346 00:19:45,000 --> 00:19:48,000 kaj valoro de trinkejo la ekstrakto funkcio 347 00:19:48,000 --> 00:19:51,000 kreas situacion en kiu nun, ekde linio 11, 348 00:19:51,000 --> 00:19:57,000 vi havas lokan variablon nomita $ foo kies valoro estas trinkejo. 349 00:19:57,000 --> 00:19:59,000 Kaj se vi havis pli klavoj kaj valoroj en la datumoj tabelo, 350 00:19:59,000 --> 00:20:03,000 simile estus ili ĉerpi en la loka amplekso 351 00:20:03,000 --> 00:20:06,000 aŭ nomo spaco por ke footer.php kaj 352 00:20:06,000 --> 00:20:09,000 la sama ideo cxi tie por ke header.php 353 00:20:09,000 --> 00:20:12,000 havas aliron al tiuj variabloj. 354 00:20:12,000 --> 00:20:15,000 Fakte, mi malfermas denove header.php 355 00:20:15,000 --> 00:20:18,000 kaj atentigi pri nun kio similas en ĉi tiu versio. 356 00:20:18,000 --> 00:20:22,000 >> Anstataŭ malmola kodigo CS50 kiel titolo por ĉiu unuopa paĝo 357 00:20:22,000 --> 00:20:24,000 rimarki la dinamismo kiun eblas nun. 358 00:20:24,000 --> 00:20:29,000 En linio 5 Mi eĥantaj titolo variablo, 359 00:20:29,000 --> 00:20:34,000 sed unue mi pasi tiu titolo variablo al funkcio nomita htmlspecialchars. 360 00:20:34,000 --> 00:20:38,000 Al stulta nomo por funkcio, kondiĉe, ke ĝi estas, sed vere faras kion ĝi diras. 361 00:20:38,000 --> 00:20:41,000 Ĝi certiĝas, ke iu supersignoj 362 00:20:41,000 --> 00:20:46,000 en la kordo ke tio estas akceptitaj en ili ĝuste eskapis HTML. 363 00:20:46,000 --> 00:20:49,000 Tiu estas fakte maniero de eviti iun nomita krucon retejo scripting atako 364 00:20:49,000 --> 00:20:52,000 per iu povas malice aŭ hazarde 365 00:20:52,000 --> 00:20:55,000 injekti siajn proprajn HTML en viajn afiŝinto 366 00:20:55,000 --> 00:20:59,000 per intergluajn en iu formo, ekzemple, 367 00:20:59,000 --> 00:21:02,000 iu kiu vi ne sufiĉe atendante, aparte aktivigi kodo, 368 00:21:02,000 --> 00:21:05,000 kiel ni parolos pri en semajno aŭ du de tempo. 369 00:21:05,000 --> 00:21:08,000 >> Tiu nun header.php, estas vido 370 00:21:08,000 --> 00:21:12,000 en la senco ke ĝi ebligas al vi rigardi estetike la enhavon de iu aro de datumoj. 371 00:21:12,000 --> 00:21:14,000 Sed pli konkrete, ĝi estas ŝablono. 372 00:21:14,000 --> 00:21:19,000 Tio estas speco de blueprint nun pri tio, kion ni volas ke la kaploko de ĉiu paĝo por simili, 373 00:21:19,000 --> 00:21:23,000 sed estas iuj dinamismo en kiun ni volas la titolon por esti dinamike insertos 374 00:21:23,000 --> 00:21:26,000 bazita sur la titolo variablo 375 00:21:26,000 --> 00:21:30,000 kiu ĉerpis kiam ni nomas, denove, 376 00:21:30,000 --> 00:21:33,000 la render header funkcio. 377 00:21:33,000 --> 00:21:36,000 Nun, se ni rigardis render piedlinio, tie fakte ne multe uzi de tiu nun 378 00:21:36,000 --> 00:21:40,000 ĉar en footer.php mankas dinamismo ajn. 379 00:21:40,000 --> 00:21:43,000 Povas esti, sed nuntempe ĝi estas malmola kodita listo de 2 etikedoj, 380 00:21:43,000 --> 00:21:46,000 sed la sama ideo validas, tiel ke fakte sugestas kial 381 00:21:46,000 --> 00:21:49,000 ni ne malŝparos tempon havante render header kaj footer render funkcio? 382 00:21:49,000 --> 00:21:52,000 Lasu min iri anstataŭ nun en versio 3, 383 00:21:52,000 --> 00:21:56,000 kaj en versio 3 en helpantoj mi decidis simpligi ĝin eĉ pli. 384 00:21:56,000 --> 00:21:58,000 >> Donu al mi unu render funkcio. 385 00:21:58,000 --> 00:22:02,000 Lasu min havi ĝin preni alian argumenton, ĉifoje nomita ŝablono, 386 00:22:02,000 --> 00:22:05,000 kio estas intencita al esti la nomo de ŝablono, 387 00:22:05,000 --> 00:22:11,000 kaj tiam Mi concatenate malhumila. php al tiu variablo estas valoro, 388 00:22:11,000 --> 00:22:17,000 kaj tiam se ĝi ekzistas foo.php, bar.php aŭ header.php kaj footer.php, 389 00:22:17,000 --> 00:22:20,000 tiam Mi tuj iros antaŭen kaj ĉerpi la variablo datumoj 390 00:22:20,000 --> 00:22:23,000 kaj poste postulas, ke vojo. 391 00:22:23,000 --> 00:22:29,000 Alivorte, por uzi ĉi nun, se mi malfermos index.php 392 00:22:29,000 --> 00:22:32,000 rimarki, ke mi ne nomas render header plu. 393 00:22:32,000 --> 00:22:36,000 Mi nur nomas redonu, sed mi pasas en citata valoro de kaplinio 394 00:22:36,000 --> 00:22:39,000 fari klara kiu ŝablono mi vere volas ŝarĝi. 395 00:22:39,000 --> 00:22:41,000 >> Tiam super tie rimarki kion mi faras. 396 00:22:41,000 --> 00:22:44,000 Mi pasante en dinamike ŝlosilo de titolo, 397 00:22:44,000 --> 00:22:47,000 valoron de CS50, kaj ankaux, kiel ni vidis antaŭe, 398 00:22:47,000 --> 00:22:51,000 povus esti farita pli konciza en la lasta versio de PHP 399 00:22:51,000 --> 00:22:54,000 kie mi povas anstataŭigi la tabelo funkcio kun kvadrataj krampoj, 400 00:22:54,000 --> 00:22:57,000 kion mi proponas estas eĉ pli legebla kaj certe 401 00:22:57,000 --> 00:22:59,000 iom pli facile tajpi. 402 00:22:59,000 --> 00:23:02,000 Kaj kompreneble, kun la render piedlinio alvoko je la fundo, 403 00:23:02,000 --> 00:23:05,000 ni ne tedis pasante en dua argumento tute ne, ne asocieca tabelo, 404 00:23:05,000 --> 00:23:07,000 ĉar tie estas nenio dinamika ene de tiu piedlinio. 405 00:23:07,000 --> 00:23:10,000 Estas nur kelkaj proksimaj etikedoj por HTML. 406 00:23:10,000 --> 00:23:14,000 Bona, ni preni paŝojn al vere pureco aĵojn tie, 407 00:23:14,000 --> 00:23:17,000 sed lasu min malfermi 2 fino ekzemploj. 408 00:23:17,000 --> 00:23:21,000 Ĉi tiu, numero 4, avertas ke mi faris konscian decidon nun 409 00:23:21,000 --> 00:23:26,000 plibonigi sur la antaŭa ekzemplo de fine uzante iu hierarkio al mia dosierojn. 410 00:23:26,000 --> 00:23:29,000 >> Rimarku ke en ĉi tiu resumo, en ĉi tiu legi min, mi enkondukis 411 00:23:29,000 --> 00:23:32,000 oni inkludas dosierujon kaj ŝablonoj katalogo 412 00:23:32,000 --> 00:23:35,000 kies enhavo estas tuj estos la aĵoj mi volas inkludi 413 00:23:35,000 --> 00:23:38,000 kaj la ŝablonojn kiujn mi volas redonu, respektive. 414 00:23:38,000 --> 00:23:42,000 Tiu estas vere min esti anal kaj klopodante teni aĵojn ordigita, 415 00:23:42,000 --> 00:23:45,000 teni rilataj dosieroj kune, sed la fina rezulto 416 00:23:45,000 --> 00:23:48,000 estas ke ni nun havas iomete tidier instalinstrukciojn, sed ni devas memori nun 417 00:23:48,000 --> 00:23:51,000 en, ekzemple, index.php 418 00:23:51,000 --> 00:23:55,000 kiam ni bezonas la dosieron helpers.php 419 00:23:55,000 --> 00:24:01,000 ni devas nun postulas tra inkludas / helpers.php 420 00:24:01,000 --> 00:24:06,000 anstataŭ nur diri helpers.php ĉar nun estas reale en la sub dosierujo. 421 00:24:06,000 --> 00:24:09,000 Nun, kiel flanken, vi vidos en ĉi tiuj ekzemploj kaj kelkaj aliaj 422 00:24:09,000 --> 00:24:11,000 funkcioj kiel postulas, postulas unufoje. 423 00:24:11,000 --> 00:24:15,000 Estas vere funkcio mem nomis inkludi, kaj ili ĉiuj havas iomete malsamajn kondutojn. 424 00:24:15,000 --> 00:24:18,000 Jen mi diras postulas iam fari super certe ke mi nur volas tiujn 425 00:24:18,000 --> 00:24:20,000 helpantoj inkludis en mia projekto samtempe. 426 00:24:20,000 --> 00:24:24,000 Sed se Mi estas singarda kaj se mi vere pensas per mia logiko adekvate 427 00:24:24,000 --> 00:24:27,000 ĝi devus sufiĉi tro simple diri postulas supren supro 428 00:24:27,000 --> 00:24:31,000 tiel longe kiel mi mem ne hazarde postulas ke sama dosiero aliloke. 429 00:24:31,000 --> 00:24:34,000 Fakte, ĉi tiu estas iomete pli efika maniero fari aferojn tiam uzanta 430 00:24:34,000 --> 00:24:38,000 postulas fojon, do mi eltondas ĝin al nur postulas. 431 00:24:38,000 --> 00:24:40,000 >> Ni prenu unu pasxon plu. 432 00:24:40,000 --> 00:24:46,000 Tiu lasta ekzemplo nun, versio 5, havas eĉ pli pura dosierujo hierarkio. 433 00:24:46,000 --> 00:24:50,000 Rimarku kion mi faris tie por la legis mi en ĉi tiu fina versio 434 00:24:50,000 --> 00:24:54,000 nun mi havas mian HTML dosierujo, kiun mi havis tiun tutan tempon, 435 00:24:54,000 --> 00:24:58,000 sed interne de tie nun estas nur index.php, lectures.php, 436 00:24:58,000 --> 00:25:01,000 week1.php kaj week2.php. 437 00:25:01,000 --> 00:25:05,000 La inkludas dosierujon nun vivas apud la HTML dosierujo, 438 00:25:05,000 --> 00:25:08,000 tial al la sama nivelo kiel frato, por tiel diri. 439 00:25:08,000 --> 00:25:10,000 Do faras la ŝablonoj dosierujo. 440 00:25:10,000 --> 00:25:14,000 La ŝlosilo takeaway jen mi enkondukis iom pli strukturo, 441 00:25:14,000 --> 00:25:17,000 sed la ŝlosilo karakterizaĵo nun estas ke nur la dosierojn 442 00:25:17,000 --> 00:25:21,000 kiuj bezonas esti retejo alirebla, publike direccionables 443 00:25:21,000 --> 00:25:25,000 per URL en la publika interreto estas en mia HTML dosierujo. 444 00:25:25,000 --> 00:25:28,000 >> Dume, aliaj dosieroj, helpers.php, footer.php, 445 00:25:28,000 --> 00:25:32,000 header.php, kiu estas argumenteble eble pli sentema, 446 00:25:32,000 --> 00:25:35,000 eble helpantoj efektive havas iujn uzanto nomoj kaj pasvortoj aŭ iu intelekta 447 00:25:35,000 --> 00:25:39,000 posedaĵo de mia, funkcias mi vere ne volas ke la mondo vidas, eĉ se hazarde. 448 00:25:39,000 --> 00:25:45,000 Estas bona praktiko por subteni el la publika HTML katalogo 449 00:25:45,000 --> 00:25:48,000 neniu dosierojn kiuj ne bezonas sin publiko. 450 00:25:48,000 --> 00:25:51,000 Vi devas fari en ĉi tiu kazo, kiam rigardas, ekzemple, 451 00:25:51,000 --> 00:25:55,000 la HTML-katalogo de index.php dosiero, 452 00:25:55,000 --> 00:25:58,000 rimarki ni nur devas esti iom pli singarda kiam postulanta 453 00:25:58,000 --> 00:26:00,000 aŭ postuli iam ĉi tiu dosiero. 454 00:26:00,000 --> 00:26:03,000 Mi bezonas unue faru .. iri al la patro dosierujo, 455 00:26:03,000 --> 00:26:06,000 do / inkludas / helpers.php 456 00:26:06,000 --> 00:26:12,000 bucear posteniras en akiri la dosieron kiun mi prizorgas. 457 00:26:12,000 --> 00:26:16,000 >> Demandojn tiam MVC 458 00:26:16,000 --> 00:26:20,000 aŭ ĉi relative simplaj personigo gxiaj? 459 00:26:20,000 --> 00:26:23,000 Kaj lasu min klarigi ke ni enfokusigis sufiĉe pri la 460 00:26:23,000 --> 00:26:27,000 V tie, la opinioj kaj la faktoranta el tiuj ŝablonoj. 461 00:26:27,000 --> 00:26:30,000 Ni ne vere distingas M de C ĝuste ankoraŭ. 462 00:26:30,000 --> 00:26:33,000 Fakte, vere ne M tie, kaj eĉ nia C, 463 00:26:33,000 --> 00:26:36,000 adaptilo, ĉu ne vere faras ĉion, kion multe, sed vi ricevos multe pli 464 00:26:36,000 --> 00:26:39,000 familiara kun ambaŭ el tiuj 2 leteroj de MVC, 465 00:26:39,000 --> 00:26:43,000 aŭ pli ĝuste, vi ricevos multe pli familiara kun la C 466 00:26:43,000 --> 00:26:49,000 en MVC por problemo aro 7, do estas pli de tiu sur la horizonto. 467 00:26:49,000 --> 00:26:51,000 Demandoj? 468 00:26:51,000 --> 00:26:53,000 Estas vere neniu tie. 469 00:26:53,000 --> 00:26:57,000 >> Konsentite, ni nun pluiri al la dua kaj lasta temo hodiaŭ. 470 00:26:57,000 --> 00:27:00,000 Tio estas la enkonduko de datumbazo. 471 00:27:00,000 --> 00:27:03,000 Ĝis tiu punkto ni havis kelkajn manierojn provizon datumoj. 472 00:27:03,000 --> 00:27:05,000 Ni uzis variabloj. 473 00:27:05,000 --> 00:27:08,000 Reen en nia C dosiero, / Aŭ diskuto ni komencis uzi teksto-dosieroj 474 00:27:08,000 --> 00:27:11,000 kaj uzante dosierojn kiel fprintf, kaj tiam ni eĉ komencis 475 00:27:11,000 --> 00:27:14,000 parolas CSV Fajlilo iomete, apartigita de komoj valoroj, 476 00:27:14,000 --> 00:27:17,000 tial ĉiuj ĉi tiuj permesis al ni havas datumojn stokitaj 477 00:27:17,000 --> 00:27:19,000 ĉu ne persiste aŭ persiste. 478 00:27:19,000 --> 00:27:23,000 Sed eĉ CSVs ne estas vere favoraj por serĉado 479 00:27:23,000 --> 00:27:25,000 kaj enmeto kaj viŝante. 480 00:27:25,000 --> 00:27:28,000 Estas vere nur stulta teksta dosiero apartigitaj per komoj 481 00:27:28,000 --> 00:27:30,000 linion post linio post linio post linio, do se vi volas 482 00:27:30,000 --> 00:27:32,000 serĉi tiu dosiero la plej bona vi povas fari vere estas lineara serĉo. 483 00:27:32,000 --> 00:27:34,000 Vi devas komenci sur la supro de la dosiero, legu la tutan aferon en, 484 00:27:34,000 --> 00:27:36,000 kaj serĉas iun valoron de intereso. 485 00:27:36,000 --> 00:27:39,000 Se vi volas enmeti en ĝin vi devas fari la samon, 486 00:27:39,000 --> 00:27:41,000 ripetanta super ĝi kaj enmeto en apartan lokon, 487 00:27:41,000 --> 00:27:45,000 kaj fakte, kion vi devas fari ĉiujn serĉado logiko mem. 488 00:27:45,000 --> 00:27:49,000 >> Vi ne povas fari sprita ŝablona rekono sur CSV-dosiero krom se vi mem skribas la kodon. 489 00:27:49,000 --> 00:27:51,000 Vi ne povas fari filtración de CSV-dosiero 490 00:27:51,000 --> 00:27:53,000 krom se vi mem skribas la kodon. 491 00:27:53,000 --> 00:27:56,000 Ĉu ne estus bela se iu alia metis en ĉiuj el la penado 492 00:27:56,000 --> 00:27:59,000 al reale fari serĉado facila kaj inserción facila 493 00:27:59,000 --> 00:28:01,000 kaj forigo kaj ĝisdatigante ktp? 494 00:28:01,000 --> 00:28:04,000 Tio estas ekzakte kion datumbazo estas. 495 00:28:04,000 --> 00:28:07,000 SQL, strukturita query lingvo, estas alia lingvo 496 00:28:07,000 --> 00:28:10,000 ke ni enkondukas ĉi tie hodiaŭ, sed ĉi tiu estas ankaŭ sufiĉe atingebla, 497 00:28:10,000 --> 00:28:13,000 kaj kion ni vere volas fari estas simple deŝiri el ĝi kelkajn el la plej elstaraj 498 00:28:13,000 --> 00:28:16,000 trajtojn tiel ke por pset 7, kaj se vi faros ion retejo bazita, 499 00:28:16,000 --> 00:28:19,000 Via fina projekto, vi havas la kapablon esprimi sin 500 00:28:19,000 --> 00:28:22,000 en terminoj de datumoj demandoj. 501 00:28:22,000 --> 00:28:25,000 Vi havas la kapablon por stoki iom aŭ multe da datumoj 502 00:28:25,000 --> 00:28:28,000 en multe pli strukturita maniero kiu estos ĉe la fino de la tago 503 00:28:28,000 --> 00:28:32,000 fari vian vivon pli facila ĉar kun SQL oni povas esprimi sin 504 00:28:32,000 --> 00:28:35,000 multe pli precize, multe pli metode por 505 00:28:35,000 --> 00:28:40,000 reiri iu subaro de datumoj el pli granda korpuso de datumoj. 506 00:28:40,000 --> 00:28:45,000 >> Vi povas pensi pri datumbazo, en ĉi tiu kazo, SQL datumbazo, vere kiel Excel 507 00:28:45,000 --> 00:28:48,000 aŭ Nombroj kie ĝi estas folio, 508 00:28:48,000 --> 00:28:50,000 aŭ eble plurajn foliojn, kaj ŝtono, kompreneble, 509 00:28:50,000 --> 00:28:53,000 havas vicoj kaj kolumnoj, kaj tio estas ĉar 510 00:28:53,000 --> 00:28:56,000 SQL datumbazoj estas rilata, rilata en la senco 511 00:28:56,000 --> 00:28:59,000 ke ili stokas datumojn en terminoj de tiuj tabloj, 512 00:28:59,000 --> 00:29:01,000 vicoj kaj kolumnoj. 513 00:29:01,000 --> 00:29:03,000 Ili estas pli altaj ol muzikistoj iu kiel folio, 514 00:29:03,000 --> 00:29:05,000 kaj folio estas intencita al esti uzita de homo. 515 00:29:05,000 --> 00:29:08,000 Al datumbazo estas intencita al esti uzita de programisto 516 00:29:08,000 --> 00:29:12,000 skribi kodo kontraŭ ĝi, do la personigo de datumbazo 517 00:29:12,000 --> 00:29:14,000 tuj estos ĉu komandlinio. 518 00:29:14,000 --> 00:29:18,000 >> Unu el la plej popularaj rilata datumbazoj tie estas, denove, MySQL, 519 00:29:18,000 --> 00:29:22,000 kiu estas mirinde libera, tre alta muzikistoj, kaj ĉi tiu estas kion 520 00:29:22,000 --> 00:29:24,000 Facebook uzitaj tre frue kaj iugrade ankoraŭ hodiaŭ 521 00:29:24,000 --> 00:29:27,000 stoki multe de liaj datumoj, kaj ni vidos en momento 522 00:29:27,000 --> 00:29:30,000 ke uzi relative simplajn ordonojn 523 00:29:30,000 --> 00:29:33,000 ni povas elekti datumojn, insert datumoj, ŝanĝo datumoj, 524 00:29:33,000 --> 00:29:37,000 forviŝi datumoj kaj similaj, sed dankeme, estas pli afabla uzantinterfaco 525 00:29:37,000 --> 00:29:39,000 ol tajpi en nigra kaj blanka prompto tie. 526 00:29:39,000 --> 00:29:43,000 Ni uzos por pset 7 kaj tie libera ilo nomita phpMyAdmin. 527 00:29:43,000 --> 00:29:45,000 La nomo estas coincidencia. 528 00:29:45,000 --> 00:29:47,000 La ilo okazas al esti realigita en PHP, 529 00:29:47,000 --> 00:29:49,000 sed tio estas fundamente pala. 530 00:29:49,000 --> 00:29:53,000 Kio estas utila pri phpMyAdmin estas ke ĝi estas reta utileco. 531 00:29:53,000 --> 00:29:55,000 Ni antaŭ-instalita en la aparaton por vi, 532 00:29:55,000 --> 00:29:58,000 kaj per ĝi vi povas krei tabelojn en datumbazo, 533 00:29:58,000 --> 00:30:01,000 vi povas enmeti datumojn, forviŝi datumojn, kaj ĝenerale vidas 534 00:30:01,000 --> 00:30:04,000 viajn datumojn en sufiĉe uzantamika medio. 535 00:30:04,000 --> 00:30:07,000 Via uzantoj ne tuj uzu phpMyAdmin. 536 00:30:07,000 --> 00:30:09,000 >> Tio estas vere nur administra aŭ programisto estas ilo 537 00:30:09,000 --> 00:30:12,000 kun kiu vidas kaj poke ĉirkaŭ viajn datumojn kaj malkovri kiel strukturi ĝin, 538 00:30:12,000 --> 00:30:15,000 multe kiel vi mem povus uzi Excel aŭ Nombroj, 539 00:30:15,000 --> 00:30:19,000 sed tuj estos granda vojo de bildiganta kio okazas sub la kapuĉo 540 00:30:19,000 --> 00:30:22,000 por ke vi povas enfokusigi la interesa solvo de problemoj kaj ne tiom 541 00:30:22,000 --> 00:30:25,000 sur la arkaikaj ordonojn. 542 00:30:25,000 --> 00:30:28,000 Ni rigardu ekzemplon de datumoj, kiuj povus esti stokita tabularly 543 00:30:28,000 --> 00:30:30,000 en rilata datumbazo. 544 00:30:30,000 --> 00:30:32,000 Jen unu tia ekzemplo. 545 00:30:32,000 --> 00:30:35,000 Nun, bedaŭrinde, phpMyAdmin eraris en la flanko de ĵetante vojo tro multaj vortoj 546 00:30:35,000 --> 00:30:38,000 kaj grafikaĵoj pri vi, sed se vi agordi en nur en la 547 00:30:38,000 --> 00:30:42,000 ID kolumno, vikipediista nomo kolumno, kaj la hash kolumno, 548 00:30:42,000 --> 00:30:45,000 ĉi tiu estas efektive folio, sed tio okazas al esti fragmento 549 00:30:45,000 --> 00:30:49,000 de tablo interne de la aparaton 550 00:30:49,000 --> 00:30:53,000 uzante dosieron kiu ni ofertas al vi en problemo aro 7. 551 00:30:53,000 --> 00:30:57,000 >> En aparta, ni donos al vi dosiero kiu reprezentas 552 00:30:57,000 --> 00:31:01,000 uzanto tablo, do oni folio enhavas uzantoj kun 3 kolumnoj, 553 00:31:01,000 --> 00:31:05,000 unu el kiuj estas unika ID startanta je 1 kaj esti incremented poste. 554 00:31:05,000 --> 00:31:08,000 La dua kolumno estas nomo de uzanto, kaj tiuj el vi, kiuj faris Hacker, 555 00:31:08,000 --> 00:31:12,000 la Hacker eldono por pset 2, povus rekoni kelkajn el tiuj uzanto nomoj almenaŭ. 556 00:31:12,000 --> 00:31:16,000 Sur la dekstra flanko estas pasvortojn, sed ili ne estas laŭvorta pasvortojn. 557 00:31:16,000 --> 00:31:19,000 Ili estas hashes gxiajn, do rezultas 558 00:31:19,000 --> 00:31:22,000 ke stoki pasvortojn en datumbazo estas vere malbona ideo. 559 00:31:22,000 --> 00:31:25,000 Vi ĉiuj probable legis en iu punkto de iu retejo 560 00:31:25,000 --> 00:31:28,000 aŭ iu kompanio datumbazo esti kompromitita, kaj tiam vi devas 561 00:31:28,000 --> 00:31:31,000 ŝanĝi vian pasvorton, vi bezonos akiri reintegra sur aĵoj 562 00:31:31,000 --> 00:31:34,000 ĉar iuj malbonaj ulo fakte rompis en vian konton kiel rezulto. 563 00:31:34,000 --> 00:31:38,000 >> Stoki pasvortojn en klara teksto, unencrypted en datumbazo 564 00:31:38,000 --> 00:31:41,000 estas tute asinine, kaj tamen ĝi estas ege amuza 565 00:31:41,000 --> 00:31:44,000 tiam legi pri iuj tre bone konata kompanioj 566 00:31:44,000 --> 00:31:47,000 kelkfoje en la gazetaro kies datumbazoj estas kompromitita, 567 00:31:47,000 --> 00:31:50,000 kaj tiu parto ne estas amuza, sed la fakto ke la datumbazoj enhavi unencrypted 568 00:31:50,000 --> 00:31:53,000 pasvortoj estas ridinda ĉar laŭvorte kun unu linio de kodo 569 00:31:53,000 --> 00:31:57,000 vi povas protekti kontraŭ tiu aparta minaco, kaj tio estas kion ni faris ĉi tie. 570 00:31:57,000 --> 00:32:00,000 Eĉ por nia falsa iom CS50 Financoj versio 571 00:32:00,000 --> 00:32:03,000 ni encrypting pasvortoj nur por bonan mezuron, kaj la fakto ke 572 00:32:03,000 --> 00:32:07,000 ĉiuj el tiuj pasvortoj starti kun $ 1 $ estas nur konvencio. 573 00:32:07,000 --> 00:32:10,000 Ke nur signifas ke ili estas koditaj aŭ vere hashed, 574 00:32:10,000 --> 00:32:13,000 kio estas kiel unu-formo kodita funkcio 575 00:32:13,000 --> 00:32:17,000 per vi ne povas inversigi liaj efektoj kun iu nomita MD5. 576 00:32:17,000 --> 00:32:21,000 >> La fakto ke 50 estas post tio signifas ke salo valoro 577 00:32:21,000 --> 00:32:24,000 de 50 estis uzita por Regionoj ĉiuj tiuj pasvortoj krom unu. 578 00:32:24,000 --> 00:32:27,000 Mia, kompreneble, kiel vi povas vidi tie, HA, 579 00:32:27,000 --> 00:32:30,000 Estis uzante malsamajn salo, tiel tiuj el vi, kiuj got iomete stumblis supren 580 00:32:30,000 --> 00:32:33,000 eble en Hacker 2, kiu povus esti la rezulto de nia esti uzita 581 00:32:33,000 --> 00:32:36,000 malsama hash ol la aliaj ĉar mia pasvorto estas fakte la sama 582 00:32:36,000 --> 00:32:38,000 kiel iuj aliaj uzantoj tie supre. 583 00:32:38,000 --> 00:32:41,000 Fakte, se vi atendis ĉiuj tiuj semajnoj por ekscii 584 00:32:41,000 --> 00:32:44,000 kio tiuj pasvortoj estis tie estis la pasvortojn kiujn vi defiis 585 00:32:44,000 --> 00:32:48,000 por fendi en la Hacker eldono de problemo aro 2, do neniu tro malfacila. 586 00:32:48,000 --> 00:32:50,000 Fakte, Malan la estis la sama kiel jharvard, 587 00:32:50,000 --> 00:32:54,000 sed se ni reiros ili aspektis malsama. 588 00:32:54,000 --> 00:32:58,000 >> Enfokusigi jharvard en karmezina ĉar ili salita malsame. 589 00:32:58,000 --> 00:33:01,000 La algoritmo perturbis en maniero, ke la 590 00:33:01,000 --> 00:33:05,000 hash valoro, la ĉifrita valoro aspektas iom malsama 591 00:33:05,000 --> 00:33:08,000 ĉar la enigoj estis iomete malsama, sed la pasvorton sub la kapuĉo 592 00:33:08,000 --> 00:33:10,000 estis ankoraŭ finfine karmezina. 593 00:33:10,000 --> 00:33:12,000 Nun, kiu zorgas pri tio? 594 00:33:12,000 --> 00:33:15,000 Nu, ni havigas al vi kun la specimeno uzantoj, la specimeno uzanto nomoj 595 00:33:15,000 --> 00:33:18,000 kaj hashes de ilia pasvortojn por ke vi efektive havas iujn 596 00:33:18,000 --> 00:33:23,000 klientoj por CS50 Financoj kiam vi unue akiri surgrunde kun via kodo. 597 00:33:23,000 --> 00:33:27,000 Vi devos apliki pli tabuloj interne de MySQL, ene de la datumbazo. 598 00:33:27,000 --> 00:33:30,000 Vi devos krei pli ŝtono, efike, sed ni decidis doni al vi ĉi tiu 599 00:33:30,000 --> 00:33:33,000 akiri vi komencis, kaj vi vidos ke la problemo aro specifo 600 00:33:33,000 --> 00:33:37,000 promenas vin tra la procezo de importi ĉi tablo 601 00:33:37,000 --> 00:33:39,000 kaj ankaŭ klarigante kion iuj el la trajtoj estas, 602 00:33:39,000 --> 00:33:41,000 kaj vi ankaux vidos, ke ni ofertas al vi kun la kodo 603 00:33:41,000 --> 00:33:44,000 manipuli la Regionoj aŭ la ĉifrado de tiuj pasvortoj, 604 00:33:44,000 --> 00:33:49,000 tial vi ne bezonas zorgi tro multe pri kio MD5 aŭ kiel estas reale okazas. 605 00:33:49,000 --> 00:33:53,000 >> Do, SQL, strukturita query lingvo. 606 00:33:53,000 --> 00:33:56,000 Ĉi tio estas, tute simple, la lingvo ni estas sur ekuzi en pset 7 607 00:33:56,000 --> 00:34:01,000 kaj eble preter peti datumoj de iuj datumbazo. 608 00:34:01,000 --> 00:34:06,000 La datumoj estas, denove, stokitaj tabularly en tiuj rilataj tabeloj, kolumnoj kaj vicoj, 609 00:34:06,000 --> 00:34:09,000 sed uzante iun relative simpla sintakso kiel delete, 610 00:34:09,000 --> 00:34:12,000 enigi, ĝisdatigi kaj elektu ĉu ni povas fari precize tion. 611 00:34:12,000 --> 00:34:15,000 Ni povas forviŝi el la datumbazo, enigi, 612 00:34:15,000 --> 00:34:19,000 ĝisdatigi datumojn, tiel kiel unuaranga, tio estas, elsxuti datumoj el la datumbazo. 613 00:34:19,000 --> 00:34:21,000 Kiel ni iras sur faras tion? 614 00:34:21,000 --> 00:34:23,000 Lasu min en la aparaton. 615 00:34:23,000 --> 00:34:28,000 Lasu min eltiri supren http://localhost, 616 00:34:28,000 --> 00:34:30,000 kiu, denove, estas la loka aparaton mem. 617 00:34:30,000 --> 00:34:32,000 Tio estas lia defaŭlta alnomo. 618 00:34:32,000 --> 00:34:35,000 Kaj lasu min iri al / phpmyadmin. 619 00:34:35,000 --> 00:34:39,000 Ĉi tio okazas al esti speciala URL ke la aparaton estas preconfigured kompreni 620 00:34:39,000 --> 00:34:42,000 ke tuj instigas min por uzantnomon kaj pasvorton. 621 00:34:42,000 --> 00:34:46,000 >> Kiel kutime, mi tuj tajpi jharvard kaj rugxa, 622 00:34:46,000 --> 00:34:48,000 sed rimarkas ke estas la administranto konton en la komputilo. 623 00:34:48,000 --> 00:34:53,000 Estas nur koincido ke ekzistas ankaŭ jharvard registrita por CS50 Financoj. 624 00:34:53,000 --> 00:34:56,000 Jharvard, rugxa, enspezo donas al mi la uzulinterfaco, kiun ni vidis 625 00:34:56,000 --> 00:34:59,000 ekvidis antaŭ momento, kaj estas iom blindiga unue, 626 00:34:59,000 --> 00:35:02,000 sed estu certaj, ke vi neniam tuj devos klaki la plejparto de la ligiloj en tiu ilo. 627 00:35:02,000 --> 00:35:05,000 Vi fini uzante malgrandan subaro kiuj estas super helpema, 628 00:35:05,000 --> 00:35:08,000 la unua el kiuj estas datumbazoj tien. 629 00:35:08,000 --> 00:35:11,000 Se mi iros al datumbazojn, rimarki ke mi instigis krei datumbazon. 630 00:35:11,000 --> 00:35:14,000 Ĉi tio estas kiel krei novan Excel-dosiero, efektive. 631 00:35:14,000 --> 00:35:18,000 Mi tuj iros antaŭen kaj nomas tiun prelegon, kaj mi simple tuj ignori la kampo tie, colación. 632 00:35:18,000 --> 00:35:20,000 Ĝi devas vidi kun la reprezento de datumoj en gxi, 633 00:35:20,000 --> 00:35:24,000 kaj mi tuj klaku krei, kaj nun rimarkis kiel mi lasis iri de krei 634 00:35:24,000 --> 00:35:27,000 sur la maldekstra flanko kie diras neniu datumbazoj 635 00:35:27,000 --> 00:35:30,000 Mi devus baldaŭ vidas la prelego datumbazo. 636 00:35:30,000 --> 00:35:32,000 >> Se mi nun klaku ĉe la maldekstra flanko, la prelego datumbazo, 637 00:35:32,000 --> 00:35:34,000 rimarki mian langetoj ŝanĝi iom. 638 00:35:34,000 --> 00:35:38,000 Mi havas strukturon, SQL, eksportado, importado kaj kelkaj aliaj aĵoj. 639 00:35:38,000 --> 00:35:40,000 Strukturo estas preskaux malplena. 640 00:35:40,000 --> 00:35:43,000 Neniu tabloj trovita en datumbazo, kiel ĝi diras ĉi tie, 641 00:35:43,000 --> 00:35:47,000 do ni krei tabulon, kaj ni iru antaŭen kaj krei tablo 642 00:35:47,000 --> 00:35:53,000 kiel studentoj, kaj kiom da kolumnoj ni deziras? 643 00:35:53,000 --> 00:35:55,000 Ni observu tiun simplan, kaj estu la rekordon por ĉiu studento 644 00:35:55,000 --> 00:35:58,000 an ID numeron, nomo, kaj retadreso. 645 00:35:58,000 --> 00:36:02,000 >> Ni konservos simpla kiel tiu, tiel 3 kolumnoj, iru. 646 00:36:02,000 --> 00:36:05,000 La formo kiun vi vidas ĉi tie estas nun iom senorda kaj blindigaj, 647 00:36:05,000 --> 00:36:08,000 sed ni nur devas iri tra ĝi linion post linio, do vere rapide donu 648 00:36:08,000 --> 00:36:14,000 la unua kolumno en cxi tiu datenbazo nomon de ID por la sola ensalutilo. 649 00:36:14,000 --> 00:36:17,000 Estos entjero. Mi povas fakte ignoras longa kaj valoroj. 650 00:36:17,000 --> 00:36:21,000 An int tuj estos 32 bitoj negrave kion vi tajpas en tie, do ni lasu ĝin malplena. 651 00:36:21,000 --> 00:36:24,000 Defaŭlta valoro, mi povus fari ĝin nula, kiel difinita. 652 00:36:24,000 --> 00:36:27,000 Mi foriros ke nur. Lasu Ne zorgu pri defaŭlta valoroj. 653 00:36:27,000 --> 00:36:29,000 Ni rulumi tra tie al la dekstra, atributoj. 654 00:36:29,000 --> 00:36:31,000 Tio estas interesa. 655 00:36:31,000 --> 00:36:33,000 Ni iru antaŭen kaj iom arbitre diras ke IDs devas esti sensigna. 656 00:36:33,000 --> 00:36:35,000 Ni ne malŝpari neniun negativaj nombroj. 657 00:36:35,000 --> 00:36:37,000 >> Ni iru 0 al 4 miliardoj, donu aŭ preni, 658 00:36:37,000 --> 00:36:40,000 kaj tiam ni ne tuŝi iun el tiuj kampoj nur ankoraux tie, 659 00:36:40,000 --> 00:36:43,000 sed tiam mi entajpi nomon cxi tie, 660 00:36:43,000 --> 00:36:46,000 kaj tiam la aliaj iris retpoŝto, do la ruzo estas retpoŝto 661 00:36:46,000 --> 00:36:50,000 kaj nomo, evidente ne entjeroj, do ni ŝanĝas tiujn al malsama kampo. 662 00:36:50,000 --> 00:36:53,000 Ĝi rezultas varchar, ŝanĝiĝema longitudo char, 663 00:36:53,000 --> 00:36:56,000 estas kiel ĉenon en SQL datumbazo 664 00:36:56,000 --> 00:36:59,000 sed variablo longo, kaj vi vere devas diri ĝin anticipe la 665 00:36:59,000 --> 00:37:02,000 maksimuma longo de la kordoj, do mi tuj iom arbitre 666 00:37:02,000 --> 00:37:05,000 per konvencio tipo 255 signoj. 667 00:37:05,000 --> 00:37:08,000 Mi povus tute diri 32. Mi povus diri 1.000. 668 00:37:08,000 --> 00:37:11,000 Vi ia neceso decidi por vi mem bazita sur via demografio kio estas 669 00:37:11,000 --> 00:37:14,000 la plej longa studenta nomo kaj iru kun tiu numero aŭ iom pli granda, 670 00:37:14,000 --> 00:37:17,000 sed kio estas agrabla pri varchar estas ne iras malŝpari 671 00:37:17,000 --> 00:37:19,000 255 bitokoj sur ĉiu studento nomo. 672 00:37:19,000 --> 00:37:23,000 Se estas DAVIDO ĝi ne iras uzi tutan 255 bajtoj, 673 00:37:23,000 --> 00:37:26,000 sed tio estas supera baro, do mi iros kun 255 nur konvencio, 674 00:37:26,000 --> 00:37:30,000 sed ni povus debati ke por esti iu suba valoro, kaj por retadreso 675 00:37:30,000 --> 00:37:34,000 nur por esti konsekvenca 255, sed denove, ni povus havi la saman debato. 676 00:37:34,000 --> 00:37:36,000 Sed mi faros unu alia afero ol ĉi tie sur la dekstra flanko. 677 00:37:36,000 --> 00:37:40,000 >> Kio estas potenca pri datumbazo estas kiu povas fari multe da pezaj ĉesigon 678 00:37:40,000 --> 00:37:42,000 aŭ kompleksa verko por vi. 679 00:37:42,000 --> 00:37:46,000 En aparta, mi vere ne gravas kion mia studenta ID nombroj estas. 680 00:37:46,000 --> 00:37:49,000 Ĝi simple signifis esti unika identigilo en datumbazo 681 00:37:49,000 --> 00:37:52,000 tial mi havas 32-bitan konciza prezento de tiu studento 682 00:37:52,000 --> 00:37:55,000 por ke mi havas iujn vojo de unike identigi ilin 683 00:37:55,000 --> 00:37:58,000 ke iel estos 2 Davids, ekzemple, en klaso. 684 00:37:58,000 --> 00:38:01,000 Fakte, mi iros por kontroli ĉi AI skatolo, aŭtomata pliigo, 685 00:38:01,000 --> 00:38:04,000 por ke la datumbazo, MySQL, figuroj el 686 00:38:04,000 --> 00:38:08,000 kion ĉiu nove insertos studenta ID tuj estos. 687 00:38:08,000 --> 00:38:11,000 Mi eĉ ne devas maltrankviligi, ke en mia kodo, 688 00:38:11,000 --> 00:38:13,000 kaj mi ankaŭ tuj elekti ion sub la indekso menuo. 689 00:38:13,000 --> 00:38:17,000 La indico faligi cxi tie estas primara, sola, 690 00:38:17,000 --> 00:38:19,000 indekso kaj plena teksto. 691 00:38:19,000 --> 00:38:21,000 Vi povas eble diveni kion paro el tiuj aferoj estas, 692 00:38:21,000 --> 00:38:24,000 sed ĝi rezultas en rilata datumbazoj 693 00:38:24,000 --> 00:38:28,000 vi la programisto aŭ la datenbazo administranto atingos preemptively 694 00:38:28,000 --> 00:38:32,000 doni aludoj al la datumbazo pri kio kampoj 695 00:38:32,000 --> 00:38:34,000 en tabulo estas iom speciala. 696 00:38:34,000 --> 00:38:37,000 >> Ekzemple, en tiu kazo mi iros diri ke ID 697 00:38:37,000 --> 00:38:42,000 tuj estos esenca indico, alie sciata kiel primara ŝlosilo. 698 00:38:42,000 --> 00:38:44,000 Kion tio signifas por la difino estas ke ID nun 699 00:38:44,000 --> 00:38:48,000 estos unike identigi lernantojn en ĉi tiu tabulo. 700 00:38:48,000 --> 00:38:53,000 Neniu lernanto havos la saman ID ĉar mi impona ĉi limigo aŭ ĉi indekso. 701 00:38:53,000 --> 00:38:55,000 Cetere, kio estas tiu tuj faros por mi estas tuj diros 702 00:38:55,000 --> 00:38:58,000 MySQL ke ID estas speciala. 703 00:38:58,000 --> 00:39:03,000 Mi zorgas aparte pri ID, do faru viajn fancy datumstrukturo la magion, 704 00:39:03,000 --> 00:39:05,000 konstrui ian arbon. 705 00:39:05,000 --> 00:39:08,000 Tipe estas iu nomis la B-arbo, kiun ni ne rigardas semajnoj, 706 00:39:08,000 --> 00:39:11,000 sed estas alia tia datumstrukturo simila en spirito al la duuma arboj 707 00:39:11,000 --> 00:39:15,000 kaj pretendas ke ni rigardis, sed tuj diros 708 00:39:15,000 --> 00:39:18,000 al la datumbazo tiu kampo estas tiel grava, ke mi probable 709 00:39:18,000 --> 00:39:22,000 volas povi sercxi sur ĝi, iru antaŭen kaj konstruos kelkajn fancy 710 00:39:22,000 --> 00:39:25,000 datumstrukturo en memoro al agilizar serĉoj por ke ideale 711 00:39:25,000 --> 00:39:28,000 ili estas konstanta tempo aŭ almenaŭ tiel proksima al tiu kiel eble 712 00:39:28,000 --> 00:39:32,000 por ke ĝi ne devolve enen lineara serĉo, kiuj ne tuj estos 713 00:39:32,000 --> 00:39:34,000 la plej alta plenumante alproksimiĝon. 714 00:39:34,000 --> 00:39:37,000 Kontraste, retadreso povus esti estinta primara ŝlosilo. 715 00:39:37,000 --> 00:39:41,000 >> En teorio, ĉies retadreso estas unika, krom se vi dividante iuj rakontas, 716 00:39:41,000 --> 00:39:45,000 sed estas ĝenerale ne bone uzi iun kiel cxeno 717 00:39:45,000 --> 00:39:49,000 kiel primara ŝlosilo ĉar se lia celo en la vivo estas por unike identigi 718 00:39:49,000 --> 00:39:55,000 vicoj en via tablo ne estas kialo por uzi 255 bitokoj maksimume 719 00:39:55,000 --> 00:39:58,000 por unike identigi iun, se vi povas foriri kun nur 4 bitokoj 720 00:39:58,000 --> 00:40:00,000 aŭ 32-bita int. 721 00:40:00,000 --> 00:40:03,000 En ĝenerala, primara ŝlosilo devas esti mallonga kaj konciza 722 00:40:03,000 --> 00:40:07,000 kaj ideale iu kiel entjero aŭ granda int, kiu hazarde estas 64 bitoj. 723 00:40:07,000 --> 00:40:11,000 Sed retadreso devus esti sola, kaj unu el la trajtoj de datumbazo tro 724 00:40:11,000 --> 00:40:14,000 estas plenumi unikeco por mi. 725 00:40:14,000 --> 00:40:18,000 Elektante solaj tie apud retpoŝto, kvankam email mem 726 00:40:18,000 --> 00:40:21,000 estas scrolled for la ekrano, mi diras al la datumbazo 727 00:40:21,000 --> 00:40:23,000 ne fidas min. 728 00:40:23,000 --> 00:40:26,000 Ne lasu min enkonduki en la datumbazo 729 00:40:26,000 --> 00:40:29,000 la sama retadreso dufoje, eĉ se mi estas idioto kaj mi ne 730 00:40:29,000 --> 00:40:32,000 tre bona per mia IFS kaj alia IFS kaj realaj PHP kodo 731 00:40:32,000 --> 00:40:37,000 kaj mi hazarde lasis la uzanto enskribas kun ekzistanta retadreson 732 00:40:37,000 --> 00:40:40,000 la datumbazo estas alia nivelo de defendo por praveco 733 00:40:40,000 --> 00:40:44,000 por certigi ke tiu duplikatajn retadreso ne finas en la tabulo. 734 00:40:44,000 --> 00:40:49,000 >> Nun, per kontrasto, ĉar nomon vi verŝajne ne volas fari tiun solan 735 00:40:49,000 --> 00:40:51,000 ĉar tiam tie neniam povus esti 2 Davids aŭ 2 Mike Smith, ekzemple, 736 00:40:51,000 --> 00:40:55,000 en via datenbazo, tiel ke oni ni simple lasi sola. 737 00:40:55,000 --> 00:40:58,000 Mi tuj iros antaŭen kaj klaku savi je fundo pravas, 738 00:40:58,000 --> 00:41:02,000 kaj ĉiu aspektas bone, sed rimarkas tien 739 00:41:02,000 --> 00:41:04,000 ĉi tiu estas parto kiu nuntempe ni ne pasigas tro da tempo en 740 00:41:04,000 --> 00:41:07,000 ĉar la sintakso estas iom kompleksa, kaj ni ne devas krei tabelojn 741 00:41:07,000 --> 00:41:10,000 cxio, kio ofte, sed SQL mem estas lingvo, 742 00:41:10,000 --> 00:41:13,000 la sintakso por kiuj estas ĉi tie ke mi reliefigis. 743 00:41:13,000 --> 00:41:18,000 Kio phpMyAdmin vere faras estas ĝi kreas ttt-bazita GUI por vi 744 00:41:18,000 --> 00:41:23,000 kun kiu vi povas ŝpari tempon kaj ne devas permane tajpi eksteren 745 00:41:23,000 --> 00:41:26,000 sufiĉe longa SQL query tiel. 746 00:41:26,000 --> 00:41:29,000 >> En aliaj vortoj, se vi volas permane krei ĉi tablon, 747 00:41:29,000 --> 00:41:32,000 ĉu en tiu nigra kaj blanka prompto aŭ eĉ en phpMyAdmin 748 00:41:32,000 --> 00:41:35,000 uzante ĉi tiu alia langeto, ĉi SQL langeto kie vi povas entajpi ajnan SQL demandoj 749 00:41:35,000 --> 00:41:38,000 vi volas, sincere, tiu estus preninta min minuto 750 00:41:38,000 --> 00:41:41,000 por fakte memoru la tutan sintakson, kaj eĉ tiam mi probable havus 751 00:41:41,000 --> 00:41:45,000 faris iujn typos, do ĉi tiu ilo estas utila por aĵoj kiel tiu, kaj ĝi estas ankaŭ instrua. 752 00:41:45,000 --> 00:41:49,000 Vi povas komenci konkludi kion la sintakso estas 753 00:41:49,000 --> 00:41:52,000 nur la agrabla koloro kodigo ke phpMyAdmin estas aldono 754 00:41:52,000 --> 00:41:54,000 por nia vida komforto. 755 00:41:54,000 --> 00:41:56,000 Sed nun ni faros ĉi loko. 756 00:41:56,000 --> 00:42:00,000 Lasu min iri al la insert langeton supre, kaj lasu min antaŭeniri kaj enmeti ekzemple 757 00:42:00,000 --> 00:42:04,000 an ID de let diru-efektive mi ne zorgas. 758 00:42:04,000 --> 00:42:07,000 Ĝi tuj auto pliigo. Mi tuj lasis la datumbazo multe kun ĉi tiu. 759 00:42:07,000 --> 00:42:11,000 Sed mi estos David kaj mia retpoŝto estu malan@harvard.edu. 760 00:42:11,000 --> 00:42:16,000 >> Ni iru antaŭen tie kaj meti en Mike Smith kiel alia. 761 00:42:16,000 --> 00:42:18,000 Mi donos al mi mem familinomo tiel, 762 00:42:18,000 --> 00:42:22,000 kaj ni jam li estu smith@example.com, 763 00:42:22,000 --> 00:42:24,000 kaj tiam kie mi iru poste? 764 00:42:24,000 --> 00:42:27,000 Nu, tio aspektas kiel go estas la butonon por klaki, kaj voila. 765 00:42:27,000 --> 00:42:30,000 Rimarki en la supera 2 vicojn insertos. 766 00:42:30,000 --> 00:42:32,000 Ĉi tiu estas la reala SQL query. 767 00:42:32,000 --> 00:42:36,000 Tio estas la phpMyAdmin ilo ekzekutita por mi, 768 00:42:36,000 --> 00:42:40,000 sed la fina rezulto, rimarki, se mi nun iras al la esplor langeto, 769 00:42:40,000 --> 00:42:43,000 estas vidi 2 vicojn en ĉi tiu tabulo, tre memorigas estetike 770 00:42:43,000 --> 00:42:46,000 de la tablo ni vidis antaŭe por niaj uzantoj de pset 7, 771 00:42:46,000 --> 00:42:51,000 unu el kiuj estas David Malan, unu el kiuj nun estas Mike Smith. 772 00:42:51,000 --> 00:42:54,000 Sed nur por esti klara, mi ne bezonas uzi phpMyAdmin, 773 00:42:54,000 --> 00:42:56,000 kaj ja, vi tuj baldaŭ skribi kodon por pset 7 774 00:42:56,000 --> 00:43:01,000 ke aŭtomatigas la procezo de aldoni vicoj, viŝante vicoj, ĝisdatigante vicoj kaj similaj, 775 00:43:01,000 --> 00:43:04,000 do lasu min anstataŭ iri al la SQL langeto tien 776 00:43:04,000 --> 00:43:14,000 kaj tajpu en unuaranga * de studentoj kie 777 00:43:14,000 --> 00:43:18,000 retpoŝto = "malan@harvard.edu." 778 00:43:18,000 --> 00:43:21,000 >> Alivorte supozu nun vi havas 779 00:43:21,000 --> 00:43:26,000 iuj HTML formo, kaj la uzanto tajpas en lia retadreso, inter aliaj kampoj, 780 00:43:26,000 --> 00:43:29,000 kaj la golo nun estas en PHP sur la dorso fino kodo 781 00:43:29,000 --> 00:43:31,000 por fakte serĉi tiu uzanto aliaj detaloj. 782 00:43:31,000 --> 00:43:34,000 Kio estas via kompleta nomo? Kio estas via ID numeron? 783 00:43:34,000 --> 00:43:37,000 Vi povus skribi SQL query kiel tiu, elektu * de studentoj 784 00:43:37,000 --> 00:43:40,000 kie email = "malan@harvard.edu." 785 00:43:40,000 --> 00:43:46,000 Kaj se mi tiam alklakos iru, rimarki ke mi, kaj ja mi, reiri nur unu vico. 786 00:43:46,000 --> 00:43:50,000 Mike estas preterlasita de tiu rezulto aro, kiel la kolekto de vicoj 787 00:43:50,000 --> 00:43:53,000 ĝenerale nomas, ĉar li ne havas la saman retadreson kiel mi. 788 00:43:53,000 --> 00:43:57,000 >> Nun, denove, ĉi tie por pset 7 vi uzos phpMyAdmin kiel administra ilo 789 00:43:57,000 --> 00:44:00,000 kaj pedagogia ilo por lerni vian vojon 790 00:44:00,000 --> 00:44:03,000 tra la mondo de SQL, sed fine de la tago 791 00:44:03,000 --> 00:44:08,000 vi tuj skribos tiujn demandojn ene de reala PHP kodo, 792 00:44:08,000 --> 00:44:11,000 kaj tiel resti agorditaj en Zamyla la walkthrough en aparta 793 00:44:11,000 --> 00:44:14,000 kie vi ricevos tour de la distribuo kodo por tiu problemo aro 794 00:44:14,000 --> 00:44:18,000 kie ni donis al vi ne nur la estetiko por la ensaluta paĝo 795 00:44:18,000 --> 00:44:21,000 kaj la bela sexy logo kiu diras CS50 Financoj, sed ni ankaŭ donis al vi 796 00:44:21,000 --> 00:44:24,000 aron da funkcioj kiu faros vian vivon iom pli facila. 797 00:44:24,000 --> 00:44:27,000 Ni ankaŭ skribis parton de la pset por vi, 798 00:44:27,000 --> 00:44:32,000 la ensaluta parton de ĝi en aparta, por doni al vi la senton de reprezenta dezajno 799 00:44:32,000 --> 00:44:36,000 ke efektive uzas adaptilo, ekzemple, index.php, 800 00:44:36,000 --> 00:44:40,000 login.php kaj similaj, kaj tiam vi vidos la pset havas ankaŭ ŝablonoj katalogo 801 00:44:40,000 --> 00:44:43,000 kiu havas ĉiujn viajn vidpunktojn, ĉiuj de la estetiko. 802 00:44:43,000 --> 00:44:46,000 Kaj tial la entuta laborfluo en pset 7 tuj estos tiu 803 00:44:46,000 --> 00:44:49,000 viaj uzantoj viziti controlador tra URL en foliumilo. 804 00:44:49,000 --> 00:44:53,000 Ke controlador enhavas PHP kodon, kiun vi skribis, kaj ene de via PHP kodo 805 00:44:53,000 --> 00:44:57,000 eble iuj linioj de SQL anidado en inter duoblaj citiloj 806 00:44:57,000 --> 00:45:00,000 kaj pasis al funkcio ni skribis nomis query 807 00:45:00,000 --> 00:45:03,000 kiu helpos vin paroli kun la datumaro sen uzi ion kiel 808 00:45:03,000 --> 00:45:05,000 administra ilo kiel phpMyAdmin. 809 00:45:05,000 --> 00:45:08,000 >> Vi povos skribi SQL deklaroj en PHP kodo 810 00:45:08,000 --> 00:45:11,000 kaj reiri al PHP tabelo de la rezulto aro, 811 00:45:11,000 --> 00:45:14,000 de la vicoj ke fakte kongruas kun tiu demando. 812 00:45:14,000 --> 00:45:18,000 Kaj simile vi povos fari enmetas aŭ forigas 813 00:45:18,000 --> 00:45:22,000 aŭ ĝisdatigoj aŭ similaj, la sintakso por kiu estas sufiĉe simila, 814 00:45:22,000 --> 00:45:25,000 kaj vi vidos el iu linio referencoj, de la dissendo kodo 815 00:45:25,000 --> 00:45:29,000 kaj el la pset paki sin ĝuste kiel irad fari tion. 816 00:45:29,000 --> 00:45:33,000 Realigi finfine ni vere nur skrapi la surfaco de SQL 817 00:45:33,000 --> 00:45:36,000 kaj de MySQL, sed la povo de vere estas ke ĝi liveras al vi 818 00:45:36,000 --> 00:45:40,000 por fokusigi la problemojn vi volas solvi, la uzo kazoj vi volas apliki 819 00:45:40,000 --> 00:45:43,000 sen devi zorgi tiom multe, almenaŭ la komenco, 820 00:45:43,000 --> 00:45:47,000 pri kie kaj kiel stoki kaj sercxi vian datumbazon, 821 00:45:47,000 --> 00:45:50,000 kaj ĉi tiu estas sufiĉe laŭvorte kie Facebook mem akiris lian komenco 822 00:45:50,000 --> 00:45:53,000 uzante MySQL kaj tiam uzanta pli MySQL servantoj kaj tiam pli MySQL serviloj 823 00:45:53,000 --> 00:45:57,000 post nelonge ĝis tiam devis vere komenci pensi malmola pri kiel 824 00:45:57,000 --> 00:46:00,000 vendejo datumoj, kiel memori aĵojn eĉ pli efike, 825 00:46:00,000 --> 00:46:04,000 do eĉ se ni prenos por donita la fakto ke indeksas kaj sola shtata 826 00:46:04,000 --> 00:46:08,000 kaj tiel plu nur laboras tie estas tre interesa konversacio 827 00:46:08,000 --> 00:46:12,000 ke tio povas ĉiu fine kondukos al, do kompreni ke ni simple skrapante la surfacon 828 00:46:12,000 --> 00:46:17,000 de kio povus eventuale por vi aŭ via projektoj fariĝis sufiĉe granda de datumoj. 829 00:46:17,000 --> 00:46:22,000 >> Kun kiu diris, ni fini tie, kaj ni vidos vin proksima semajno. 830 00:46:28,000 --> 00:46:30,000 [CS50.TV]