DOUG LLOYD: ზოგჯერ როდესაც ჩვენ პროგრამირება ჩვენ გავაკეთოთ რამ, ასე რომ, ხშირად, ასე რომ ხშირად, და ამდენი ხალხი ამის იგივე იდეა ან იგივე რამ, რაც მას აქვს სახელი. MVC არის ზუსტად ერთი ასეთი რამ. ეს ე.წ. პროგრამირების პარადიგმა. ეს ერთგვარი მინდა საუკეთესო პრაქტიკის რომ უკვე გამოხდილი ქვემოთ ადამიანები, ცდილობენ რაღაც. ამ შემთხვევაში, განახორციელოს სისტემის გვერდები რომ მომხმარებლის ურთიერთქმედებს უფრო რთული საიტზე. და ეს კეთდება იმისათვის, ხშირად, რომ ის რეკომენდირებულია როგორც სტანდარტული რომ სხვა ადამიანი, შესაძლოა, მინდა, რომ დაიცვას, და არსებობს ძალიან კონკრეტული გზები რომ შეიძლება დაიცვას ეს პარადიგმა. ასე რომ, MVC არის პარადიგმა, და მიზეზი ჩვენ ვიყენებთ ის არის, რომ აბსტრაქტული მოშორებით დეტალები შესახებ. ზოგიერთი რამ შესახებ ნამდვილად არ უნდა დაინახოს. მათ უბრალოდ სურთ კარგი მომხმარებლის, გამოცდილება, და ჩვენ არ უნდა მათ შედიხართ თითოეული ფაილი, რომელიც არსებობს ჩვენს სერვერზე, ალბათ. ამას შეიძლება რამდენიმე ფაილი, რომელიც არის მხოლოდ გამოიყენება, რათა ხელი შევუწყოთ მომხმარებლის, გამოცდილება, და ასე რომ ჩვენ შეგვიძლია აბსტრაქტული იმ მოშორებით. ჩვენ შეგვიძლია სახის დამალვა მათ ისე, მომხმარებელს შეუძლია მათთან მუშაობა, მაგრამ ჩვენი pages-- ჩვენი pages-- იცით, თუ როგორ უნდა გაუმკლავდეთ მათ და მოვუწოდებთ მათ და ალბათ მოითხოვს, სურს, მათ, ან რაღაც მსგავსი. პირველადი მოტივაცია ამისთვის MVC არის მონაცემები, იმიტომ, MVC, როგორც წესი, მოდის წელს კონტექსტში მუშაობა მონაცემთა ბაზებთან. და კერძოდ, მინდა, რომ თავიდან ავიცილოთ მომხმარებლები პირდაპირ გავლენას ბაზაში. ჩვენ მხოლოდ გვინდა ამის გაკეთება არაპირდაპირ მეშვეობით ჩვენი ფილტრაცია. ან მიღების დარწმუნებული ვარ, რომ ყველაფერი კარგადაა მიერ ჩვენს აკეთებს ცოტა შეცდომა შემოწმება ან უსაფრთხოების კორექტორის სანამ ჩვენ გაუგზავნოთ მონაცემთა ბაზა, სადაც რამ შეიძლება წავიდეს არასწორი, ალბათ ნამდვილად არასწორი, თუ ჩვენ არა ვართ ფრთხილად. ასე MVC დგას მოდელი View Controller. რა თითოეული ეს ნიშნავს? ძირითადად, მოდელი თქვენს მონაცემთა ბაზაში. ეს არის, სადაც ყველა მნიშვნელოვანი მონაცემების თქვენი საიტი lives-- სახელისა, შესვლა, პაროლები. და თქვენ შეგიძლიათ განახლება, ეხება, საკმაოდ ბევრი ყველაფერი, რომ. ნეტავ შეკითხვის ბაზაში, მინდა ვთხოვო ინფორმაცია მონაცემთა ბაზაში. სწორედ model-- ყველა მონაცემები, სადაც თქვენი საიტი ცხოვრობს. ხედი არის სახის მოსწონს მომხმარებლის, გამოცდილება. ეს არის გვერდების ხედავენ, მას შემდეგ, რაც მათ მოთხოვნილი ინფორმაცია. ასე რომ, შესაძლოა მათ წარადგინონ მათი შესვლა information-- რომელიც იზამდნენ კონტროლერი, რომელიც ჩვენ ვსაუბრობთ მეორე. ისინი შესაძლოა წარმოადგინონ თავიანთი ინფორმაცია, და მონაცემთა ბაზა გაეგზავნება. ინფორმაცია მოითხოვა და გამოყვანილია მონაცემთა ბაზაში. და მერე კიდევ მომხმარებელს ხართ შესული სისტემაში წელს, დაინახავენ, რომ მათი მთავარი გვერდი. ეს არის ის, ხედი, OK? და მაშინ კონტროლერი არის ის, რაც მოუწოდა ბიზნეს ლოგიკა თქვენს საიტზე. და ბიზნეს ლოგიკა ერთ-ერთი იმ თვალსაზრისით, რომ არის ერთგვარი wishy-washy-- მინდა, რას ბიზნეს ლოგიკა ნიშნავს? ძირითადად თქვენი ბიზნესის ლოგიკა არის თქვენი PHP. თქვენი მომხმარებლის არ სჭირდება პირდაპირ ნახოთ თქვენი PHP, მაგრამ თქვენი PHP, ალბათ, რა ხდება უნდა მოითხოვოს მონაცემთა ბაზაში. ასე რომ, მომხმარებელი მიიღებს შეყვანის ინფორმაცია აზრით, რომელიც ინტეგრირება კონტროლერი. მსგავსად, ისინი ჩაწერეთ შევიდა ფორმა. როგორ რომ ფორმა პროცესები ინფორმაცია კონტროლერი. ეს არის ის, PHP, რომ რეალურად მიღების მოთხოვნით მოდელი. და მაშინ მოდელი აძლევს ინფორმაცია აზრით, რომელიც აძლევს მას, რომ მომხმარებელს, ალბათ საუკეთესო, ვიზუალურად ასეთია. ასე რომ აქ ვართ. აი us მარცხენა და ჩვენი მოდელი View Controller პარადიგმა მოწყობა. როგორ მუშაობს იგი? User-- us-- აკეთებს მოითხოვოს კონტროლერი. ჩვენ წარუდგინოს ინფორმაცია როგორიცაა მიერ HTTP ფორმა. აქედან გამომდინარე, კონტროლერი საქმეა დარწმუნდით რომ ის, რაც მომხმარებელს მისცა არ არის რაღაც რომ დაზიანდეს მოდელი. ასე რომ, კონტროლერი აპირებს დარწმუნდით, რომ ყველაფერი კარგადაა. ეს ხდება ძალიან ფრთხილად. თუ არსებობს რაიმე შეცდომები, შეწყვიტოს რამ ასე რომ, მომხმარებელს შეუძლია მიიღოს, რათა მოდელი. მაგრამ თუ გავითვალისწინებთ, რომ ყველაფერი OK და ეს სწორი შეკითხვაზე, კონტროლერი შეკითხვის model-- იგი ყველაფერს ითხოვენ, რომ ინფორმაციის მიწოდება. მოდელი უზრუნველყოფს, რომ ინფორმაცია გვერდზე რომ არის კალენდარი, ის ყველაფერს გადასცემს მას, რომ გზა, და შემდეგ ხედი იქნება populate ინფორმაცია გამოთხოვილი მოდელი. ასე, მაგალითად, თუ ჩვენ ვსაუბრობთ შესახებ ხე თქვენს Facebook- ის გვერდზე, მაგალითად. ხედი იქნება მონაცემები რომ გამოვიდა მოდელი, რომელიც ეხება თქვენს მეგობრებს და საინფორმაციო საკვების ან პერსონალის მოსწონს, რომ, არა? მაგრამ თქვენ ვერ ვხედავ სხვისი. ნეტავ getting-- ასე თქვენ წარმოადგინოს შეკითხვაზე, თქვენ შეხვიდეთ model-- საბაბი მე, თქვენ შეხვიდეთ გვერდზე. კონტროლერი მიზნებისათვის თქვენი ინფორმაცია რათა თხოვნით, მოდელი, რათა დარწმუნდით, რომ თქვენ ხართ, ვინც ამბობენ, რომ თქვენ ხართ. მოდელის მოსწონს, OK, დიახ, თქვენ ამბობთ, თქვენ, ნება მომეცით, მისცეს თქვენს საინფორმაციო არხი. მე გაძლევთ ნედლეულის მონაცემები თქვენი ამბები feed აზრით, და შემდეგ ხედი ხდის საკმაოდ, ამუშავებს მას ისე, რომ ჩვენ გამოიყენება, ჩვენებისას ამ ინფორმაციის შესახებ. გაითვალისწინეთ დაკავშირებით, რომ არ არსებული ამ დიაგრამაზე. არ არსებობს პირდაპირი კავშირი შორის თქვენ და მოდელი. იქ ყოველთვის ამ ბუფერული კონტროლერი შეყვანის მხარეს, და იქ ბუფერული საქართველოს სანახავად გამომავალი მხარეს. იქნებ თქვენ კარგი პირი, და იქნებ თქვენ არ გააკეთებს რაიმე დაზიანება მოდელი, მაგრამ იქნებ თქვენ არ. ან იქნებ არსებობს ვინმეს, ვინც მუქარის შესახებ, რომელიც გვინდა, შესაძლოა, მინდა დაზიანდეს თქვენს მონაცემთა ბაზაში, შესაძლოა, წაშლა ყველაფერი თქვენს მონაცემთა ბაზაში, რომელიც შეიძლება იყოს ძალიან ძვირი. ცხადია, რომელსაც შესახებ მონაცემები is-- არსებობს ღირებულების მქონე შესახებ მონაცემები. ასე რომ, თუ ჩვენ არ დააყენა ამ ბუფერული ზონას შესახებ და მონაცემთა ბაზა მომხმარებელი და model-- რამ შეიძლება არ იყოს ისე კარგად ჩვენთვის. ასე რომ, ეს მნიშვნელოვანია, რომ აქვს ამ პარადიგმის, სადაც მომხმარებელს შეუძლია ურთიერთქმედება მონაცემთა ბაზაში, რა თქმა უნდა, მაგრამ მათ უნდა გაიაროს us გაკეთება. და ეს, ძირითადად, იდეა MVC. ის ცდილობს განახორციელოს მონაცემების უსაფრთხოებას. ის ცდილობს დაიცვას მოდელი საწყისი უნებლიედ ან შეგნებულად მუქარის მომხმარებლებს. რა ხდება, როდესაც ჩვენ მივმართავთ ამ პარადიგმის? ისე, ჩვენ ჰყოფს მონაცემები საჭირო ჩვენი website-- model-- ლოგიკა რომელიც ახორციელებს ჩვენი საიტის functionality-- კონტროლერი და მარტივი ესთეტიკის და გვერდი თარგები, რომელიც მოიცავს ჩვენი პროფაილი experience-- ხედი. რას ნიშნავს ეს? ისე, ეს ნიშნავს იმას, რომ views ხილული მომხმარებელს. თქვენ შეგიძლიათ სრულად დაფაროთ მოდელი მოშორებით. და კონტროლერები შესახებ ვერ იქნებ პირდაპირ მანიპულირება. მათ არ უნდა თქვათ თქვენი PHP კოდი. ისინი უბრალოდ უნდა ნახოთ ფორმა სადაც მათ შეუძლიათ ჩაწერეთ პერსონალი. ასე რომ, შესაძლოა ფორმა აზრით, კონტროლერი არის PHP, რომ ფორმა წარუდგენს, რომ კონტროლერი ხდის შეკითხვის მოდელი, მოდელი უფრო მეტ ინფორმაციას სხვადასხვა მოსაზრება, რომ აჩვენებს ინფორმაციას თქვენ. თქვენი პროგრამები შეგიძლიათ თქვათ ყველა თქვენი ბიზნესის ლოგიკა, მაგრამ თქვენი მომხმარებლებს არ შეუძლიათ პირდაპირ თქვენი ბიზნესისა ლოგიკა. და კიდევ ერთი, განსაკუთრებით, ალბათ, თვალსაჩინო მაგალითი ეს არის თუ არა ოდესმე მიღებული 403 Forbidden შეცდომა. ოდესმე წავიდა ვებ გვერდი და ჩანს 403 აკრძალული? ეს არის ერთგვარი მოსწონს 404 არ ნაპოვნია. 403 Forbidden იმას ნიშნავს, თქვენ ცდილობდა, რათა შეამოწმონ გვერდი, რომ თქვენ არ გაქვთ. ალბათ, რომ საიტი არ არის გამოყენებით MVC გამოყოფა მიმალვას მისი ბიზნეს ლოგიკა, რომ საჭიროებს არსებობს სერვერზე, რათა ეს გვერდი მუშაობა, მაგრამ არ გვინდა, რომ თქვენ პირდაპირ იგი. ასე რომ, თქვენ შეიძლება მიიღოთ 403 Forbidden შეცდომა. და ეს კი არ აქვს მნიშვნელობა თუ თქვენ ხართ რეგისტრირებული. არარის შესახებ შეგიძლიათ შეეხოთ ამ dot PHP ფაილი. მათ შეუძლიათ მხოლოდ შეეხოთ ეს ერთი, და ამ ერთი ერთი, რომ მათ შეუძლიათ touch-- ალბათ შეგიძლიათ ურთიერთქმედება ჩაკეტილი ქვემოთ ფაილი უფრო ირიბად, ვიდრე შესახებ. ასე რომ, ჩვენ ვხედავთ, ზოგჯერ ეს ნებართვები შეცდომა, ამ 403 აკრძალული. როგორ უნდა შეუცვალოთ ასე რომ ყველაფერი შეიძლება ან არ შეიძლება ჩანს? როდესაც ჩვენ ამას ვაკეთებთ, როგორც წესი, არის გამოიყენოს Linux ბრძანება მოუწოდა chmod-- C-H-mod. ამისათვის, ფორმატი საკმაოდ simple-- chmod, უფლებები, და რაც ფაილი გსურთ მიმართოს, რომ ცვლილება. ასე რომ, შესაძლოა ნეტავ ვხედავ რაღაც მოსწონს ეს chmod 600 helpers.php. ან იქნებ ნეტავ ვხედავ ამას chmod პლუს x, რომელიც მოიცავს დირექტორია. იყო ნიშნავს ეს მიუხედავად იმისა, რომ? ასე რომ, აქ არის ორი სხვადასხვა გზა რომ ნებართვა, როგორც წესი, გამოიყენება გამოყენებით chmod. პირველი ეწოდება octal ნომრები მეთოდი. ეს, როგორც წესი ვრცელდება ნებართვების სამ სხვადასხვა კატეგორიაში მომხმარებელთა ამავე დროს. ასე რომ chmod 711 ფაილი საშუალებას გაძლევთ სწორი კითხვა, წერა, და შეასრულოს თქვენი ფაილი, საშუალებას მისცემს others-- კონკრეტულად თქვენი ჯგუფი და world-- მხოლოდ შეასრულოს ფაილი. სწორედ ამ ითარგმნება. პირველი ნომერი არ არის თუ რა შეგიძლიათ გააკეთოთ, მეორე ნომერი რა თქვენი ჯგუფი შეუძლია გააკეთოს, და მესამე არის ის, რაც მსოფლიოს შეუძლია გააკეთოს. ყველას, ვინც არის გამოჩენის თქვენი გვერდი, რომელიც არის მსოფლიოში. რა არის ეს ნომრები რეალურად თარგმნოს თუმცა? ასე რომ, ეს, ძირითადად, თარგმნა მოსწონს ეს. იმ შემთხვევაში, თუ ნებართვა ნულოვანი, არაფერი შეიძლება მოხდეს. თუ ეს ერთი, თქვენ შეგიძლიათ განახორციელოთ ფაილი თუ ეს თქვენი ნებართვით. თუ ეს ორი, თქვენ შეგიძლიათ დაწეროთ ფაილი მაგრამ თქვენ ვერ არაფერი. თუ ეს სამი, თქვენ შეგიძლიათ დაწეროთ და შეასრულოს. და ასე შემდეგ, როგორც ხედავთ. და შვიდი ნიშნავს, თქვენ შეგიძლიათ ყველაფერს გააკეთებს. რატომ არის ეს ე.წ. octal ნომრები? ისე, თუ ფიქრობთ ამის შესახებ, აქ არის როგორც noes და yeses, და თუ ჩვენ ვიფიქროთ მათ წითელი და მწვანე ყუთები, შესაძლოა, რომ ხდის ცოტა ნათელი. მაგრამ თუ ჩვენ ვიფიქროთ იმ წითელი ყუთები როგორც zeros და მწვანე ყუთები, როგორც პირობა, ეს არის, ფაქტობრივად, მხოლოდ კომპლექტი ორობითი რიცხვები, მართალია? 000 ითარგმნება ათობითზე 0; 001, ათობითი 1; 010 არის ათობითი 2, და ასე შემდეგ. ასე რომ, ჩვენ მოვუწოდებთ ამ octal ნომრები იმიტომ, რომ იქ რვა სხვადასხვა შესაძლებლობები. რვა სხვადასხვა ციფრები, თუ ჩვენ ვსაუბრობთ სამი ბიტი information-- წაკითხული ცოტა, ჩაწერის ცოტა, და შეასრულოს bit. ახლა თქვენ შეგიძლიათ საუბარი ორობითი, ათობითი, hex და octal. ასე რომ თქვენ იცით, თუ როგორ დაუკავშირდეს კომპიუტერები ოთხი სხვადასხვა ნომერი სისტემები, ასე რომ საკმაოდ გრილი. ასე რომ, გარდა octal ნებართვა სქემა, არსებობს ასევე სიმბოლური ნებართვა სქემა, რომელიც ოდნავ განსხვავდება და, როგორც წესი, გამოიყენება საუკეთესო მიმართოს ან ამოიღონ ნებართვა მთელს ფორუმში. ასე რომ chmod პლუს x ფაილი შეიძლება დაამატოთ მარჯვენა შეასრულოს სამივე კატეგორიები users-- თავს, თქვენი ჯგუფი და მსოფლიოში. პლუს არის დასძინა ნაწილი. უფლება შეასრულოს, რომ არის x. ხოლო ის ფაქტი, რომ ეს ეხება ყველა სამი ჯგუფების წევრებს იქნება ა. ასე რომ, ამას პლუს, რომ X ალბათ აპირებს ზუსტად ისევე, როგორც chmod 711 შეიტანოს, რადგან თუ დაბრუნდეს და შევხედოთ octal ნომერი სქემა, პირობა და შვიდკაცა მოგვცეს უფლება შეასრულოს ფაილი. ასე რომ, ეს, ალბათ, იგივე. თქვენ შეგიძლიათ გამოიყენოთ ეს მინიშნება სახელმძღვანელო რა სხვადასხვა რამ სიმბოლური chmod-ing სტრუქტურა. მწვანე ელემენტი აქ იქნება სადაც ყველა მწვანე ფერის მაგალითად იყო მეორე წინ. ლურჯი იქნება ლურჯი. ნარინჯისფერი იქნება ფორთოხალი. ასე რომ თქვენ შეგიძლიათ ვრცელდება რამ თქვენი ჯგუფი, სხვები, საქართველოს შესახებ, ან ყველას. თქვენ შეგიძლიათ მივცეთ წავიკითხე, დაწერეთ და შეასრულოს ხელმისაწვდომობა, და თქვენ შეგიძლიათ დაამატოთ ან ამოიღონ ან მივანიჭოთ ზუსტად კომპლექტი ნებართვების ამ მოდელის. როგორ უნდა შეამოწმოს რა ფაილი ნებართვის სქემა? სანამ შევცვლით, ეს არის ალბათ კარგი ნამდვილად ვიცი, რა ფაილი ნებართვების არიან. ერთი გზა უნდა გააკეთოს, ეს არის აწარმოებს ls მაგრამ მხოლოდ tweak ის ცოტა. ასე რომ, თუ მე აკრიფოთ ls ტირე l-- რომ არის ამას l-- იქნებ მე ვხედავ რაღაც მსგავსი. როგორც ჩანს, ცოტა cryptic, მაგრამ ნაწილი, რომ ჩვენ ნამდვილად აინტერესებს არის პერსონალის მარცხენა იქ. ეს, ფაქტობრივად, განსაზღვრავს ფაილი ნებართვა სქემა. და თქვენ ალბათ გითხრათ იმიტომ, რომ ეს მიიღო r ის, w, და x ის interspersed. იმ პირველი three-- იგნორირება პირველი მეორე, რომელიც ჩვენ გაორმაგდება უკან. იმ პირველი სამი შემდეგ , პირველი, ისე მეორე, მესამე და მეოთხე გმირები რომ 10 ხასიათის სიმებიანი არის უფლებები, რომ თქვენ გაქვთ. ასე რომ, როგორც ჩანს, მე წავიკითხე, დაწერეთ და შეასრულოს PHP. მე წავიკითხე, წერა, და შეასრულოს PHP WebDev, და მე წაიკითხოს და დაწეროს test.php. ჩემი ჯგუფს შეუძლია ამის გაკეთება. ასე რომ, როგორც ჩანს, PHP და PHP WebDev დირექტორიები, ჩემი ჯგუფი ვწერ მათ, მაგრამ სხვა არაფერი. და მსოფლიო არაფრის გაკეთება არ შეუძლია. ასე რომ, ეს ფაილი არ არის საჯაროდ ხელმისაწვდომი და თუ მე შევეცადე წვდომისათვის მათ და მე არ ვიყავი გაშვებული Apache, რათა მათ ხელმისაწვდომი, მაშინ მე კიდევ 403 შეცდომა. ეს მარცხი. მე შევეცადე შედიხართ ფაილი, მაგრამ მე არ აქვს უფლება ამის გაკეთება. და რა არის, რომ პირველი ხასიათი? ისე, თქვენ ალბათ განზოგადების აქ რომ d's ეხება საიტები ხოლო ტირე ეხება ე.წ. "რეგულარული ფაილი". და, შესაძლოა, ვნახე ეს, როდესაც თქვენ ცდილობდა ამოიღონ ფაილი გამოყენებით rm. ვნახე cryptic გაგზავნა "ამოიღონ რეგულარული ფაილი", - ამ შემთხვევაში, ეს მინდა იყოს test.php. რეგულარული ფაილი არის რაღაც ეს არ არის დირექტორია. არსებობს რამდენიმე სხვები აქ, არამედ, ზოგადად, თქვენ ვაპირებთ, რომ ნახოთ d's ამისთვის საიტები და არაფერი პირველად ელემენტს. მაგრამ ეს ნამდვილად არის და ეს. თქვენ შეგიძლიათ შეამოწმოთ ფაილი ნებართვების გამოყენებით ls ტირე ლ, თქვენ შეგიძლიათ შეცვალოთ მათი გამოყენებით chmod. და, რა თქმა უნდა, გამოიყენოთ these-- იცვლება უფლებები აღსასრულებლად ამ MVC პარადიგმა მონაცემთა დასაცავად თქვენი საიტი და არ დაუშვებს მომხმარებლები წვდომისათვის ყველაფერი, მაგრამ მხოლოდ პერსონალი, ისინი უნდა წვდომის იმისათვის, რომ თქვენი გვერდი მუშაობა გზა გსურთ მუშაობა. მე Doug Lloyd. ეს არის CS50.