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