Даг Lloyd Часам калі мы праграмуем мы робім рэчы так часта, так што часта, і так шмат людзей, зрабіць тое ж idea-- ці ж, рэч, што яна мае імя. MVC менавіта адным з такіх рэч. Гэта называецца парадыгмай праграмавання. Гэта накшталт як лепшыя практыкі якія былі дыстыляванай ўніз людзі спрабуюць нешта зрабіць. У гэтым выпадку ажыццявіць сістэма старонак што карыстальнік ўзаемадзейнічае з на вэб-сайце больш складанай. І гэта робіцца так, што звычайна рэкамендуецца ў якасці стандарту што іншыя людзі маглі б прытрымлівацца, і ёсць вельмі спецыфічны набор спосабаў што можна было б прытрымлівацца гэтай парадыгме. Так, MVC гэта парадыгма, і прычына мы выкарыстоўваем гэта, каб абстрагавацца ад дэталяў ад карыстальніка. Некаторыя рэчы карыстальнік на самой справе не трэба бачыць. Яны проста хочуць, каб мець добры вопыт карыстальніка, і мы не павінны іх мець доступ кожны файл, які існуе на нашым вэб-сэрвэры, магчыма. Там могуць быць некаторыя файлы, якія проста выкарыстоўваецца для ўмацавання карыстацкага досведу, і таму мы можам абстрагавацца ад тых ,. Мы можам роду схаваць іх так карыстальнік не можа працаваць з імі, але нашы pages-- наш pages-- ведаеце, як з імі змагацца і называць іх, магчыма, спатрэбіцца або, хоча, ці нешта падобнае. Асноўная матывацыя для MVC з'яўляецца бяспеку дадзеных, таму што, як правіла, MVC прыходзіць у Кантэкст працы з базамі дадзеных. І ў прыватнасці, мы хачу, каб карыстальнікі ад, непасрэдна ўплываюць баз дадзеных. Мы толькі хочам, каб гэта зрабіць ўскосна, праз наш фільтрацыі. Або, пераканаўшыся, што ўсё ў парадку з нам рабіць трохі праверкі памылак або бяспеку расстойки, перш чым мы адправіць яго ў базу дадзеных, дзе рэчы можа пайсці не так, можа быць, сапраўды так, калі мы не будзем асцярожныя. Так MVC выступае за Model View Controller. Што кожны з іх значыць? У прынцыпе, мадэль вашай базы дадзеных. Гэта месца, дзе ўсё важныя дадзеныя для вашага сайта lives-- імёны карыстальнікаў, лагіны, паролі. І вы можаце абнавіць яго, спасылацца на яго, у значнай ступені ўсё, што, як. Вы б запыт да базы дадзеных, вы спытаеце Інфармацыя з базы дадзеных. Гэта model-- усе з дадзеных, дзе жыве ваш сайт. Выгляд накшталт як карыстацкі досвед. Гэта старонкі, якія яны бачаць пасля яны запыталі інфармацыю. Так, можа быць, яны ўяўляюць Увайсці information-- іх якія яны будуць рабіць у кантролеры, якія мы будзем казаць аб у секунду. Яны, можа быць, прадставіць свае Увайсці інфармацыя, і база дадзеных запытваецца. Інфармацыя запытваецца і выцягнуў з базы дадзеных. І тое, як толькі ўвайшлі карыстальніка у, яны бачаць сваю хатнюю старонку. Гэта выгляд, добра? І тады кантролер гэта тое, што называецца бізнес-логіка вашага сайта. І бізнэс-логіка адзін з тых тэрмінаў, якія з'яўляецца свайго роду слаба-washy-- падабаецца, Што ж бізнес-логіка на ўвазе? У асноўным ваш бізнэс Логіка ваш PHP. Ваша карыстачу не трэба непасрэдна бачыць ваша PHP, але ваш PHP, верагодна, што адбываецца каб рабіць запыты да базы дадзеных. Такім чынам, карыстацкі ўвод воля Інфармацыя ў мэтах, якая будзе інтэграваць кантролер. Маўляў, яны ўвядзіце ў форму. Як, што працэсы ўтвараюць Інфармацыя кантролер. Гэта PHP-гэта на самай справе робіць запыт да мадэлі. І тады мадэль дае Інфармацыя да меркавання, які дае яго карыстачу, мабыць, лепш за ўсё адлюстраваць наступным чынам. Дык вось мы тут. Вось нам злева, і наша мадэль Паглядзець кантролер парадыгма размяшчэнне. Як гэта працуе? User-- us-- робіць Просьба да кантролер. Мы прадстаўляем інфармацыю такія, як з дапамогай формы HTTP. Зыходзячы з гэтага, кантролер-х праца, каб пераканацца, тое, што карыстальнік даў ня тое, што б пашкодзіць мадэль. І таму кантролер збіраецца пераканайцеся, што ўсё ў парадку. Гэта будзе выглядаць вельмі акуратна. Калі ёсць якія-небудзь памылкі, то гэта спыніць рэчы так што карыстальнік не можа атрымаць да мадэлі. Але калі выказаць здагадку, што ўсё ў ОК, і гэта правільны запыт, кантролер будзе запытваць model-- гэта папрашу яго, каб даць інфармацыю. Мадэль будзе прадугледжваць, што Інфармацыя да старонцы Гэта выгляд, гэта будзе перадаць яго, што шлях, і тады выгляд будзе запоўніць інфармацыю прасіў ад мадэлі. Так, напрыклад, калі мы гаворым аб ўваходзе ў вашу старонку Facebook, напрыклад. Выгляд б дадзеныя што выйшаў з мадэлі, ставіцца да сваіх сяброў і навіны карміць або рэчы, як, што, праўда? Але вы не бачыце кагосьці яшчэ. Вы б так getting-- Вы прадставіць запыт, Вы увайсці ў model-- апраўданне я, ты, увайдзіце на старонку. Выкарыстоўвае кантролер Ваш Лагін інфармацыя зрабіць запыт да мадэлі, каб зрабіць Пераканайцеся, што вы, хто вы кажаце, што вы. Падобна мадэлі, добра, ды, вы, хто вы кажаце, што вы, так што дазвольце мне даць вам свой канал навін. Я дам вам зыходныя дадзеныя для Ваш Стужка навін у прадстаўленні, а затым робіць яго выгляд прыгожая, апрацоўвае яго такім чынам, што мы прывыклі, паказваючы што інфармацыя для карыстальніка. Звярніце ўвагу на сувязь, што гэта не існуе на гэтай дыяграме. Там няма прамога злучэння паміж вамі і мадэлі. Там заўсёды гэта буфер кантролер на ўваходных баку, і ёсць буфер глядзець на выходны баку. Можа быць, вы добры чалавек, і таму, магчыма, вам не будзе рабіць якіх-небудзь пашкоджанняў на мадэль, але, можа быць, вы не. Ці, можа быць, ёсць хто-небудзь, хто зламыснік, які б, можа быць, хочаце пашкодзіць вашу базу дадзеных, можа быць, выдаліць усе з вашай базы дадзеных, якія могуць быць вельмі дарагімі. Відавочна, што дадзеныя, якія маюць is-- карыстальнік ёсць значэнне, маючы карыстацкія дадзеныя. І таму, калі мы не ставілі гэты буфер Зона паміж карыстальнікам і database-- карыстальнік і model-- рэчы не можа быць так добра для нас. І таму вельмі важна, каб ёсць дзе гэтую парадыгму карыстальнік можа ўзаемадзейнічаць з базай дадзеных, Вядома, але яны павінны прайсці праз нас каб зрабіць гэта. І гэта асноўная ідэя з MVC. Ён спрабуе рэалізаваць абарону дадзеных. Ён спрабуе абараніць мадэль ад мімаволі або наўмысна зламыснікі. Так што адбываецца, калі мы ўжываем гэтую парадыгму? Ну, мы падзелу дадзеных патрабуецца ад нашай website-- model-- з логікі які рэалізуе наша вэб-сайта functionality-- controller-- і ад простых эстэтыкі і старонкі шаблоны, якія ўтрымліваюць наш Карыстальнік experience-- меркаванне. Што гэта значыць? Ну, значыць, вы можаце зрабіць Выгляд бачныя карыстальніку. Вы можаце схаваць мадэль прэч. І controllers-- карыстальніка не можа, можа быць, непасрэдна маніпуляваць. Ім не трэба, каб атрымаць доступ код PHP. Яны проста павінны ўбачыць форму дзе яны могуць набраць матэрыял ст. Так, можа быць, форма выгляд, кантролер з'яўляецца PHP, што форма ўяўляе, то Кантролер робіць запыт да мадэлі, мадэль дае больш інфармацыі на іншую кропку гледжання, што адлюстроўвае інфармацыю для вас. Вашы праграмы могуць атрымаць доступ да усе бізнэс-логікі, але вашы карыстальнікі не могуць наўпрост доступ да вашай бізнэс-логікі. І адзін асабліва, мабыць, відаць ілюстрацыяй гэтага гэта вы калі-небудзь атрымлівалі 403 Забаронены памылка. Вы калі-небудзь у Інтэрнэце старонка і бачыў 403 Forbidden? Гэта накшталт як 404 Not Found. 403 Забаронены азначае, што вы спрабавалі атрымаць доступ да старонка, што вы не маюць доступу да. Магчыма, сайт выкарыстоўваючы падзел MVC схаваць ад яго бізнэс-логікі, што павінен існаваць на серверы для таго, для старонкі, каб працаваць, але не хачу, каб вы атрымаць доступ да яго. Такім чынам, вы можаце атрымаць 403 Forbidden памылкі. І гэта не мае значэння, нават калі вы ўвайшлі ў сістэму. Ні адзін карыстальнік не можа закрануць гэты файл PHP кропка. Яны могуць дакранацца толькі гэта адно, а гэта одно-- той, які яны могуць, магчыма, touch-- можа ўзаемадзейнічаць з заблакаваным файле больш апасродкавана, чым карыстальнік. Так, мы часам бачым гэтыя дазволы Памылка, гэта 403 Forbidden. Як мы можам змяніць дазволу, каб што рэчы могуць або не могуць быць бачылі? Калі мы робім гэта, як правіла, з'яўляецца выкарыстанне Каманда Linux называецца chmod-- C-H-MOD. Каб зрабіць гэта, што фармат даволі simple-- CHMOD, дазволу, і ўсё, што вы хочаце файл прымяняць гэта змена ст. Так, можа быць, вы ўбачыце нешта як this-- CHMOD 600 helpers.php. Ці, можа быць, вы ўбачыце this-- CHMOD плюс х, што ўключае ў сябе каталог. Быў гэта значыць тое? Так, ёсць два розных спосабу што правы, як правіла, прымяняецца з выкарыстаннем CHMOD. Першы называецца васьмярковай лік метад. Гэта, як правіла, ужываецца дазволу трох розных катэгорый карыстальнікаў адначасова. Так CHMOD 711 файлаў дазволіць вам права чытаць, пісаць і выконваць Ваш файл, дазволіць others-- спецыяльна Ваш гурт і world-- толькі выконваць файл. Гэта тое, што гэта прыводзіць да. Першы нумар ёсць гэта тое, што вы можаце зрабіць, Другі нумар тое, што ваша група можа зрабіць, і па-трэцяе, тое, што свет можа зрабіць. Любы, хто наведвае ваш старонка, гэта свет ,. Якія гэтыя лічбы на самай справе перавесці хоць? Такім чынам, гэтыя ў асноўным перавесці, як гэта. Калі дазвол з'яўляецца нуля, нічога не можа здарыцца. Калі гэта адно, вы можаце выканаць file-- калі гэта Ваша дазвол. Калі гэта два, вы можаце напісаць файл але вы не можаце рабіць нічога іншага. Калі гэта тры, вы можа пісаць і выконваць. І гэтак далей, як вы можаце бачыць. І сем азначае, што вы можаце зрабіць усё. Дык чаму ж гэтыя называецца васьмярковых колькасці? Ну, калі вы думаеце пра гэта, вось як NoEs і Ессеев, і калі мы думаем пра іх а чырвоныя і зялёныя скрынкі, можа быць, што робіць яго крышачку больш зразумела. Але калі мы думаем пра тых чырвоных скрынках як нулі і зялёныя скрынкі як тыя, гэта на самай справе ўсяго камплекта двайковых лікаў, праўда? 000 перакладае ў дзесятковы 0; 001, дзесятковай 1; 010 дзесятковы 2, і гэтак далей. І таму мы называем гэтыя васьмярковых нумары, таму што восем розных магчымасцяў. Ёсць восем розныя лічбы, калі мы гаварыць аб трох біты information-- біт чытання, запіс трохі, і выканаць няшмат. Так што цяпер вы можаце казаць двайковы, дзесятковай, шаснаццатковай, васьмярковай і. Такім чынам, вы ведаеце, як мець зносіны з кампутары ў чатырох розных колькасці сістэм, так што гэта даволі халаднавата. Такім чынам, акрамя васьмярковай Схема дазвол, ёсць Таксама сімвалічнае дазвол Схема, якая трохі адрозніваецца і, як правіла, выкарыстоўваецца ўсё ўжываць або выдаліць дазвол па ўсіх напрамках. Так CHMOD плюс х файл можа дадаць права выканаць, каб усе тры Катэгорыі users-- самастойна, ваш гурт, і свет. Гэта плюс даданне частку. Права выканаць, гэта х. І той факт, што яно прымяняецца да ўсіх тры групы карыстальнікаў будзе а. Так this-- плюс x--, верагодна, будзе каб быць сапраўды такі ж, як CHMOD 711 падаць, таму што, калі вы ідзяце назад і паглядзець на схему васьмярковай, тыя і сямёркі даюць нам Права выконваць файл. Так што гэта, верагодна, тое ж самае. І вы можаце выкарыстоўваць гэта даведнік за тое, што розныя рэчы ў сімвалічная структура CHMOD-тав з'яўляюцца. Зялёныя элементы тут будзе дзе ўсе зялёнага колеру прыклад быў секунду таму. Сіні будзе сіні. Аранжавы будзе аранжавым. Такім чынам, вы можаце звярнуцца да вашага рэчы Група, да іншых, да карыстача, ці для ўсіх. Вы можаце даць ім чытаць, пісаць і выконваць доступ, і вы можаце дадаць або выдаліць або прызначыць менавіта набор дазволаў, выкарыстоўваючы гэтую мадэль. Як мы правяраем тое, што Схема дазвол файла? Перш, чым мы змяніць яго, гэта верагодна, добра ведаеце, на самай справе тое, што дазволу на файлы. Адзін са спосабаў зрабіць гэта, каб запусціць Ls але проста наладзіць яго няшмат. Так што, калі я друкую Ls працяжнік l-- што гэта можа быць у ніжнім рэгістры l-- Я бачу нешта накшталт гэтага. Гэта выглядае трохі загадкавым, але частка, што мы сапраўды клапоцімся аб гэта рэчы злева там. Гэта на самай справе вызначае схема дазвол файла. І вы, верагодна, можа сказаць, таму што гэта атрымаў г-х, ш-х гадоў, і Х перамяжоўваюцца. Гэтыя першыя three-- ігнаруючы першы на секунду, што мы падвоіў назад. Тыя, першыя тры пасля first-- таму другі, трэці і чацвёрты сімвалы з гэтага радка сімвалаў 10 з'яўляюцца правы, якія вы павінны. Такім чынам, відавочна, я магу чытаць, пісаць і выконваць PHP. Я магу чытаць, пісаць, і выканаць PHP WebDev, і я магу чытаць і пісаць test.php. Мая група можа гэта зрабіць. Такім чынам, відавочна з PHP і PHP WebDev каталогі, мая група можа напісаць ім, але нічога больш. І свет не можа нічога зрабіць. Такім чынам, гэтыя файлы не з'яўляюцца публічна даступныя і калі б я паспрабаваў доступ да іх, і я не працуе Apache, каб зрабіць іх даступнымі, то я хацеў бы атрымаць памылку 403. Гэта правал. Я спрабаваў атрымаць доступ да файла, але я не мае дазволу, каб зрабіць гэта. А што гэта першы сімвал? Ну, вы, верагодна, экстрапаляваць тут, што d'ы звярніцеся да каталогаў і працяжнік ставіцца да так званыя "звычайныя файлы." І, можа быць, вы бачылі гэта, калі вы спрабаваў выдаліць файл, выкарыстоўваючы RM. Вы бачылі загадкавае паведамленне "выдаліць звычайны файл" - у гэтым выпадку, гэта было б test.php. Звычайны файл з'яўляецца толькі тое, што гэта не каталог. Ёсць некалькі іншых тут, але, як правіла вы ўбачыце d'ы для каталогаў і нічога для першага элемента. Але што на самай справе ўсё, што з ім. Вы можаце праверыць файл Дазволу, выкарыстоўваючы Ls працяжнік л, Вы можаце змяніць іх, выкарыстоўваючы каманду CHMOD. І, вядома, выкарыстоўваць these-- змена дазволу для забеспячэння выканання гэтага MVC парадыгму абараніць дадзеныя на вашым сайце і не дазваляюць карыстальнікам каб атрымаць доступ да ўсяго, але толькі матэрыял, які яны павінны для доступу да для таго, каб на старонцы працаваць так, як вы хочаце, каб працаваць. Я Дуг Лойд. Гэта CS50.