DOUG LLOYD：有时 当我们编程
我们做事如此普遍，所以 频繁，所以很多人
照此idea--或相同 的事情，它有一个名字。
MVC是只有一个这样的东西。
这就是所谓的一个编程范例。
这有点像一个最佳实践 已蒸馏向下
人们试图做一些事情。
在这种情况下，实现 的网页的系统
该用户与交互 在一个更复杂的网站。
而且它这样做通常是 我们建议作为标准
其他人可能会喜欢跟随， 并有一个非常具体的方法
一个可以遵循这种模式。
>> 所以，MVC是一个范例，并且其原因 我们用它抽象掉的细节
从用户。
有些东西用户 并不真正需要看到的。
他们只是想有 良好的用户体验，
我们并不需要让他们 访问每一个文件，该文件
存在我们的Web服务器上，也许吧。
可能有一些文件，这些文件只是 用来增强用户体验，
所以我们可以抽象那些离开。
排序我们可以隐藏他们， 用户不能与他们合作，
但是我们pages--我们pages-- 知道如何对付他们
并呼吁他们或者需要， 希望他们，或者类似的东西。
>> 主要动机 对于MVC是数据安全性，
因为MVC通常出现在 使用数据库的情况下。
特别是我们 要防止用户
从直接影响的数据库。
我们只希望间接地做到这一点， 通过我们的过滤。
或者，确保一切正常通过 我们做错误检查的一点点
或之前安全打样我们 它发送给数据库，其中
事情会出错，也许是 真的错了，如果我们不小心。
>> 所以MVC表示模型视图控制器。
什么是所有这些意味着什么？
基本上，模型是你的数据库。
这其中所有的 为您的网站的重要数据
lives--用户名，登录密码。
你可以更新它，提到它， 几乎所有这样的。
你会查询数据库，你问 从数据库中的信息。
这是该型号 - 所有的 数据在您的网站的生活。
>> 该观点是有点像 用户体验。
这之后，他们看到的页面 他们所需的信息。
所以也许他们提交 他们登录information--
他们会做一个控制器， 我们将在第二讲。
他们也许递交 登录信息，
和数据库查询。
信息请求和 从数据库中抽取。
然后，一旦用户的登录 在，他们看到自己的主页。
这是一个观点，好不好？
>> 然后，控制器是什么 叫你的站点的业务逻辑。
而业务逻辑 这些术语的一个
是那种空洞无washy--喜欢， 是什么商业逻辑是什么意思？
基本上你的业务 逻辑是你的PHP。
您的用户不需要 直接看到你的PHP，
但你的PHP大概是怎么回事 到发出请求到数据库。
>> 因此用户输入 在一个视图的信息，
其中将集成控制器。
就像，他们会输入到表格。
如何这种形式的进程 信息是控制器。
这就是PHP这实际上 发出请求到模型中。
然后将模型给出 信息到视图，
这使得它给用户， 也许是最好的显示如下。
>> 因此，我们在这里。
下面是我们的左边，我们的模型 视图控制器模式安排。
它是如何工作的？
>> 该user-- us--使 请求到控制器。
我们提交资料 如由HTTP形式。
在此基础上，控制器的 工作就是要确保
什么给用户不是 的东西，会损害模型。
这样一来，控制器会 确保一切正常。
这将非常仔细地看。
如果有任何错误，它会停止的事情 因此用户无法进入该模型。
>> 不过，假设一切都 OK，这是一个有效的查询，
控制器将查询型号 - 它会要求它提供的信息。
该模型将提供 信息的页面，这是一个观点，
它会传送它的 方式，然后在视图
将填充信息 从模型请求。
>> 因此，举例来说，如果我们谈论 有关登录到你的Facebook页面，
例如。
该视图将数据 说出来的模型是
指的是你的朋友和新闻 饲料或类似的东西，对吧？
但是，你不会看到别人的。
>> 你会getting--所以 您提交的查询，
您登录到该型号 - 借口 我，你登录到该页面。
控制器采用 您的登录信息
提出请求的模型，使 确保你是你说你是谁。
该模型的想，好，是的， 你是你说你是谁，
所以让我给你的新闻源。
我给你的原始数据 你的新闻源的观点，
然后在视图使它 漂亮，处理它的方式
我们已经习惯了，显示 该信息提供给用户。
>> 请注意，连接这 不存在这个图上。
有没有直接的关系 你和模型之间。
总是有这样的缓冲 在输入侧的控制器，
并有的一个缓冲 查看输出侧。
>> 也许你是个好 的人，所以也许你
不会做的任何损害 模型，但也许你不是。
或者，也许有别人谁的 恶意用户谁也说不定
想破坏你的数据库，也许 从数据库中删除一切，
这可能是非常昂贵的。
很显然，有用户数据is-- 还有价值有用户数据。
因此，如果我们没有把这个缓冲区 在用户和数据库 - 之间区
在用户和型号 - 事 可能不会很顺利我们。
>> 所以重要的是要 有这种模式在哪里
用户可以与数据库进行交互， 肯定的，但是他们必须要经过美国
去做吧。
而这基本上与MVC的想法。
它试图实现数据的安全性。
它试图保护模式 从无意或有意
恶意用户。
>> 所以会发生什么，当 我们应用这种模式？
好了，我们分离数据 从我们的website--要求
从逻辑的型号 - 实现我们网站的
functionality--的controller--和 从单纯的美学和页面
构成模板我们 用户experience--视图。
这是什么意思？
嗯，这意味着你可以 到用户观看可见。
您可以隐藏模型了。
而controllers--用户 不能或许直接操作。
他们并不需要访问你的PHP代码。
他们只需要看到的一种形式 在那里他们可以在输入的东西。
所以，也许形式 的图，该控制器
是的形式提交到PHP中， 控制器使得一个查询模式，
该模型提供了更多的信息， 到不同的观点，
为您显示的信息。
>> 你的程序可以访问 所有的业务逻辑，
但你的用户不能直接 访问你的业务逻辑。
和一个特别，或许， 这明显说明
是你曾经收到 一个403 Forbidden错误。
你有没有去到Web 页面，看到403禁止？
这有点像404找不到。
>> 403禁止意味着你试图访问 一个页面，你就不能访问。
也许这个站点 使用MVC分离
遁形其业务逻辑 需要存在于服务器上，以便
为页面的工作，但不 希望你能直接访问它。
所以，你可能会得到一个403 Forbidden错误。
>> 它甚至不会无所谓 如果你登录。
任何用户都无法触及这个点PHP文件。
他们只能碰 这一次，这埃德蒙顿
一个他们可以touch--或许 可与锁定的文件交互
更间接地比用户。
>> 所以，我们有时会看到这个权限 错误，这403禁止。
我们怎么改变权限，因此 这东西可以或不可以看到？
当我们这样做通常是使用一个 Linux命令称为chmod-- C-H-MOD。
>> 要做到这一点，该格式是相当 simple--文件模式，权限，
和任何你想要的文件 以应用更改。
所以，也许你会看到什么 像this--搭配chmod 600 helpers.php。
或者，也许你会看到this-- CHMOD 加X中包括目录。
当时这是否意味着有关系吗？
因此，有两种不同的方式 该权限通常是
应用使用chmod。
第一个被称为 八进制数的方法。
这通常适用权限 以三种不同的类别
的用户在同一时间。
所以CHMOD 711文件将允许你 正确的读，写和执行
您的文件，将使 others--专
您的组和天下 - 仅执行该文件。
这就是这样的语句。
第一个数字有 是你可以做什么，
第二个数字是 你的组可以做，
第三个是这个世界能做到。
如果谁的访问您的 页面，这就是世界。
>> 这些是什么号码 实际上转化为有关系吗？
因此，这些基本上翻译是这样的。
如果权限 零，什么都可能发生。
如果它是一个，你可以执行 file--如果这是你的许可。
如果是二，你可以写文件 但你不能做任何事情。
如果是三，你 可以写和执行。
等等，你可以看到。
七意味着你可以做任何事情。
>> 那么，为什么这些所谓的八进制数？
好吧，如果你想想看， 这里就像不一yeses，
如果我们想想他们 红与绿盒，
也许这使得它一点点清晰。
但是，如果我们考虑一下那些红色方框 作为零和绿框为的，
这些实际上只是套 二进制数的，对不对？
000转换为十进制0; 001， 小数1; 010是十进制2，依此类推。
因此，我们称这些八进制 数字，因为有
八种不同的可能性。
有八个 不同的，如果我们的数字
谈约三 information--的位
读位，写入 位和执行位。
所以，现在你可以讲二进制， 十进制，十六进制和八进制。
所以，你知道如何与沟通 在四个不同的数量的计算机
系统，所以这是很酷。
>> 所以，除了八进制 许可计划，有
也象征权限 方案中，这是稍微不同
通常用于最好的应用或 除去全线的权限。
因此，文件模式加X文件里 可能会添加合适的
执行所有三个 users--类别
你自己，你的团队，和世界。
那加是增加的部分。
执行权，这是在x。
而事实上，它适用于所有 三组用户将是一个。
>> 所以this--加x--很可能会 是完全一样的搭配chmod 711
文件，因为如果你回去 看八进制数计划，
那些乱七八糟给我们 权利要执行的文件。
因此，这很可能是相同的。
>> 你可以使用这个 参考指南是什么
在不同的东西 象征性的文件模式-ING结构。
绿色的项目在这里会 在所有的绿色的例子
一秒钟前了。
蓝色将是蓝色的。
橙色将是橙色。
所以，你可以的东西应用到您的 基，对他人，对用户来说，
还是给大家。
你可以给他们读， 写和执行权限，
您可以添加或删除 或分配完全是一个集
采用这种模式的权限。
>> 我们如何检查什么 文件权限方案是？
在我们改变它，它的 可能是很好的真正了解
什么是文件权限。
要做到这一点的方法之一是运行ls 只是调整它一点点。
所以，如果我输入ls冲L-- 这是一个小写的L--也许
我会看到这样的事情。
它看起来有点神秘，但 我们真正关心的部分
在左边那边的东西。
这实际上指定 文件权限方案。
你可能会说，因为它是 得到的r，W的，而x的穿插。
>> 这些第一three-- 忽略第一个
一秒钟，这 我们将双回。
那些前三后 所述first--所以第二，
第三和第四字符 该10个字符的字符串的
是你拥有的权限。
因此很明显，我可以读， 写和执行PHP。
我可以读，写和 执行PHP Webdev的，
我可以读取和写入test.php的。
>> 我的小组可以做到这一点。
因此，显然与PHP 和PHP Webdev的目录，
我的团队可以写 他们，但没有别的。
而世界也无能为力。
因此，这些文件是不 公开访问
如果我试着 访问他们，我不是
运行Apache，使他们可以访问， 然后，我会得到一个403错误。
这是一个失败。
我试图访问一个文件，但我 无权这样做。
什么是第一个字符？
那么，你或许可以推断 这里说的D的参考目录
而仪表板指 所谓的“常规文件。”
也许你当你已经看到了这个 试图删除使用RM文件。
你见过的神秘邮件 “删除普通文件” - 在这种情况下，
这将会是test.php的。
常规文件只是一些 这不是一个目录。
有一对夫妇他人 在这里，但通常你
去看看德公司的目录 并没有为第一要素。
但是，这真的一切就是这么简单。
你可以查看文件 使用LS几许升的权限，
你可以使用chmod更改。
当然，使用these-- 更改权限
执行本MVC范例 保护数据在您的网站
并不允许用户 访问一切，
但只有东西，他们需要 为了访问您的网页
工作，你希望它的工作方式。
>> 我是道格·劳埃德。
这是CS50。