ДАГ 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.