DOUG LLOYD: Đôi khi khi chúng tôi đang lập trình chúng ta làm những việc như vậy thường, vì vậy thường xuyên, và rất nhiều người làm idea-- giống nhau hoặc tương tự điều, rằng nó có một cái tên. MVC là chính xác một điều như vậy. Nó được gọi là một mô hình lập trình. Nó loại như một thực hành tốt nhất đã được cất xuống bởi những người cố gắng để làm một cái gì đó. Trong trường hợp này, thực hiện một hệ thống các trang mà người dùng tương tác với trên một trang web phức tạp hơn. Và nó được thực hiện như vậy thường mà nó được đề nghị như là một tiêu chuẩn mà người khác có thể muốn làm theo, và có một tập hợp rất cụ thể của cách một mà có thể thực hiện theo mô hình này. Vì vậy, MVC là một mô hình, và lý do chúng ta sử dụng nó để tiết trừu tượng đi từ người sử dụng. Một số điều người sử dụng không thực sự cần phải xem. Họ chỉ muốn có một kinh nghiệm người dùng tốt, và chúng tôi không cần phải có họ truy cập mọi tập tin duy nhất mà tồn tại trên máy chủ web của chúng tôi, có lẽ. Có thể có một số tập tin mà chỉ là dùng để tăng cường trải nghiệm người dùng, và vì vậy chúng tôi có thể tóm tắt những người đi. Chúng tôi có thể sắp xếp chúng để che giấu người sử dụng không thể làm việc với họ, nhưng chúng tôi pages-- pages-- của chúng tôi biết làm thế nào để đối phó với họ và gọi cho họ hoặc có thể yêu cầu, muốn họ, hoặc một cái gì đó như thế. Động lực chính cho MVC là bảo mật dữ liệu, vì MVC thường đi kèm trong các bối cảnh làm việc với cơ sở dữ liệu. Và đặc biệt chúng tôi muốn ngăn chặn người dùng từ cơ sở dữ liệu trực tiếp ảnh hưởng. Chúng tôi chỉ muốn làm điều đó một cách gián tiếp, qua lọc của chúng tôi. Hoặc đảm bảo rằng tất cả mọi thứ của OK bởi chúng tôi làm một chút kiểm tra lỗi hoặc chống an toàn trước khi chúng tôi gửi nó vào cơ sở dữ liệu, nơi mọi thứ có thể đi sai, có lẽ thực sự sai, nếu chúng ta không cẩn thận. Vì vậy, MVC là viết tắt của Model View Controller. Làm từng có ý nghĩa gì? Về cơ bản, mô hình là cơ sở dữ liệu của bạn. Đó là nơi mà tất cả các dữ liệu quan trọng cho trang web của bạn tên người dùng lives--, thông tin đăng nhập, mật khẩu. Và bạn có thể cập nhật nó, đề cập đến nó, khá nhiều tất cả mọi thứ như thế. Bạn muốn truy vấn một cơ sở dữ liệu, bạn muốn hỏi thông tin từ các cơ sở dữ liệu. Đó là model-- tất cả các dữ liệu mà trang web của bạn sống. Xem là loại giống như kinh nghiệm người dùng. Đó là những trang họ thấy sau khi họ đã yêu cầu thông tin. Vì vậy, có lẽ họ gửi information-- đăng nhập của họ mà họ sẽ làm gì trong một bộ điều khiển, mà chúng tôi sẽ nói về trong một giây. Họ có lẽ trình của họ thông tin đăng nhập, và cơ sở dữ liệu được truy vấn. Thông tin được yêu cầu và kéo từ các cơ sở dữ liệu. Và sau đó khi người dùng đăng nhập của trong, họ nhìn thấy trang chủ của họ. Đó là một cái nhìn, OK? Và sau đó các điều khiển là gì gọi là logic kinh doanh của trang web của bạn. Và logic kinh doanh là một trong những điều kiện mà là loại nhạt washy-- thích, những gì không logic kinh doanh nghĩa là gì? Về cơ bản doanh nghiệp của bạn logic là PHP của bạn. Sử dụng của bạn không cần để trực tiếp nhìn thấy PHP của bạn, nhưng PHP của bạn có lẽ là những gì đang xảy ra được làm cho các yêu cầu tới cơ sở dữ liệu. Vì vậy, người sử dụng sẽ đầu vào thông tin trong một cái nhìn, mà sẽ tích hợp một bộ điều khiển. Giống như, họ sẽ nhập vào biểu mẫu. Làm thế nào mà quá trình hình thức thông tin là bộ điều khiển. Đó là PHP đó là thực sự làm theo yêu cầu cho mô hình. Và sau đó các mô hình cung cấp thông tin để xem, đó cung cấp cho nó cho người dùng, có lẽ hình dung tốt nhất như sau. Vì vậy, ở đây chúng tôi đang có. Dưới đây chúng tôi trên bên trái, và mô hình của chúng tôi View Controller sắp xếp mô hình. Làm thế nào nó hoạt động? Các us-- user-- làm một yêu cầu để điều khiển. Chúng tôi gửi thông tin chẳng hạn như bởi một hình thức HTTP. Trên cơ sở đó, các bộ điều khiển của công việc là để đảm bảo rằng những gì người dùng đã cấp không phải là cái gì đó sẽ làm hỏng các mô hình. Và do đó, bộ điều khiển sẽ chắc chắn rằng mọi thứ đều OK. Nó sẽ trông rất cẩn thận. Nếu có bất kỳ lỗi nào, nó sẽ dừng lại mọi thứ vì vậy người dùng không thể nhận được các mô hình. Nhưng giả sử tất cả mọi thứ của OK và nó là một truy vấn hợp lệ, bộ điều khiển sẽ truy vấn các model-- nó sẽ yêu cầu nó để cung cấp thông tin. Mô hình này sẽ cung cấp cho rằng thông tin đến một trang đó là một cái nhìn, nó sẽ truyền tải nó mà cách, và sau đó xem sẽ cư thông tin yêu cầu từ các mô hình. Vì vậy, ví dụ, nếu chúng ta đang nói về đăng nhập vào trang Facebook của bạn, Ví dụ như. Quan điểm sẽ là các dữ liệu đó ra khỏi các mô hình đề cập đến bạn bè của bạn và tin tức ăn hoặc những thứ như thế, phải không? Nhưng bạn sẽ không nhìn thấy người khác. Bạn sẽ getting-- vậy bạn gửi một truy vấn, bạn đăng nhập vào cái cớ model-- tôi, bạn đăng nhập vào trang. Việc sử dụng bộ điều khiển thông tin đăng nhập của bạn để thực hiện một yêu cầu đến các mô hình để tạo chắc chắn rằng bạn là người bạn nói là bạn. Giống như mô hình của, OK, có, bạn là người bạn nói bạn đang có, vì vậy hãy để tôi cung cấp cho bạn nguồn cấp dữ liệu tin tức của bạn. Tôi sẽ cung cấp cho bạn các dữ liệu thô cho feed tin tức của bạn để xem, và sau đó xem làm cho nó khá, xử lý nó một cách mà chúng ta đang sử dụng để, hiển thị mà thông tin cho người dùng. Chú ý sự kết nối đó là không hiện trên sơ đồ này. Không có kết nối trực tiếp giữa bạn và các mô hình. Luôn luôn có bộ đệm này bộ điều khiển trên phía đầu vào, và có một bộ đệm của xem ở phía đầu ra. Có lẽ bạn là một người tốt người, và như vậy có lẽ bạn sẽ không làm bất cứ thiệt hại cho mô hình, nhưng có lẽ bạn không. Hoặc có thể có ai đó ai một người dùng ở những người sẽ có thể muốn làm hỏng cơ sở dữ liệu của bạn, có thể xóa tất cả mọi thứ từ cơ sở dữ liệu của bạn, mà có thể là rất tốn kém. Rõ ràng, có sử dụng dữ liệu is-- có giá trị để có dữ liệu người dùng. Và như vậy, nếu chúng ta không đặt bộ đệm này Khu giữa người sử dụng và các database-- người sử dụng và những điều model-- có thể không được tốt đẹp như trước cho chúng tôi. Và do đó, điều quan trọng là để có mô hình này ở đâu người dùng có thể tương tác với cơ sở dữ liệu, chắc chắn, nhưng họ phải đi qua chúng tôi làm nó. Và đó là về cơ bản các ý tưởng với MVC. Đó là cố gắng để thực hiện bảo mật dữ liệu. Đó là cố gắng để bảo vệ các mô hình từ vô tình hay cố ý người sử dụng độc hại. Vì vậy, những gì sẽ xảy ra khi chúng tôi áp dụng mô hình này? Vâng, chúng ta tách các dữ liệu yêu cầu từ website-- của chúng tôi các model-- từ logic mà thực hiện trang web của chúng tôi functionality-- các controller-- và từ các thẩm mỹ đơn giản và trang mẫu mà bao gồm của chúng tôi dùng experience-- xem. Điều đó có nghĩa là gì? Vâng, nó có nghĩa là bạn có thể làm xem có thể nhìn thấy cho người sử dụng. Bạn có thể ẩn các mô hình đi. Và controllers-- người sử dụng có thể không có thể thao tác trực tiếp. Họ không cần phải truy cập vào mã PHP của bạn. Họ chỉ cần nhìn thấy một mẫu nơi họ có thể loại công cụ trong. Vì vậy, có thể dưới hình thức là một cái nhìn, bộ điều khiển là PHP mà hình thức nộp tới, các điều khiển làm cho một truy vấn đến các mô hình, các mô hình cung cấp thêm thông tin đến một cái nhìn khác nhau mà hiển thị thông tin cho bạn. Chương trình của bạn có thể truy cập tất cả các logic kinh doanh của bạn, nhưng người dùng của bạn có thể không trực tiếp truy cập logic kinh doanh của bạn. Và một đặc biệt, có lẽ, minh họa rõ ràng về điều này là bạn đã bao giờ nhận được một lỗi Forbidden 403. Bạn đã bao giờ đi đến một web trang và thấy 403 Forbidden? Đó là loại giống như 404 Not Found. 403 Forbidden có nghĩa là bạn đã cố gắng để truy cập một trang mà bạn không có quyền truy cập vào. Có lẽ trang web đó là sử dụng MVC tách đi trốn logic kinh doanh của mình mà cần phải tồn tại trên máy chủ để cho trang để làm việc, nhưng không muốn bạn để trực tiếp truy cập vào nó. Vì vậy, bạn có thể nhận được một lỗi Forbidden 403. Và nó sẽ thậm chí không quan trọng nếu bạn đã đăng nhập. Không có người dùng có thể chạm vào tập tin PHP dot này. Họ chỉ có thể chạm này, và one-- này một trong đó họ có thể touch-- lẽ có thể tương tác với các tập tin bị khóa xuống gián tiếp nhiều hơn với người dùng. Vì vậy, đôi khi chúng ta thấy quyền này lỗi, 403 Forbidden này. Làm thế nào để chúng ta thay đổi quyền truy cập như vậy rằng mọi thứ có thể hoặc có thể không được nhìn thấy? Khi chúng ta làm điều này thường là sử dụng một Lệnh Linux gọi chmod-- C-H-mod. Để làm điều này, định dạng là khá simple-- chmod, quyền hạn, và bất kỳ tập tin bạn muốn để áp dụng thay đổi. Vì vậy, có thể bạn sẽ thấy một cái gì đó như this-- chmod 600 helpers.php. Hoặc có thể bạn muốn xem this-- chmod một cộng x bao gồm thư mục. Là điều này không có nghĩa là mặc dù? Vì vậy, có hai cách khác nhau rằng quyền thường áp dụng bằng cách sử dụng chmod. Việc đầu tiên được gọi là bát phân số phương pháp. Điều này thường được áp dụng điều khoản đến ba loại khác nhau của người sử dụng cùng một lúc. Vì vậy, chmod 711 file sẽ cho phép bạn bên phải để đọc, viết, và thực thi tập tin của bạn, sẽ cho phép others-- đặc biệt nhóm của bạn và các world-- để chỉ thực thi các tập tin. Đó là những gì điều này chuyển đến. Số đầu tiên có là những gì bạn có thể làm, số thứ hai là những gì nhóm của bạn có thể làm, và thứ ba là những gì thế giới có thể làm được. Bất cứ ai là bạn đã ghé thăm trang, đó là thế giới. Những con số này là gì thực sự dịch cho dù? Vì vậy, về cơ bản các dịch như thế này. Nếu được sự cho phép là bằng không, không có gì có thể xảy ra. Nếu đó là một, bạn có thể thực hiện file-- nếu đó là sự cho phép của bạn. Nếu nó là hai, bạn có thể viết các tập tin nhưng bạn không thể làm bất cứ điều gì khác. Nếu đó là ba, bạn có thể viết và thực hiện. Và như vậy, như bạn có thể nhìn thấy. Và bảy có nghĩa là bạn có thể làm tất cả mọi thứ. Vậy tại sao những gọi là số bát phân? Vâng, nếu bạn nghĩ về nó, ở đây giống như Choáng và yeses, và nếu chúng ta nghĩ về họ như hộp màu đỏ và màu xanh lá cây, có thể làm cho nó một ít rõ ràng hơn. Nhưng nếu chúng ta suy nghĩ về những hộp màu đỏ là số không và các hộp màu xanh lá cây như những người thân, thực tế đây chỉ là bộ các số nhị phân, phải không? 000 dịch sang thập phân 0; 001, thập phân 1; 010 là số thập phân 2, và như vậy. Và vì vậy chúng tôi gọi những bát phân số bởi hiện tám khả năng khác nhau. Có tám chữ số khác nhau nếu chúng tôi nói về ba bit của information-- bit đọc, viết bit, và các bit thực thi. Vì vậy, bây giờ bạn có thể nói chuyện nhị phân, số thập phân, hex, và bát phân. Vì vậy, bạn biết làm thế nào để giao tiếp với máy tính trong bốn số khác nhau hệ thống, vì vậy đó là khá mát mẻ. Vì vậy, bên cạnh những bát phân Đề án cho phép, có cũng cho phép biểu tượng Đề án này là hơi khác nhau và thường được sử dụng tốt nhất để áp dụng hoặc loại bỏ một phép trên bảng. Vì vậy, một cộng với chmod x tập có thể thêm vào bên phải để thực hiện cho cả ba loại users-- mình, nhóm của bạn, và trên thế giới. Cộng với đó là một phần bổ sung. Quyền để thực hiện, đó là x. Và thực tế là nó áp dụng cho tất cả ba nhóm người dùng sẽ là một. Vì vậy this-- một x-- cộng có lẽ sẽ để được chính xác giống như chmod 711 nộp, bởi vì nếu bạn quay trở lại và nhìn vào sơ đồ số bát phân, những người thân và bảy cho chúng tôi quyền thực thi một file. Vì vậy, đây có lẽ là cùng. Và bạn có thể sử dụng điều này hướng dẫn tham khảo cho những gì những điều khác nhau trong tượng trưng cấu trúc chmod-ing là. Các mặt hàng ở đây sẽ là màu xanh lá cây nơi mà tất cả các ví dụ màu xanh Một giây trước. Màu xanh sẽ là màu xanh. Các cam sẽ được màu da cam. Vì vậy, bạn có thể áp dụng điều cần của bạn nhóm, cho người khác, cho người sử dụng, hoặc để tất cả mọi người. Bạn có thể cung cấp cho họ đọc, viết, và thực hiện truy cập, và bạn có thể thêm hoặc loại bỏ hoặc chỉ định chính xác một bộ các điều khoản sử dụng mô hình này. Làm thế nào để chúng tôi kiểm tra những gì một chương trình cho phép tập tin là? Trước khi chúng ta thay đổi nó, nó có lẽ tốt để thực sự biết những gì các tập tin dứơi. Một cách để làm điều này là để chạy ls nhưng chỉ tinh chỉnh nó một chút. Vì vậy, nếu tôi gõ ls dash l-- đó là một chữ thường l-- thể Tôi sẽ nhìn thấy một cái gì đó như thế này. Có vẻ một chút khó hiểu, nhưng các phần mà chúng tôi thực sự quan tâm là những thứ trên trái trên đó. Điều đó thực sự chỉ định một kế hoạch cho phép tập tin. Và bạn có thể cho biết vì nó có r của, w, và x của xen kẽ. Những three-- đầu tiên bỏ qua một trong những đầu tiên cho một thứ hai, chúng tôi sẽ tăng gấp đôi trở lại. Những người đầu tiên ba sau các first-- vậy lần thứ hai, thứ ba, và các nhân vật thứ tư đó chuỗi 10 ký tự là các quyền mà bạn có. Vì vậy, dường như tôi có thể đọc, viết, và thực thi PHP. Tôi có thể đọc, viết, và thực thi PHP Webdev, và tôi có thể đọc và viết test.php. Nhóm của tôi có thể làm điều này. Vì vậy, rõ ràng với PHP và thư mục PHP Webdev, nhóm của tôi có thể viết thư cho họ, nhưng không có gì khác. Và thế giới không thể làm gì cả. Vì vậy, những tập tin này không truy cập công khai và nếu tôi đã cố gắng để truy cập chúng và tôi đã không chạy Apache để làm cho họ dễ tiếp cận, sau đó tôi sẽ nhận được một lỗi 403. Đó là một thất bại. Tôi đã cố gắng để truy cập vào một tập tin nhưng tôi không có quyền để làm điều đó. Và đó là nhân vật đầu tiên là gì? Vâng, có thể bạn có thể ngoại suy ở đây là các d's tham khảo thư mục và dấu gạch ngang dùng để chỉ cái gọi là "các tập tin thường xuyên." Và có lẽ bạn đã nhìn thấy điều này khi bạn đã cố gắng để loại bỏ một tập tin bằng cách sử dụng rm. Bạn đã nhìn thấy các thông điệp bí ẩn "loại bỏ tập tin thường xuyên" - trong trường hợp này, nó muốn được test.php. Tập tin thường xuyên là một cái gì đó không phải là một thư mục. Có một vài người khác ở đây, nhưng nói chung bạn đi xem d's cho các thư mục và không có gì cho các yếu tố đầu tiên. Nhưng đó là thực sự tất cả để có nó. Bạn có thể kiểm tra tập tin quyền sử dụng ls dash l, bạn có thể thay đổi chúng bằng cách sử dụng chmod. Và, tất nhiên, sử dụng these-- thay đổi các điều khoản để thực thi mô hình MVC này để bảo vệ các dữ liệu trên trang web của bạn và không cho phép người sử dụng để truy cập vào tất cả mọi thứ, nhưng chỉ với những thứ mà họ cần để truy cập để cho trang của bạn làm việc theo cách bạn muốn nó để làm việc. Tôi Doug Lloyd. Đây là CS50.