[Powered by Google Translate] [Недела 8, Продолжува]
[Дејвид Џ Malan] [Универзитетот Харвард]
[Ова е CS50.] [CS50.TV]
>> Ова е CS50, така што ова е крај на недела 8 тука.
Ние секако имаше малку ураган претходно оваа недела,
па сега тоа е навистина само тебе и мене во овој аула,
но денес ние продолжуваме нашите разговори за PHP
и за веб програмирање поопшто, и ние исто така, воведе идејата
на бази на податоци, особено оној нарекува MySQL, кој е доста популарни овие денови,
во голем дел, бидејќи на своите приспособливост, како и поради тоа што е бесплатен и отворен код.
>> Но, прво, погледнете каде што застанавте последен пат.
Да се ​​потсетиме дека бевме во потрага по неколку Frosh инстант пораки примери,
и тоа беше страшна форма што дојдов до пред некои 15 + години
со цел да имаат студенти на кампусот регистар за Новак интрамурален спортови
без всушност морале да Trek веќе низ дворот да Wigglesworth
да слајд физичка парче хартија под вратата некои Проктор е.
Наместо тоа, ние се пресели се на интернет, но да го стори тоа ни е потребно да се направи употреба
на неколку технологии, па, ние потребни HTML, HyperText Markup Language,
кој повторно е ова маркап јазик со кој ќе се направи веб-страници структурно.
>> Користејќи малку на CSS овие денови, Cascading Style Sheets,
при што ние ги користиме стилизации на веб-страница со помош на малку поинаков синтакса,
додека HTML е сите за структурата него.
Ние, исто така, треба да се воведе веб програмски јазик.
Во овој случај, ние ќе го користите PHP, и PHP ќе ни овозможи
да се динамички излез содржина, како и направите програмски работи како
испраќање на пораки, како што беше случај на белешка ние замина минатата недела.
>> Потсетиме дека кодот за ова е во 2 дела.
Еден, имавме froshims3.php,
а ова беше во голема мера Селектирај со HTML форма во него,
мал малку на CSS се тука во стилот атрибути
така што во форма себе ќе биде центрирана на страницата, но надвор од тоа
имавме некои репрезентативна форма влезови, текст поле, полето,
некои радио копчиња, изберете Мени и копче поднесе.
И преку оваа форма, ние доставени до датотеката која очигледно беше наречен register3.php,
која се погледна малку нешто како ова.
Сега, повеќето од кодот во register3.php, се потсетиме, беше за сите е-мејл.
Тоа го правеше малку валидација на форма која е поднесена за да бидете сигурни
дека полиња се всушност обезбедени од кои се очекуваше.
Тогаш ние наречен некои PHP функции со користење малку нови синтакса,
иако тоа е позајмена од В
>> Ова arrow оператор ни овозможува да се направи употреба на нешто што се нарекува објектно-ориентираното програмирање.
Ние не би навлегувал во тоа во било детали тука, но знам за сега
тоа е начин на постоење функции поврзани со предмети,
кои се посебен вид на структура, како што видовме во C.
Но, за сега, само да потрае на верата дека ова е точно синтаксата за употреба
кога се користи библиотеката како оваа библиотека PHPMailer.
А потоа до крајот на оваа датотека имавме динамички генерирани е-маил
кои добија испратени до моите jharvard@cs50.net сметка
од мојот jharvard@cs50.net сметка,
и ние го извести корисникот за тоа дека биле регистрирани за овој спорт.
Тоа е доста што Frosh инстант пораки сајт не сите тие години
кога го спроведува, готово, во различен јазик,
но тоа ви покажува можеби моќ што ја имаат
сега дека можете да се изразите себеси не само програмски
на ниско ниво на јазик како C, но на многу повисоко ниво
со овие многу реалниот свет апликации како е-мејл за да всушност се реши
некои проблемите со реалниот свет.
>> Сега, се разбира, иако јас го користам оваа скрипта за да генерирате некои
пораки динамички од jharvard@cs50.net, што е навистина сметка
дека имам пристап до, да биде доста внимателен за испраќање
пошта само од сметки, кои се всушност свој,
да не работи што се во малку топла вода во животот.
Со тоа, вели, ајде сега транзиција кон решавање на различни проблеми заедно,
дека на задржување на држави.
Сега, она што го прави ова всушност значи?
HTTP, овој хипертекст трансфер протокол,
е всушност без државјанство протокол, и што тоа значи е дека
кога ќе се повлече од нешто како Google.com, а потоа притиснете ентер
обично вашиот прелистувач има некој вид на предење икона која потоа
резултати во некои веб страница се симнува,
а потоа таа мала икона запира врти, и дека навистина укажува
дека HTTP има завршено некаква врска со серверот и тоа е тоа.
HTTP е без државјанство во смисла дека тоа не се одржи
постојана врска со серверот на ист начин Skype не
или Gchat не затоа што со HTTP
претпоставката е дека откако ќе Земени веб страница, која е тоа.
>> Сега, во реалноста овие денови на сајтови како Фејсбук и Google Maps
и Твитер и слично, има многу повеќе динамика при
дури и по таа икона ќе престане да се врти вие всушност може да се добие повеќе надградби
од серверот, повеќе твитови, повеќе ажурирање на статусот на Фејсбук и слично.
Но, дури и дека е со користење на техника која ние ќе зборуваме за една недела или две
познат како Ајакс со користење на јазик наречен JavaScript,
но на крајот на денот, HTTP е сеуште без државјанство.
А сепак, ако сакате да некако се сетам на работите за корисникот
дури и откако ќе се исклучи од вашиот сервер
PHP не ви даваат средства за тоа
затоа што, како што видовме последен пат, PHP има голем број на superglobals,
и superglobal е, пак, посебна глобалната променлива
што е предаден на вас од веб серверот и од страна на PHP себе.
>> Вие не треба да се направи нешто да се стави вредности во него,
и меѓу superglobals видовме досега се добие и пост,
која е местото каде полиња се стави автоматски за вас,
како и неколку други кои не сме виделе досега.
Внатрешноста на $ _SERVER некои посебни променливи поврзани со серверот себе.
Што е IP адресата, што протоколот, HTTP или HTTPS не го користите,
она барање метод го користите и како, па има некои интересни,
сочни детали за сервер, и всушност, на корисникот во таму, како и.
Има $ _COOKIE, која е местото каде овие работи вика колачиња се чуваат.
Ние нема да трошат време на колачиња се денес,
но знам за сега тоа колаче е само мал дел од информациите
дека веб серверот може да посади на веб прелистувачот
и пак неговата RAM меморија или хард диск својот компјутер
да ја запази информацијата за корисникот, на пример, нивното корисничко име
така што тие не треба да ја внесете во секое време тие се најавите или некои
единствен број или ознака за кои корисникот
така што ќе не мора да ги закача со истите видови на прашања во врска со
параметри во иднина, но повеќето од интерес
сега е $ _session.
>> Ова superglobal, која, како другите, е предаден на вас автоматски од страна на PHP
кога сте пишување PHP базирани веб-сајтови
може да се сместат нешто што сакате, стрингови, броеви,
лебдечки точки, вредности, низи, предмети,
навистина нешто што сакате, и тоа ви овозможува да ја складира на таков начин
дека дури и ако корисникот ќе посети сега и тогаш
се враќа една минута од сега или 5 минути од сега, бидејќи
тие се земе своето време пред да кликнете на некои други врската
PHP ќе се осигура дека она што ќе се стави во таа седница superglobal
една минута или 5 минути се уште ќе биде таму кога корисникот враќа.
И под хаубата овој superglobal се спроведува по пат на
оние нешта наречени колачиња, но сега за сега, тоа е само апстракција
при што е еден вид на програмски еквивалент на количката.
Што и да, програмер, стави во таа
superglobal асоцијативна низа ќе биде таму некои број на минути подоцна
додека не го избришете или додека корисникот поднесе оставка неговиот или нејзиниот пребарувач заедно.
>> Ајде да ги погледнеме еден пример за тоа како ова нешто е, всушност, се користи.
Во counter.php меѓу парчиња денес на кодот
имаме следнава линија.
На почетокот од оваа датотека имаме еден куп сини коментари, кои се неинтересни за сега.
Но, во линија 13 имаме нова линија,
session_start, и кои, всушност, го прави токму она што го кажува.
Таа започнува сесии.
Тоа ви овозможува да го користите дека голем superglobal $ _session, и тоа е толку едноставно како што.
Сега, ако продолжи да се погледне на линија 16, да се обиде да дознаам што оваа веб страница се случува да се направи.
Ако (isset ($ _SESSION ["контра"]) па ќе одиме напред
и продавница во контра променлива, мали контра,
$ _SESSION ["Контра"].
Ова се чини дека прогласување на локална променлива наречена контра
внатрешноста на кој тоа е ставање на копија на она што е внатре на superglobal
наречен седница на локацијата "контра".
Друго, очигледно, оваа мала локална променлива контра, се иницијализира на 0.
>> Но потоа неколку линии подоцна во 26 забележите дека копија на седницата на шалтер,
нејзините клучни, има нова вредност доделен која е неговата сегашна вредност плус 1.
На кратко, оваа датотека се чини дека е ажурирање
контра која е зачувана во внатрешноста на сесијата superglobal
преку зголемување него од 1, но за прв пат го задржува копија од претходната вредност
од чување на тоа во една локална променлива наречена $ контра,
а потоа надолу тука да видиме што останува.
Излегува дека е доста само HTML.
На дното на оваа страница гледаме во согласност 37 што јас го посетиле овој сајт
контра број на пати, така што неколку интересни опции тука.
Еден, ова е јасно променлива, но тоа не е доволно само да се стави
$ Контра во телото на вашиот HTML бидејќи секако
ако тоа е само таму кај вашиот HTML PHP се случува да се претпостави дека е само HTML.
Вие буквално сакате $ контра да се печатат на екранот.
>> Но, наместо од намалувањето на PHP на владата
со овој дел од синтаксата ние динамички да внесе вредност тука
многу слични во духот со она што го правевме последен пат со
вметнување вредности во низи.
Всушност, ова е само стенографија нотација за велејќи нешто како ова буквално,
печати ($ контра) или дури и нешто како printf (% s, контра),
или дури и како може да се види онлајн или во учебниците,
има функција во PHP наречен ехо
што го прави истото, и сите оние кои се само не досаден начини
да се каже <? =.
Во овој случај не треба да се стави
зборот PHP по прашалник.
Ова е стенографија нотација за, повторно, она што штотуку го видов пред еден момент
која одекнува некои вредност.
>> Ајде да видиме што крајниот резултат на ова навистина е.
Дозволете ми да одам во текот на нашите counter.php датотека,
и ние ќе видите дека Дејвид само направил грешка со играње со кодот таму.
Ајде да одиме поправи она што тој ја зезнав,
и грешка се чини да се биде таму, да го нема, on-line 37.
Според врвот на оваа страница Јас го посетиле овој сајт 0 пати.
Па, ајде да одиме напред сега, и на врвот на прелистувачот кликнете на
Вчитај ја страната повторно икона, и јас кликнете повторно,
и сега сум го посети местото 1 време, 2, 3, 4, 5, 6, 7, 8.
И навистина, ако погледнеме на изворот на оваа страница вистински изворниот код се менува,
и ќе забележите дека целосно отсуство на било PHP, и тоа е затоа што
PHP код се оценува или толкува серверот,
и така тоа значи дека на излезот од скрипта PHP е она што на крајот испраќаат до прелистувачот,
кој во овој случај е некои суровини HTML и некои суровини текст.
Што се случува овде?
>> Па, со релативно неколку линии на код сум во можност да ги чувате
упорно во текот на неколку секунди, или ако чека доволно долго,
минути, дури и часови, некои вредност на начин кој го прави HTTP
изгледа постојани како да сме го задржа
оваа врска до серверот, и тоа е само сеќавањето на она што јас го изјави последен пат,
но во реалноста има еден куп на сложеност се случува под хауба
вклучувајќи колачиња што е овозможување на PHP да ми даде оваа илузија
на овој количката-како карактеристика.
За сега, тривијална пример каде што ние сме само чување на цел број,
но таа карактеристика ќе се вратам да биде од голема вредност
кога ќе почнам да зборувам за посложени проекти,
меѓу нив проблем во собата 7.
Ова е вашиот последен проблем во собата во CS50.
Знам, тоа е толку тажна, но она што ќе најдете е дека ние ќе се заклучи
овој дел на семестар по всушност транзиција
од контекстот на C секако во контекст на PHP
но додека користејќи некои од истите основи
ние разговаравме за некое време.
>> Целта со pset 7 е да се спроведе CS50 финансии,
која е вашата верзија на Јаху финансии или Google Финансии
или дури Etrade.com при што ќе имаат способност да се
гледам нагоре цените на акциите за дадените симболи, но и повеќе од тоа
имате можност да "купи" и "продадат" акции
кои се тргува на различни берзи бидејќи како овој дом страница
тука сугерира, што е навистина до кој степен сме почнале
проблемот во собата за вас, имате најава форма која е барајќи корисничко име и лозинка.
Таа има копче поднесе, но потоа, како што ние на крајот ќе видиме,
не постои ништо навистина се случува под хауба уште бидејќи
останува да се спроведат способност да регистрираат нови корисници,
способноста да се купат акции, да го продаде акции,
всушност да се погледне до тековните цени на акциите.
>> И навистина, тоа ќе биде реалниот свет, како е можно, бидејќи ние го сторивме
вклучуваат малку на кодот кој ќе ви овозможи со една функција
да се пребарува Јаху финансии, кој прекрасно ја прави достапна бесплатно на податоци
за угледување на цените на акциите врз основа на акции симбол или симбол,
и ќе се вратам на тековната цена на денот.
Податоците сте всушност гледаат во оваа pset ќе биде
за што реалниот свет, како тоа може да добие толку дека сте всушност контакти
со реалниот свет акции, реалниот свет цени,
и ќе видиме колку пари можете да направите можеби
во текот на следните неколку дена на игра со свој проблем во собата.
>> Но ајде прво ја постави основата за како да се дизајнира нешто што е сигурно покомплициран
од counter.php, тоа е покомплицирано од било кој од Frosh инстант пораки примери досега,
и да се обидеме да воведе неколку парадигми тука што ни овозможи
и за pset 7 и можеби за последен проект, ако се направи нешто web-базирана
за да одржите вашиот код добро организирани, да си нормален,
и да се преземе чекор кон соработка, без разлика дали во финалниот проект CS50 е
или надвор ако продолжиш да се програмира нешто во иднина.
Има оваа општа дизајн парадигма
по компјутерски науки и во развој на софтвер, општо
познат како MVC, модел погледнете контролорот,
и ова е глупо акроним кој ги опишува многу добра идеја,
што е поделбата на различни аспекти на програмата,
посебно имајќи посебна логика или бизнис логиката на веб-страница
така што нешто што вклучува работи како
повикувајќи функции и доведување во прашање бази на податоци и слично
не се случува меѓу вашите HTML
туку во посебни досиеја, и навистина, не е ова еден фајл
обично кои сте ги нарекува контролер
тоа е навистина мозокот зад работата, а ние ќе видите пример
на овој во само еден миг.
>> Има еден модел кој е програмски код
која прави да разговараат со вашиот бази на податоци, што зборува за Јаху финансии и слично,
и потоа, тука е V во MVC, ставовите,
сите работи кои се поврзани со естетиката, на датотеки кои всушност содржат
вашите HTML, можеби вашиот CSS и слично.
Идејата, како што е оваа слика сугерира, е дека контролорот
е датотека, како што наскоро ќе видиме и како што особено ќе видите во pset 7,
дека светот зборува за преку нивните веб прелистувачи.
Тоа е датотека која добива посети на јавниот интернет,
но контролорот зборува за потенцијално модел,
која е една или повеќе други датотеки кои содржат кодот поврзани со податоци,
кодот поврзани со бази на податоци и слично, а потоа зборува за
контролорот една или повеќе други датотеки познат како ставови,
кои се естетиката на веб страница, шаблони на сорти,
кои би можеле да се преземат некои податоци како влез, но на крајот на денот
само логика во внатрешноста на цел треба да биде рендерирање на податоците,
процесирањето преку телефонска линија, а всушност плукање некои
HTML-базирани препевот од него, па дури и нешто како PDF.
>> Што е убаво за MVC е дека може да има различни ставови
врз основа на видот на уредот, врз основа на видот на формат на датотека дека всушност
посакате да ја прикажете на корисникот.
Ајде да ги разгледаме во неколку постепено се повеќе комплексни и добро дизајниран примери
почнувајќи од прво со верзија 0 тука.
Дозволете ми да оди напред и да се отвори во нашата MVC директориум денес
фајл наречен index.php во директориумот 0.
Забележите ова е супер едноставен и многу underwhelming веб-сајт
тоа е вид на верзија 0 на почетната страница за CS50,
и ќе забележите колку ние имаме врска со Предавања, ние имаме врска со наставната програма,
и ако следете ја врската до Предавања информации дека рачно
до врвот ќе се промени на lectures.php.
Ако јас потоа следете ја врската до недела 1 забележите дека рачно промени week1.php.
Се чини да биде прилично едноставна хиерархиска структура овде.
>> Да го земеме еден брз поглед под хаубата како оваа е изнесена,
и навистина, ако се погледне во index.php тоа е прилично едноставна.
Всушност, иако јас ова го нарече датотеката PHP нема вистински програмски код.
Има еден коментар дека јас го напишав тука во PHP само така што корисникот не заврши видат.
Се разбира, како и досега, она што е во меѓу PHP тагови
добива толкува, дури и ако тоа е коментар, и да се протолкува коментар
значи само да го фрлите на крајот на денот, а не реално
испрати на прелистувачот, па сè тука е само естетика.
Ако јас се отворат слично lectures.php тоа исто така е само хард кодирани датотека.
Тоа се случува да се нарече нешто. PHP,
но тоа е навистина само. HTML, и week1.php, week2.php
слично се само Селектирај, така што еден куп на недостатоците на овој дизајн.
Еден, тоа е огромна сума на copy / paste.
Иако единственото нешто што се менува меѓу овие датотеки е неподреден список,
на Li тагови, јас сепак имаат doc тип, HTML, главата,
насловот, во близина на телото, во близина HTML и повеќе
во секоја датотека, што значи дека ако некогаш сакате да се преструктуира
оваа веб страница или restylize тоа морам да одам и да го промените
сите овие датотеки рачно или со некои големи најдете и да ја замени.
>> Да го земеме еден чекор кон попаметни, повеќе мислејќи дизајн во верзија 1 тука
при што според мене се прочита дека ние сме вклучени, така што ќе може да игра заедно со
овие повеќе лежерно дома известување дека имаме тука
резиме на датотеки во верзија 1 на овој сајт,
и ми се чини дека сум го презема врз себе да се фактор од
некои заеднички код, header.php и footer.php.
Па, ајде да ги разгледаме во она што е внатре првиот од нив.
Header.php изгледа познато,
но забележи каде се се отсечени?
Веднаш по линија 19, па тоа е она што беше заеднички
од датотеки index.php, lectures.php,
week1 и week2.php од претходниот пример.
Она што го правеше беше копија и намалување на сето она што е заеднички за сите оние датотеки,
стави во посебна хедер датотека, и слично, во footer.php
никако не можев да се примени истиот принцип при што само интересни насоки
во footer.php се овие две, во близина на телото и блиски HTML.
>> Но, она што ова значи сега е дека во новата верзија
на index.php информации како многу поедноставно што може да се добие.
Готово, малку повеќе криптичната потрага, малку помалку интуитивен
да го следат врвот до дното, но мојот Бог, сето тоа вишок е сега нема.
Ние бараме користење на PHP функцијата буквално вика бараат до врвот,
што е многу потсетува, да се потсетиме, на на C # include механизам.
Ние бараме header.php на врвот.
Ние бараме footer.php на дното, и единственото нешто што е различно
или посебно за оваа датотека е содржината која е замислена да биде уникатно за неа.
Ако јас потоа оди во, да речеме, lectures.php, истиот принцип се применува.
Повторно, некои коментари до врвот, но тогаш бараат насловот, бараат подножјето,
и помеѓу тоа е само содржина, што е всушност изменета.
И ако ние се загледа во недела 1 и Недела 2 ние ќе ги видиме
дека истиот принцип се применува таму.
Па, ние не сме сосема направи таму.
>> Ајде да ги разгледаме во верзија 2, која има слична структура,
но забележите сега Сум воведе нешто друго.
Во линија 10 Сум воведе helpers.php,
која очигледно содржи помошник функции.
А помошна функција е генерално релативно краток функција
дека ти пишувам за да ви помогнеме во различни места,
и ајде да видиме што е внатре на helpers.php.
Во овој случај, тоа изгледа како да има 2 функции.
Да се ​​потсетиме од пред некој ден со нашите коцка пример
можете да дефинирате вашата сопствена функции во PHP, и она што го направив сега е јас сум
дефинирани функции наречена направи footer и даде насловот,
прв од која зема параметар наречен податоци,
чија Вообичаената вредност е празна низа, како што е предложено тука,
и ние всушност може да напише ова уште посочно во најновата верзија на PHP
велејќи плоштад заградата, затворен квадратни загради.
Тоа значи празна низа на големина 0, но сепак низа.
>> Овој извадок функција е малку посебно во таа
она што го прави тоа е тоа зема како своја аргумент асоцијативна низа
кој има 0 или повеќе клучни вредност парови, и ако имате клуч на foo
и вредноста на бар екстракт функција
создава ситуација во која сега, како на линија 11,
имате локална променлива наречена $ foo чија вредност е бар.
И ако сте имале повеќе клучеви и вредности во низа на податоци,
Слично на тоа тие ќе бидат извлечени во локалната опсегот
или име простор, така што footer.php и
истата идеја долу тука, така што header.php
имаат пристап до овие променливи.
Всушност, дозволете ми да се отвори повторно header.php
и привлече внимание сега како изгледа во оваа верзија.
>> Наместо тешко кодирање CS50 како наслов за секоја страница
забележите динамика што е можно сега.
Во алинејата 5 Јас сум повторувајќи наслов променлива,
но прво сум поминува таа титула променлива на функција наречена htmlspecialchars.
А глупаво име за функцијата, додека тоа е, но тоа навистина го прави она што го кажува.
Тоа гарантира дека специјални карактери
во низа и тоа е се помина во правилно избегале HTML.
Ова е всушност начин на избегнување на нешто што се нарекува Крст Мапа на скриптирање напади
при што некој може злонамерно или случајно
внесе свој HTML код во вашиот веб-сајт
со спојување во некоја форма, на пример,
нешто што не беа сосема очекува, особено JavaScript код,
како што ние ќе зборуваме за една недела или две е време.
>> Ова сега header.php, тоа е поглед
во смисла дека тоа ви овозможува да видите естетски содржината на некои податоци.
Но, поточно, тоа е дефиниција.
Ова е вид на план сега од она што го сакате заглавието на секоја страница да изгледа,
но има некои динамика во кои сакаме титула да биде динамички вметнува
врз основа на насловот променлива
што беше извлечена кога ќе се нарекува, повторно,
на малтерот насловот функција.
Сега, ако ние погледна направат подножјето, има всушност не е многу користење на тоа право сега
бидејќи во footer.php нема динамика она.
Не може да има, но во моментот тоа е тешко кодирани листа на 2 тагови,
но истата идеја се однесува, така што, всушност, сугерира зошто
не ние губиме време има направат насловот и рендерирање подножјето функција?
Дозволете ми да одам, наместо сега во верзија 3,
и во верзија 3 во помагачи решив да ја поедностави уште повеќе.
>> Дозволете ми да имаат еден рендерирање функција.
Дозволете ми да го земам уште еден аргумент, овој пат наречен дефиниција,
која е наменета да биде името на дефиниција,
а потоа ќе concatenate надменно. php да вредност променливата,
а потоа ако постои foo.php, bar.php или header.php и footer.php,
тогаш јас ќе одам да се оди напред и да ја извадиме на променливи податоци
а потоа бараат тој пат.
Со други зборови, да го користите овој сега, ако јас се отвори index.php
забележите дека јас не нарекуваат направат насловот повеќе.
Јас само се јавите направи, но јас помине во цитирана вредност на заглавието
да се направи јасно која дефиниција јас всушност сакаат да се вчита.
>> Потоа овде се забележи она што јас го правам.
Јас сум поминува во динамички клучен за титулата,
вредност на CS50, и ова е премногу, како што видовме претходно,
може да се направи повеќе содржаен во најновата верзија на PHP
каде што може да го замени низа функција со квадратни загради,
кој предлагам е уште читлив и, секако,
малку полесно да напишеш.
И, се разбира, со малтерот подножјето повик на дното,
ние не се мачат поминува во вториот аргумент на сите, без асоцијативна низа,
затоа што таму не е ништо динамичен внатре во тоа подножјето.
Тоа е само некој близок тагови за HTML.
Добро, ние сме преземање чекори за навистина чистење работите тука,
но дозволете ми да се отвори 2 финалето примери.
Оваа една, број 4, напомена дека јас сум направил свесна одлука сега
за подобрување на претходниот пример со конечно користење на некои хиерархија во мојата датотеки.
>> Забележете дека во овој краток преглед, во оваа ми читаат, јас сум воведен
на вклучува директориум и директориумот со шаблони
чии содржини ќе бидат работите што сакаат да се вклучат
и шаблони кои сакам да ги направат, соодветно.
Ова е навистина ми се анален и се обидува да го задржи нешта уредно,
задржи поврзани со датотеки заедно, но крајниот резултат
е дека сега имаме малку tidier подесување, но ние треба да се запамети сега
во, на пример, index.php
кога ќе имаат потреба од датотека helpers.php
ние сега мора да го бара преку вклучува / helpers.php
отколку само велејќи helpers.php бидејќи сега тоа е всушност во суб директориум.
Сега, како настрана, ќе видите во овие примери и некои други
функции како што бараат, бараат еднаш.
Има всушност е самата функција наречена вклучуваат, и сите тие имаат малку поинаква однесување.
Еве јас велам бараат еднаш да се направи супер јасно дека Јас само сакам оние
помошници вклучени во мојот проект еднаш.
Но, ако јас сум внимателна и ако јас сум всушност размислување преку мојата логика правилно
тоа треба да бидат доволни премногу само да се каже бараат до врвот
толку долго како што јас не случајно бараат иста датотека на друго место.
Всушност, ова е малку поефикасен начин на вршење на работите потоа со помош
бараат еднаш, па јас ќе го намали сведува на само бараат.
>> Да го земеме еден чекор понатаму.
Овој последен пример сега, верзија 5, има уште почиста папка хиерархија.
Забележи она што го направив тука за на ме чита во оваа финална верзија
е сега имам HTML директориум, која имав сето ова време,
но во внатрешноста на таму сега е само index.php, lectures.php,
week1.php и week2.php.
На вклучува именик сега живее заедно на HTML директориум,
па на исто ниво како брат, така да се каже.
Така и папката со шаблони.
Клучот готова брза тука е Сум воведе малку повеќе структура,
но клучна карактеристика сега е дека само на датотеки
што треба да биде веб достапни, јавно адресибилен
од рачно на јавниот интернет се во мојот HTML директориум.
>> Во меѓувреме, други датотеки, helpers.php, footer.php,
header.php, кои се веројатно можеби и повеќе чувствителни,
можеби помошници всушност има некои кориснички имиња и лозинки или некои интелектуална
имотот на рудникот, функционира Јас навистина не сакате светот да види, дури и ако случајно.
Тоа е добра практика да ги задржи надвор од јавниот HTML директориум
сите датотеки што не се треба да биде јавно.
Сите што треба да направите во овој случај кога гледа во, на пример,
директориумот HTML е index.php датотеката,
забележите ние само треба да биде малку повеќе внимателен кога се бара
или да бараат еднаш оваа датотека.
Ми треба прво да се направи .. да се оди кон главниот директориум,
тогаш не / вклучува / helpers.php
да се нурне назад во за да го добиете датотека што се грижат за.
>> Било какви прашања, тогаш на MVC
или овој релативно едноставна инкарнација од него?
И дозволете ми да го направи јасно дека ние се фокусиравме доста на
V тука, ставови и факторинг од овие шаблони.
Ние не сме навистина разликува М од C само уште.
Всушност, навистина не е М тука, па дури и нашите Ц,
контролор, не е навистина прави сето тоа многу, но ќе добиете многу повеќе
запознаени со двете од овие 2 букви од MVC,
или подобро кажано, ќе добиете многу повеќе запознаени со C
во MVC за проблемот сет 7, така што повеќе од тоа на хоризонтот.
Прашања?
Има всушност никој тука.
>> Океј, ајде сега се движи кон втората и последна тема за денес.
Тоа е воведувањето на базата на податоци.
До овој момент имавме неколку начини на чување на податоци.
Ние се користи променливи.
Назад во нашата Ц датотека, I / O дискусија почнавме користејќи текстуални датотеки
и користење на датотеки како fprintf, а потоа ние дури отворени
зборуваме за CSV датотеки малку, одвоени со запирки вредности,
па сите овие ни овозможи да имаат податоците зачувани
или не-постојано или трајно.
Но, дури и CSVs не се навистина погодна за пребарување
и вметнување и бришење.
Тоа е навистина само глупав текст фајл одделени со запирки
ред по ред од ред по ред, па ако сакате да го
барај таа датотека најдобрите можете да направите навистина е линеарно пребарување.
Ќе мора да почнат на врвот на датотека, да се прочита целата работа во,
и да бараат за некои вредност на интерес.
Ако сакате да го вметнете во тоа што треба да го прават истото,
процесирањето над неа и вметнување во одредено место,
и во фактот, што треба да направите сите од пребарувањето логика себе.
>> Вие не може да направи умен шема појавување на CSV датотека освен ако не се напише код.
Вие не може да направи филтрација на CSV датотека
освен ако не се напише код.
Зарем не би било убаво ако некој друг се стави во сите напори
всушност да се направи во потрага лесно и вметнување лесно
и бришење и ажурирање и така натаму?
Тоа е токму она што базата на податоци е.
SQL, структуриран јазик за пребарување, е уште еден јазик
дека ние сме за воведување тука денес, но тоа исто така е прилично достапни,
и она што ние навистина се случува да направите е само да извади надвор од неа некои од најпознатите истакнатите
карактеристики, така што за pset 7, и ако се направи нешто веб-базирани,
твојот последен проект, ќе имаат способност да се изразите себеси
во однос на податоци пребарувања.
Имате способност да складира малку или многу податоци
во многу структурирана на начин што ќе на крајот на денот
направи вашиот живот полесно, бидејќи со SQL можете да се изразите себеси
многу попрецизно, многу повеќе методично со цел да се
да се вратам на некои подмножество на податоци од еден поголем корпус на податоци.
>> Можете да мислите на базата на податоци, во овој случај, SQL база на податоци, навистина ми се допаѓа Excel
или броеви каде што тоа е табеларни пресметки,
или можеби повеќе табеларни пресметки, и табеларни пресметки, се разбира,
има редови и колони, а тоа е затоа што
SQL бази на податоци се релациона, релациона во смисла
дека тие зачувуваат податоците во однос на овие табели,
редови и колони.
Тие се повисоки вршење отколку нешто како табела,
и табела е наменета да се користи од страна на човекот.
База на податоци е наменета да се користи од страна на програмерот
пишување код против него, па инкарнација на базата на податоци
ќе биде или командна линија.
>> Еден од најпопуларните релациони бази на податоци таму е, пак, MySQL,
која е прекрасно бесплатно, многу високо ефикасната, и тоа е она
Фејсбук користи многу рано и до одреден степен уште денес
за да ја запази многу од своите податоци, а ние ќе се види во еден момент
дека користењето на релативно едноставни команди
ние може да изберете податоци, внесете податоци, податоците за ажурирање
бришење на податоците и слично, но за среќа, има повеќе user-friendly интерфејс
отколку само пишување на црна и бела линија овде.
Ќе искористиме за pset 7 и пошироко бесплатна алатка наречена phpMyAdmin.
Името е случајно.
Алатката се случува да се имплементираат во PHP,
но тоа е фундаментално ирелевантни.
Што е корисна за phpMyAdmin е дека тоа е веб-базирана алатка.
Ние го пре-инсталиран во уредот за вас,
и со него можете да креирате табели во базата на податоци,
можете да внесете податоци, бришење на податоците, и, генерално, види
Вашите податоци во прилично лесен за животната средина.
Вашите корисници не се случува да го користите phpMyAdmin.
>> Ова е навистина само административни или инвеститорот алатка
со што да се види и ѕиркаат наоколу вашите податоци и да дознаам како да го структурираат,
многу како тебе себе да го користите Excel или броеви,
но тоа нема да биде одличен начин на визуелизација на она што се случува под хауба
така што ќе може да се фокусира на интересни за решавање на проблемот, а не толку
на таинствениот команди.
Ајде да ги погледнеме еден пример на податоци кои можат да бидат зачувани tabularly
во релациона база на податоци.
Еве еден таков пример.
Сега, за жал, phpMyAdmin погрешил од страна на фрлање начин премногу зборови
и графика во вас, но ако брус во само врз основа на
ID колона, име на корисник колона, и хаш колона,
ова е ефективно табеларни пресметки, но тоа се случува да биде програмка
на табелата во внатрешноста на уредот
користење на датотека која ќе ви обезбеди со во проблем сет 7.
>> Конкретно, ние ви даде датотека која претставува
на корисникот маса, па табела содржи корисници со 3 колони,
од кои едниот е единствен број почеток во 1 и се зголемува потоа.
Втората колона е корисничко име и оние од вас кои не Хакер,
на Хакер издание за pset 2, може да се препознае некои од овие кориснички имиња барем.
Од десната страна се лозинки, но тие не се буквално лозинки.
Тие се хашови него, така излегува
дека складирање на лозинки во база на податоци е навистина лоша идеја.
Вие сте сите веројатно читаат во одреден момент од некој сајт
или база на податоци некои компанијата се компромитирани, а потоа ќе мора да
промена на вашата лозинка, треба да добие наплата на работите
затоа што некои на лошо момче всушност влегле во вашиот профил, како резултат.
>> Чување на лозинки во чист текст, енкриптирани во базата на податоци
е целосно упорит, а сепак тоа е многу смешен
потоа да прочитате за некои многу познати компании
понекогаш во печатот чии бази на податоци се компромитирани,
и тој дел не е смешно, но фактот дека бази на податоци содржи енкриптирани
лозинки е смешно, бидејќи буквално со една линија код
може да се заштити против таа закана, и тоа е она што ние го направивме овде.
Дури и за нашите лажни малку CS50 финансии верзија
ние сме енкрипција на лозинките само за добра мерка, како и фактот дека
сите овие лозинки започне со $ 1 $ е само конвенцијата.
Тоа само значи дека тие се шифрираат или навистина hashed,
кој е како еден начин енкрипција функција
при што не можете да ги променат своите ефекти со нешто што се нарекува MD5.
>> Фактот дека 50 е по тоа значи дека сол вредност
од 50 се користи за hashing сите овие лозинки освен еден.
Рудникот, се разбира, како што можете да видите има, ха,
беше со користење на различни сол, па оние од вас кои добија малку сопнат
можеби во Хакер 2, што би можело да е резултат на нашата ја користи
различни хаш од другите затоа што мојата лозинка е всушност истиот
како некој друг корисник, таму горе.
Всушност, ако сте биле чека сите овие недели за да дознаете
она што тие лозинки беа тука беа лозинки кои сте биле оспорени
да попуштат во Хакер издание на проблемот во собата 2, па ниту премногу слабо.
Всушност, malan беше иста како jharvard,
но ако се вратиме тие изгледаа поинаку.
>> Се фокусира на jharvard во црвено, бидејќи тие се солени поинаку.
Алгоритам е разтревожен во начинот на кој
hash вредност, шифрирана вредност изгледа малку различни
бидејќи влезови беа малку различни, но лозинка под хаубата
уште беше на крајот црвен.
Сега, кој се грижи за ова?
Па, ние сме обезбедување на вас со примерокот корисници, мостра кориснички имиња
и хашови на лозинки, така што ќе всушност имаат некои
клиенти за CS50 финансии кога за прв пат се симне на земјата со вашиот код.
Ќе мора да се спроведат повеќе табели во внатрешноста на MySQL, во внатрешноста на базата на податоци.
Ќе мора да се создаде повеќе табеларни пресметки, ефикасно, но ние одлучивме да ви даде оваа
за да го започна, и ќе видите дека проблемот сет спецификација
шета низ процесот на увоз на оваа табела
и, исто така, објасни она што некои од карактеристиките се,
и ти исто така ќе видите дека ќе ви обезбеди со кодот
да се справи со hashing или енкрипција на овие лозинки,
така да не треба да се грижите премногу за она што MD5 или слично е всушност за сите.
>> Значи, SQL, структуриран јазик за пребарување.
Ова е, доста едноставно, јазикот ние сме за да започнете да го користите во pset 7
а можеби и пошироко да бара податоци од некоја база на податоци.
Податоците се, повторно, се чуваат tabularly во овие релациони табели, колони и редови,
но со користење на некои релативно едноставна синтакса како бришење,
вметнете, ажурирање и изберете можеме да направиме токму тоа.
Ние може да го избришете од базата на податоци, внесете,
ажурирање на податоците, како и одберете, тоа е, добивање на податоци од базата на податоци.
Како ние да се обратите за тоа?
Дозволете ми да оди напред во уредот.
Дозволете ми да се повлече до http://localhost,
која, пак, е локалната апаратот себе.
Тоа е неговата основна прекар.
И дозволете ми да одат во / phpMyAdmin.
Ова се случува да биде специјален URL дека уредот е конфигуриран за да се разбере
кои веднаш ме побара корисничко име и лозинка.
>> Како и обично, јас ќе одам да напишеш jharvard и црвено,
но сфати дека е администратор на компјутерот.
Тоа е само коинциденција што таму е исто така jharvard регистрирани за CS50 финансии.
Jharvard, црвен, внесете ми дава кориснички интерфејс што сме го виделе
увид пред еден момент, а тоа е малку преголема во прв,
но остатокот увери, вие никогаш не ќе мора да кликнете на повеќето од линкови во оваа алатка.
Ќе заврши помош на мала подгрупа дека се супер корисни,
од кои првата е бази на податоци се тука.
Ако одам до бази на податоци, информации дека сум побарано да создаде база на податоци.
Ова е како создавање на нови Excel датотеката, ефективно.
Одам да се оди напред и да се јавите на ова предавање, а јас сум само ќе го игнорираат областа таму, споредување.
Тоа има врска со претставување на податоците во него,
и јас одам да кликнете создаде, и сега забележите како што јас нека одат на создавање
на левата страна каде што вели дека нема бази на податоци
Јас наскоро треба да го видите на предавањето база на податоци.
>> Ако јас сега кликнете на левата страна, предавањето база на податоци,
забележите мојата јазичиња се промени малку.
Имам структура, SQL, извоз, увоз и некои други работи.
Структура е прилично празно.
Не маси се наоѓаат во базата на податоци, како што се вели овде,
па ајде да се создаде маса, и да одиме напред и да се создаде маса
како на студентите, и колку колони сакаме?
Да ја задржите оваа едноставна, и ајде рекорд за секој ученик
лична карта број, име и е-маил адреса.
>> Ќе го чувам едноставен како што, па 3 колони, оди.
Форма што го гледате тука е сега малку неуредна и големо,
но ние едноставно мора да одат преку него ред по ред, па навистина брзо, да даде
првата колона во оваа база на податоци име на проект за единствен идентификатор.
Тоа ќе биде цел број. Јас всушност може да го игнорира должина и вредности.
Еден int ќе биде 32 бита, без разлика што ќе напишете таму, па ајде оставете го празно.
Вообичаената вредност, би можел да направи нула, како што е дефинирано.
Одам да го оставиме тоа сам. Да не се грижите за стандардните вредности.
Ајде дојдете овде кон десно, атрибути.
Ова е интересно.
Ајде да одиме напред и малку произволно да се каже дека ИД мора да биде потпишан.
Да не отпадот во секое негативни броеви.
>> Ајде да одиме 0-4000000000, или дава да потрае,
а потоа нека не допре било кој од овие области само уште таму,
но тогаш дозволете ми да напишете име долу тука,
а потоа и беше маил, така што се фати е-маил
и името, очигледно не цели броеви, па ајде да ги промените овие во различни поле.
Излегува varchar, променлива должина знак,
е како стринг во SQL база на податоци
но со променлива должина, а вие всушност треба да го кажам однапред
Максималната должина на стринг, па ќе одам да се донекаде произволно
од конвенцијата тип 255 карактери.
Јас целосно може да се каже 32. Јас може да се каже 1.000.
Можете вид на потреба да одлучува за себе врз основа на вашите демографијата што е
најдолго студентот име и одат со тој број или малку поголеми,
но она што е убаво за varchar е дека нема да загубиме
255 бајти за името секој студент.
Ако тоа е ДАВИД тоа не се случува да се користи целиот 255 бајти,
но тоа е горна граница, па јас ќе одам со 255 само од Конвенцијата,
но ние би можеле да дебатираат дека за да биде некои пониска вредност, и за е-мејл адреса
само за да биде доследен 255, но повторно, би можеле да ја имаат истата дебата.
Но, јас ќе одам да направите една друга работа овде на десната страна.
>> Што е моќен за базата на податоци е тоа што таа може да направи многу за кревање на тешки предмети
или сложена работа за вас.
Особено, јас навистина не се грижат што ID броеви мојот студентот се.
Тоа е само замислена да биде единствен идентификатор во базата на податоци
па имам 32-битна кратка претстава на што студентот
така што имам некој начин на уникатно ги идентификува
да нема 2 Давидс, на пример, во една класа.
Всушност, јас одам да се провери ова поле АИ, авто прираст,
така што базата на податоци, MySQL, фигури
она ID секој ново вметнува студентот ќе биде.
Јас дури и не мора да се грижи за тоа во мојот код,
и јас сум исто така, ќе избере нешто под индекс мени.
Индексот паѓачкото тука е основното, уникатен,
индекс и полн текст.
Вие можеби може да се погоди она што неколку од овие работи се,
но излегува во релациони бази на податоци
сте програмер или базата на податоци администратор дојде до превентивно
даде совети на базата на податоци за тоа што полиња
во табелата се малку посебно.
>> На пример, во овој случај, ќе одам да се каже дека ID
ќе биде примарна индекс, инаку позната како примарен клуч.
Што ова значи по дефиниција е дека ID отсега
уникатно ќе се идентификуваат студентите во оваа табела.
Не студентот ќе имаат ист број, бидејќи јас сум наметнување на ова ограничување или овој индекс.
Исто така, она што ова се случува да направите за мене е тоа се случува да кажам
MySQL, дека проект е посебен.
Јас се грижат особено за проект, па оди напред и да направи магија вашите фенси податоци структурата,
изгради некаков вид на дрво.
Обично тоа е нешто што се нарекува B-дрво, кое ние не гледам недели,
но тоа е друга таква податочна структура слични во духот со бинарни дрва
и се обидува што ние погледна, но тоа се случува да се каже
до базата на податоци ова поле не е толку важно што јас веројатно
сакате да бидете во можност да пребарувате на тоа, повелете и да се изгради некои фенси
податочна структура во меморијата за да се забрза пребарувања, така што идеално
тие се постојани време или барем блиску до тоа што е можно
така што тоа не префрлат во линеарно пребарување, што не ќе биде
најмногу висока вршење на пристап.
Спротивно на тоа, е-мејл адреса можеше да биде примарен клуч.
>> Во теорија, е-мејл адреса на секого е единствен, освен ако не сте споделување на некои сметка,
но тоа е генерално не е добро да се користи нешто како стринг
како примарен клуч, бидејќи ако неговата цел во животот е да се идентификуваат уникатно
редови во вашата маса нема причина да се користи 255 бајти максимално
да се идентификуваат уникатно некој ако може да се извлечеш со само 4 бајти
или 32-битен int.
Во принцип, примарен клуч треба да биде краток и содржаен
и идеално нешто како целобројна или голема int, кој се случува да биде 64 бита.
Но е-мејл адреса треба да биде уникатен и една од карактеристиките на базата на податоци е премногу
е да се спроведе уникатност за мене.
Со избирање на уникатен тука до е-маил, иако самата е-мејл
се scrolled надвор од екранот, сакам да кажам дека на базата на податоци
не ми верувате.
Не дозволете ми да внесете во базата на податоци
истиот е-мејл адреса двапати, дури и ако сум идиот и не сум
многу добар со моите IFS и друго IFS и вистински PHP код
и јас случајно ги споделите на корисникот регистрирате со постоечки е-мејл адреса
базата на податоци е уште еден ниво на одбраната за исправноста
за да се осигури дека таа дупликат-мејл адреса нема да заврши во табелата.
>> Сега, пак, за името што веројатно не сакаат да го направат тој единствен
затоа што тогаш никогаш не би можело да биде 2 Давидс или 2 Мајк Смит, на пример,
во вашата база на податоци, така што ние само ќе остават на мира.
Одам да се оди напред и да кликнете спаси долниот десен,
и сè изгледа добро, но информации се тука
ова е делот кој сега за сега ние не ќе потроши премногу време за
бидејќи синтакса е малку комплексна, и ние не треба да креирате табели
сите кои често, но SQL себе е јазик,
синтаксата за кои е тука дека јас сум истакнат.
Што phpMyAdmin навистина го прави е тоа создава веб-базирани GUI за вас
со кој можете да заштедите време и не мора рачно да напишете надвор
прилично долго SQL query се допаѓа.
>> Со други зборови, ако си сакал да рачно да креирате оваа табела,
или во тоа црна и бела линија или дури и во phpMyAdmin
со користење на оваа друга табот, ова јазиче SQL каде што можете да напишете во било SQL queries
сакате, искрено, ова ќе ме земе една минута
за да всушност се сеќавам на целата синтакса, па дури и тогаш јас најверојатно ќе има
направи некои грешки, па оваа алатка е корисна за работи како што, и тоа е исто така конструктивно.
Можете да почнат да заклучиме она што на синтаксата е
само со убав боја кодирање дека phpMyAdmin е додавање
за нашата визуелна удобност.
Но сега да го направите ова, наместо.
Пушти ме да вметнете јазичето на врвот, и дозволете ми да оди напред и да ја вметнете на пример
лична карта на да речеме-всушност не ми е грижа.
Тоа ќе авто прираст. Одам да ги споделите со базата на податоци да се справи со ова.
Но ќе бидам Давида, и мојот е-мејл треба да биде malan@harvard.edu.
>> Ајде да одиме напред тука и го стави во Мајк Смит како уште еден.
Јас ќе си даде презиме, како и,
и ние ќе си го биде smith@example.com,
а потоа каде можам да одам наредната?
Па, тоа изгледа како движење е копчето за да кликнете, и Voila.
Забележите на врвот 2 реда вметната.
Ова е вистински SQL упит.
Тоа е phpMyAdmin алатката погубен за мене,
но крајниот резултат, известување, ако јас сега одам на јазичето пребарувате,
е да се види 2 реда во оваа табела, многу потсетува естетски
на табелата видовме порано за нашите корисници од pset 7,
еден од нив е Дејвид Malan, од кои едниот сега е Мајк Смит.
Но, само за да биде јасно, не треба да користите phpMyAdmin,
и навистина, си оди за да наскоро се пишува код за pset 7
дека го автоматизира процесот на додавање на редови, бришење редови, ажурирање редови и слично,
па да ми наместо да одат на SQL табот се тука
и тип во select * from студентите каде
e-mail = "malan@harvard.edu."
>> Со други зборови Претпоставувам дека сега имате
некои HTML форма, и корисникот видови во нивниот е-мејл адреса, меѓу другите полиња,
и целта сега е во PHP на задниот крај код
всушност да се погледне до други детали кои корисникот.
Што е вашето целосно име? Што е вашиот матичен број?
Можете да напишете SQL упит вака, одберете * од страна на студентите
каде внесувачот = "malan@harvard.edu."
И ако потоа кликнете оди, забележите дека јас треба, и навистина ми се, да се вратат само еден ред.
Мајк е испуштена од овој резултат во собата, како збирка на редови
е генерално се нарекува, бидејќи тој не ги имаат истите мејл адреса, како мене.
>> Сега, пак, тука за pset 7 ќе користите phpMyAdmin како административна алатка
и педагошка алатка за да дознаете вашиот начин
во светот на SQL, но на крајот на денот
сте ќе треба да се пишува овие прашања во внатрешноста на реалните PHP код,
и па Stay tuned во Walkthrough Zamyla во одредена
каде што ќе се добие турнеја на дистрибуција код за овој проблем сет
каде што ние ви даде не само естетиката на страната за логирање
и убаво секси логото што вели CS50 финансии, но ние сме, исто така, ви даде
еден куп функции кои ќе направат вашиот живот малку полесно.
Ние, исто така писмениот дел од pset за вас,
Влезот дел од неа особено, да ви даде чувство на претставник дизајн
кои, всушност, користи контролорот, на пример, index.php,
login.php и слично, а потоа ќе видите pset исто така има директориумот со шаблони
кој ги има сите на вашите ставови, сите на естетиката.
И така целокупната работа во pset 7 ќе биде дека
Вашите корисници посетите контролер преку рачно во прелистувачот.
Тоа контролер содржи PHP код кој сте го напишале, а во внатрешноста на вашиот PHP код
може да се некои линии на SQL вгнезден помеѓу двојни наводници
и помина на функцијата ние напиша наречен пребарување
кои ќе ви помогнат да разговараат со базата на податоци, без користење на нешто како
административна алатка како phpMyAdmin.
>> Вие ќе бидете во можност да пишувам SQL извештаи во PHP код
и да се вратам на PHP низа на резултатот во собата,
на редови што всушност одговара дека пребарување.
И слично, ќе бидете во можност да го стори внесува или брише
или надградби или слично, синтаксата за кои е прилично слични,
и ќе видите од некои онлајн референци, од распределбата код
и од pset се спакуваат точно како да одат за тоа.
Реализираат на крајот ние сме навистина само гребење по површината на SQL
и MySQL, но моќта на тоа навистина е тоа што ви го ослободува
да се фокусираат на проблемите дека сакате да го реши, употреба случаи сакате да се имплементираат
без да се грижите толку многу, барем на почетокот,
за тоа каде и како да ги чувате и пребарување на вашиот бази на податоци,
и ова е буквално каде Фејсбук себе го доби својот почеток
користење на MySQL и потоа со употреба на повеќе MySQL серверот, а потоа повеќе MySQL сервери
пред долго додека тие потоа мораше да се навистина почнат да размислуваат тешко за тоа како да
зачувување на податоци, како да ги чувате работите уште поефикасно,
па иако ние ќе земе здраво за готово фактот дека индекси и единствен ограничувања
и така натаму само работат таму е многу интересен разговор
дека ова може сите на крајот да доведе до, па сфати дека ние сме само гребење по површината
на она што би можело на крајот за вас или вашите проекти станаа доста големи податоци.
>> Со тоа, вели, ајде да завршува тука, и ќе се видиме следната недела.
[CS50.TV]