Даг LLOYD: Понекогаш кога сме програмирање ние се прават работите, па често, па често, и толку многу луѓе го стори истото idea-- или исти Како прво, тоа што има име. MVC е токму една таква работа. Таа се вика парадигма на програмирање. Тоа е вид на како најдобри практики кои биле дестилирана надолу со луѓе кои се обидуваат да се направи нешто. Во овој случај, да се спроведе систем на страници дека корисникот се поврзува со на повеќе комплексни веб-страница. И тоа е направено, така што најчесто тоа е препорачливо како стандард дека другите луѓе можеби ќе сакаат да го следат, и таму е многу специфичен сет на патишта која може да се следи оваа парадигма. Значи, MVC е парадигма, и причината ние ги користиме тоа е да се апстрактни далеку детали од страна на корисникот. Некои работи на корисникот навистина не треба да се види. Тие само сакаат да имаат добар корисник искуство, и ние не треба да ги имате пристап до секоја датотека што постои на нашиот веб сервер, можеби. Може да има некои датотеки кои се само се користи за да ја зајакне на корисничкото искуство, и така ние може да се апстрактни оние далеку. Ние може да се вид на нив се кријат, па корисникот не може да се работи со нив, но нашите pages-- нашите pages-- знаете како да се справи со нив и со нив или можеби се потребни, нив, или нешто слично што сака. Примарна мотивација за MVC е безбедноста на податоците, MVC бидејќи обично се јавува во контекст на работа со бази на податоци. А особено ние сакате да се спречи корисници од директно влијае на бази на податоци. Ние само сакаме да го направи тоа индиректно, преку нашите филтрација. Или да се направат сигурни дека сè е во ред со ни прави малку за проверка на грешки или безбедноста проверката пред да да го испрати на база на податоци, каде што работите може да тргне наопаку, можеби навистина во ред, ако не си внимателен. MVC така се залага за модел погледнете контролорот. Што секоја од овие значи? Во суштина, модел е вашата база на податоци. Тоа е каде што сите важни податоци за вашиот сајт lives-- кориснички имиња, најавувања, лозинки. И може да се ажурира, се однесува на тоа, доста се допаѓа. Што би се пребарува базата на податоци, ќе побара информации од базата на податоци. Тоа е model-- сите податоци каде што вашиот сајт живее. Глетката е вид на како корисникот искуство. Тоа е на страниците што тие го гледаат по тие имаат бараната информација. Па можеби и ќе ги достават нивната најава information-- кои тие би го направиле, контролор, која ќе се зборува за во една секунда. Тие можеби ги достават своите информации за најава, и базата на податоци е достапен за. Се бара информации и извлечени од базата на податоци. А потоа еднаш на корисникот најавен во, тие гледаат нивната почетна страница. Тоа е цел, во ред? И тогаш контролорот е она што е повика на бизнис логиката на вашиот сајт. И бизнис логиката е еден од оние термини кои е вид на wishy-washy-- допаѓа, она што го прави бизнис логика значи? Основа на вашиот бизнис Логиката е вашиот PHP. Вашиот корисникот не треба директно да се види вашиот PHP, но вашиот PHP е веројатно она што се случува што треба да се прават барања до базата на податоци. Па влез на корисникот волја информации во поглед на, која ќе се интегрираат со контролер. Како, тие ќе напишеш во форма. Како што процеси форма информации контролорот. Тоа е PHP дека е всушност што го поднесува барањето за моделот. И тогаш моделот дава информации на погледот, кој го дава на корисникот, можеби најдобро се визуелизира како што следува. Па еве сме. Тука ни е на лево, и нашиот модел Аватарот на контролор парадигма аранжман. Како работи? На user-- us-- прави побара на контролорот. Ние достават информации како на пример од страна на HTTP форма. Врз основа на тоа, на контролорот работа е да бидете сигурни дека дека она што корисникот го даде не е нешто што ќе им наштети на моделот. И така контролорот ќе бидете сигурни дека сè е во ред. Тоа се случува да се погледне внимателно. Ако има било какви грешки, тоа ќе престане да работи па така корисниците не можат да добијат на моделот. Но под претпоставка дека се што е Во ред и тоа е валидна барањето, контролорот ќе пребарува на model-- тоа ќе го побара од вас да се обезбедат информации. Моделот ќе се обезбеди дека информации на страница, која е во поглед на, тоа ќе го пренесе дека начин, а потоа и на погледот ќе се доверат на информации побара од моделот. Така, на пример, ако зборуваме за да влезете во вашиот Фејсбук страница, на пример. Погледот ќе биде на податоци кои излегоа на модел кој се однесува на вашите пријатели и на вести сточна храна или такви работи, нели? Но вие не ќе се види некој друг. Сакате бидете getting-- така ќе поднесе барање, ќе се најавите на model-- изговор Мене, ќе се најавите на страната. Употреба на контролорот податоците за пријавување да се направи барање за моделот да се направи Осигурајте се дека сте кои рекле дека сте. Како модел, во ред, да, си кои рекле дека сте, па дозволете ми да ви даде твоите Новости. Јас ќе ви даде на необработени податоци за твоите Новости на поглед, и тогаш тоа го прави гледање убава, тоа процеси на начин дека ние сме навикнати, прикажување тие информации до корисникот. Известување за врската што е не постои на овој дијаграм. Не постои директна врска меѓу вас и модел. Секогаш има овој тампон на контролорот на страната за внесување, и таму е тампон на Поглед на излезната страна. Можеби сте добар лице, а па можеби не би го направил било каква штета на модел, но можеби вие не сте. Или можеби има некој кој е злонамерен корисник кој можеби би сакате да го оштети вашата база на податоци, можеби избришете сè, од вашата база на податоци, што би можело да биде многу скапо. Очигледно, има корисникот is-- податоци има вредност за да ја податоците на корисникот. И така ако ние не се стави ова тампон зона помеѓу корисникот и database-- корисникот и model-- работи може да не се случува, така и за нас. И така е важно да се имаат оваа парадигма, каде што корисникот може да комуницирате со базата на податоци, сигурен, но тие мора да одат преку нас да го направи тоа. И тоа е во основа на идејата со MVC. Што се обидува да ги спроведе за безбедност на податоците. Што се обидува да се заштити модел од ненамерно или намерно малициозни корисници. Значи она што се случува кога ние се применуваат оваа парадигма? Па, ние сме одвојување на податоци бара од нашите website-- на model-- од логиката што го спроведува нашиот вебсајт functionality-- на controller-- и од едноставни естетика и страница шаблони кои го сочинуваат нашиот корисникот experience-- погледот. Што значи ова? Па, тоа значи дека може да се направи гледа видливи за корисникот. Може да се сокрие од моделот далеку. И controllers-- корисникот не може да можеби директно манипулираат. Тие не треба да пристапите до вашиот PHP код. Тие само треба да видите форма каде што може да пишувате работи во. Па можеби и формата е поглед, контролорот PHP е дека формата доставува до, на контролорот прави пребарување на модел, моделот дава повеќе информации до различен став дека прикажува информации за вас. Вашите програми да пристапите сите на вашиот бизнис логика, но вашите корисници не можат директно пристап до вашиот бизнис логика. И еден особено, можеби, видлив илустрација за ова се што некогаш сте добиле 403 Забранетиот грешка. Дали некогаш сте се качил на веб страница и да се види 403 Забранетиот? Тоа е вид на како 404 Не е пронајдено. 403 Забранетиот значи дека ќе се обиде да пристапи страница, која немате пристап до. Можеби тоа е сајт користење поделба MVC да се скрие далеку својот бизнис логиката дека треба да постои на серверот, со цел за страницата да работат, но не го прави тоа сакаат директно да се дојде до неа. Па ќе може да добијат 403 Забранетиот грешка. И тоа дури и не ќе е важно ако сте биле најавени. Корисникот не може да го допре оваа точка PHP фајл. Тие само може да се допре овој, и ова one-- оној што тие можат да touch-- можеби може да комуницирате со заклучен-долу датотека повеќе индиректно од корисникот. Значи, ние понекогаш ја гледаат оваа дозволи грешка, овој 403 забрането. Како ние да ги изменам дозволите така дека работите може или не може да се види? Кога ќе го направите ова вообичаено е да се користи Linux команда наречен chmod-- C-H-МО. Да го направите ова, форматот е прилично simple-- chmod, дозволи, и без оглед на датотеката што сакате да го применат тоа да се промени. Значи, можеби ќе видите нешто како this-- chmod 600 helpers.php. Или можеби ќе видите this-- chmod плус х кој вклучува директориум. Беше значи ова иако? Значи, има два различни начини дека дозволите се обично применуваат со користење chmod. Првата се нарекува октални метод броеви. Ова обично се однесува на дозволи на три различни категории на корисници во исто време. Па chmod 711 датотека ќе ви овозможи право да читате, пишувате, и извршува Вашата датотека, ќе им овозможи на others-- конкретно вашата група и world-- да се изврши само со датотеки. Тоа е она што ова се преведува за да се. Првиот број таму е она што можете да направите, вториот број е она што вашата група може да се направи, а третата е она што може да го направи светот. Секој кој е во посета на вашиот страница, тоа е светот. Што се овие броеви всушност се претвори во иако? Значи овие се преведе во основа како ова. Ако дозвола е нула, ништо не може да се случи. Ако тоа е една, може да се изврши file-- ако тоа е ваша дозвола. Ако тоа е два, можете да ја запишам датотеката но не може да се направи нешто друго. Ако тоа е три, може да се напише и да се изврши. И така натаму, како што може да се види. И седум значи дека може да се направи сè. Па зошто се овие наречен октални броеви? Па, ако мислите дека за тоа, тука е како noes и yeses, а ако се размислува за нив како црвена и зелена кутии, можеби тоа го прави малку појасни. Но, ако ние се размислува за овие црвени кутии како нули и зелени кутии како оние, Ова се всушност само се поставува на бинарни броеви, нели? 000 преведува на децимална 0; 001, децималниот 1; 010 е децимални 2, и така натаму. И така ние го нарекуваме овие октални броеви, бидејќи има осум различни можности. Постојат осум различни бројки, ако ние сме Станува збор за три битови на information-- малку читање, пишува малку, и се изврши малку. Па сега може да зборувате бинарни, децимален, хексадецимален, и октални. Па да знаете како да се комуницира со компјутери во четири различни број системи, така што тоа е прилично кул. Затоа, покрај октални Шемата дозвола, има исто така, на симболичен дозвола шема, која е малку поинаква и обично е најдобар се користи да се применуваат или отстранување на дозвола во одборот. Па chmod плус х датотека Може да додадете точниот да се изврши на сите три категории на users-- себе, вашата група, и во светот. Дека плус е додавање дел. Правото да се изврши, тоа е x. И фактот дека тоа се однесува на сите три групи на корисници ќе биде еден. Па this-- плус x-- е веројатно нема да биде иста како chmod 711 поднесе, бидејќи ако се вратиш назад и погледне во шемата за октални број, оние кои и седум ни даде правото да се изврши некоја датотека. Така што ова е веројатно истото. И можете да го користите овој прирачник за она што разни нешта во симболична chmod-ИНГ структура се. На зелени предмети тука ќе биде каде што сите зелена боја пример беше пред една секунда. Сината ќе биде ведро небо. Портокал ќе биде портокалова. За да може да се примени за да се работи на вашиот група, за да другите, на корисникот, или за сите. Може да се даде да ги прочитате, пишуваат, како и извршување на пристап, и можете да додадете или отстраните или да определи точно сет на дозволи користење на овој модел. Како ние да се провери каква Шемата пермисии е? Пред да го промени, тоа е веројатно се добри за да всушност знаеме што дозволите за датотеката се. Еден начин да го направите ова е да се кандидира на ls но само да го tweak малку. Значи, ако јас напишете ls цртичка l-- тоа е со мали букви l-- можеби Ќе видам вакво нешто. Тоа изгледа малку криптичната, но делот што ние навистина се грижат за е работи на левата страна од оваа страна. Кои, всушност, го одредува шема пермисии. А вие веројатно може да се каже, бидејќи тоа е добив на r, W, и Х, прошарани. Тие први three-- неа првиот за втор, кој ние ќе се вратам на удвои. Оние првите три по на first-- па вториот, третиот и четвртиот карактери на таа низа од 10 карактери се дозволи што го имате. Значи очигледно јас може да се прочита, пишуваат, како и извршување на PHP. Можам да читате, пишувате, и изврши PHP WebDev, и јас може да чита и да пишува test.php. Мојата група може да го направите тоа. Значи очигледно со PHP и PHP WebDev директориуми, мојата група може да напише на нив, но ништо друго. И светот не може да направи ништо. Па овие датотеки не се јавно достапни и ако јас се обидував да се пристап до нив и не бев работи Apache-то за да ги направи достапни, Јас тогаш ќе добиете грешка 403. Тоа е грешка. Се обидов да имаат пристап до датотеката, но јас немаат дозволи за да го направи тоа. И што е тоа што првиот карактер? Па, веројатно може да се екстраполира тука дека D's однесуваат на директориуми и цртичка однесува т.н. "редовни датотеки." А можеби и ќе го видел ова, кога ќе имаме се обиде да отстраните некоја датотека користејќи РМ. Сте виделе на криптичната порака "отстрани обична датотека" - во овој случај, тоа би било test.php. Обична датотека е само нешто тоа не е директориум. Постојат неколку други тука, но, генерално, ќе бидете случува да се види на D за директориуми и ништо за првиот елемент. Но, тоа е навистина сите што има на него. Може да се провери на датотеки дозволи за користење на ls цртичка л, можете да ги промените користење chmod. И, се разбира, користете these-- промена на пермисиите За реализација на оваа парадигма MVC да заштита на податоци на вашиот сајт и не им овозможи на корисниците за да пристапите сè, но само на работи кои им се потребни за пристап со цел за вашиот страница да работат на начин што сакате тоа да работат. Јас сум Даг Лојд. Ова е CS50.