Doug LLOYD: Bazen biz ne zaman programlama ediyoruz
biz çok, çok yaygın şeyler Sık sık ve bu kadar çok insan
Aynı iyi düşünce ya da aynı şeyi şey, bir adı olduğunu.
MVC tam böyle bir şeydir.
Bir programlama paradigması denir.
Bu tür bir iyi uygulamaları gibi oluyor aşağı distile edilmiş
bir şeyler yapmaya çalışan insanlar tarafından.
Bu durumda, uygulamaya sayfaları bir sistem
Bir kullanıcı ile etkileşim olduğunu daha karmaşık web sitesinde.
Ve o kadar yaygın olduğu yapılır Bir standart olarak tavsiye
diğer insanların takip etmek ister diye, ve şekillerde çok özel bir set var
O kimse bu paradigmayı takip olabilir.
>> Yani, MVC bir paradigma ve neden biz uzakta soyut detaylar için kullanın
kullanıcıdan.
Bazı şeyler Kullanıcı gerçekten görmek gerek yoktur.
Onlar sadece sahip olmak istiyorum iyi bir kullanıcı deneyimi,
ve biz onları gerekmez her dosyaya erişmek o
belki web sunucuda var.
Sadece bazı dosyalar olabilir Kullanıcı deneyimini desteklemek için kullanılır,
ve uzak olanlar bu yüzden biz soyut.
Biz çeşit böylece onları gizleyebilirsiniz Kullanıcı, onlarla çalışmak değil
ama bizim bizim pages-- pages-- Onlarla nasıl başa çıkacağınızı biliyor
ve onları arayın ya da belki ihtiyaç, Onları, ya da onun gibi bir şey istiyor.
>> Birincil motivasyon MVC veri güvenliği için,
MVC genellikle gelir çünkü veritabanları ile çalışma bağlamı.
Ve özellikle biz de kullanıcıların önlemek istiyoruz
doğrudan etkileyen veritabanlarından.
Biz sadece, dolaylı olarak yapmak istiyorum Bizim süzme yoluyla.
Ya da yapım her şeyin en iyi olduğunu göre Bize hata denetimi biraz yapıyor
veya emniyet prova biz önce veritabanına göndermek
şeyler belki yanlış gidebiliriz Dikkatli olmazsan, gerçekten yanlış.
>> Yani MVC Model View Controller için duruyor.
Bunların her biri ne anlama geliyor?
Temelde, model, veri tabanıdır.
Bu nerede tüm Siteniz için önemli veri
lives-- adları, kullanıcı adları, parolalar.
Ve sen, güncellemek başvurabilmeniz için, Böyle hemen hemen her şey.
Bir veritabanını sorgulamak istiyorum, sormak istiyorum veritabanından bilgi.
Bunun model-- hepsi Siteniz yaşayan verileri.
>> Görünümü tür gibi kullanıcı deneyimi.
Onlar sonra bakın sayfalar var Onlar bilgi talep ettiler.
Yani belki de teslim Onların giriş information--
hangi bir denetleyicisi yapacağını, hangi bir ikinci hakkında konuşacağım.
Onlar belki teslim onların giriş bilgileri,
ve veritabanı sorgulanır.
Bilgi istenen ve veritabanından çekildi.
Ve sonra kullanıcının oturum açmış bir kez olarak, kendi ana sayfasına bakın.
Tamam, bir görünüm değil mi?
>> Ve sonra kontrolör ne olduğunu Sitenizin iş mantığı çağırdı.
Ve iş mantığı bu terimleri biri olduğunu
wishy-washy-- gibi çeşit olduğunu iş mantığı ne demek?
Temelde iş mantık PHP olduğunu.
Kullanıcı gerekmez doğrudan PHP görmek için,
ama PHP muhtemelen ne oluyor veritabanına isteklerini yapma gibi.
>> Böylece kullanıcı girişi olacak Bir görünümde bilgiler,
hangi bir denetleyici entegre edecek.
Gibi, onlar bir forma yazmanız gerekir.
Nasıl form işlemleri bilgi denetleyicisi.
Bu aslında PHP bulunuyor modele isteği adrestir.
Ve sonra modeli verir görünümüne bilgiler,
kullanıcıya verir, aşağıdaki gibi belki de en iyi görüntülenmiştir.
>> Yani burada biz.
Burada solda biziz ve bizim Modeli Görünüm Denetleyici paradigma düzenlemesi.
Nasıl çalışır?
>> User-- us-- bir hale getirir kontrolöre rica ederiz.
Biz bilgi göndermek HTTP formu tarafından gibi.
, Kontrolör en o dayanarak iş emin olmaktır
vermiş kullanıcının ne değildir bu modeli zedeleyecek bir şey.
Ve böylece kontrolör gidiyor emin herşey yolundaysa olun.
Çok dikkatli bakmak için gidiyor.
Herhangi bir hata varsa, bu şeyleri durdurmak olacak böylece kullanıcı modeline alınamıyor.
>> Ama varsayarak herşey Tamam ve geçerli bir sorgu var,
Kontrolör model-- sorgular bu bilgi sağlamak için isteyeceğiz.
Model, sağlayacak bir görünüm var bir sayfaya bilgi,
o iletmek edeceğiz yol ve ardından görünüm
bilgi dolduracaktır Modelden istedi.
>> Yani, örneğin, biz konuşuyoruz eğer Facebook sayfanızda oturum hakkında,
Örneğin.
Görünüm verileri olurdu Bu modelin dışına çıktığını
arkadaşlarınız ve haber anlamına gelir Doğru, böyle beslemek ya da şeyler?
Ama başkasının görmek değildir.
>> Çok getting-- olurdum Eğer bir sorgu göndermek,
Eğer model-- bahane giriş Bana, sayfaya giriş.
Kontrolör kullandığı giriş bilgilerinizi
yapmak için modele bir istek yapmak emin olduğunuzu kim olduğunuzu söyleyenler.
Modelin gibi evet, tamam, sen, sen sen söyleyenler vardır
bu yüzden sana haber besleme verelim.
Sana için ham veri vereceğim görünümüne news feed,
ve ardından görünüm yapar güzel, bir şekilde bunu işler
Biz görüntüleyen alıştığınız o kullanıcıya bu bilgileri.
>> Var Bağlantıyı dikkat Bu şemada mevcut değil.
Doğrudan bağlantı var Sen ve model arasında.
Bu tampon her zaman var giriş tarafında kontrolör,
ve bir tampon var çıkış tarafında görüntüleyebilirsiniz.
>> Belki de iyisin kişi ve bu yüzden belki size
herhangi bir zarar olmaz Model, ama belki de değilsin.
Ya da belki birileri var kim var var Kötü niyetli bir kullanıcının kim belki olur
belki senin veritabanı zarar istiyorum senin veritabanından her şeyi silmek,
çok pahalı olabilir ki.
Açıktır ki, sahip kullanıcı veri o-- kullanıcı verilerini sahip olmanın değerini var.
Ve biz bu tampon koymadı eğer öyleyse kullanıcı ve database-- arasındaki bölge
Kullanıcı ve model-- şeyler Bizim için çok iyi gidiyor olabilir.
>> Ve bu yüzden önemlidir Bu paradigma nerede var
Kullanıcı, veritabanı ile etkileşime girebilir Emin, ama onlar bize geçmek zorunda
yapmak için.
Ve bu temelde MVC ile fikir.
Bu veri güvenliğini uygulamak için çalışıyor.
Bu modeli korumaya çalışıyor yanlışlıkla ya da kasıtlı itibaren
kötü niyetli kullanıcılar.
>> Peki ne olur Bu paradigma geçerlidir?
Peki, biz verileri ayıran ediyoruz Bizim website-- istenen
mantık model-- Bu web sitesinin uygular bizim
controller-- functionality-- ve Basit estetik ve sayfadan
oluşturan şablonları bizim Kullanıcı görünümü deneyimi--.
Bu ne anlama gelir?
Peki, yapmak anlamına gelir kullanıcıya görünür görüyor.
Sen uzakta modeli gizleyebilirsiniz.
Ve kullanıcı controllers-- belki doğrudan manipüle edilemez.
Onlar PHP kodu erişmek gerekmez.
Onlar sadece bir form görmek gerekir nerede bir şeyler yazabilirsiniz.
Yani belki formu bir görünüm, kontrolör
formu gönderen PHP, Kontrolör, modele bir sorgu yapar
Model daha fazla bilgi verir Farklı bir görüşe o
size bilgi görüntüler.
>> Sizin programları erişebilirsiniz iş mantığı hepsi
ancak kullanıcıların doğrudan olamaz iş mantığını erişin.
Ve bir özellikle, belki de Bu görünür örnekleme
Hiç aldığınız olduğunu 403 Yasak hatası.
Hiç bir web gitti mi sayfa ve görülen 403 Yasak?
Bu 404 Not Found benzeri tür.
>> Yasak 403 erişmeye çalıştı anlamına gelir Eğer erişiminiz yoksa bir sayfa.
Belki de bu site MVC ayırma yöntemi
iş mantığını saklanacak o sırayla sunucuda bulunması gerekiyor
sayfa iş, ama değil için doğrudan erişmek istiyor.
Yani bir 403 Yasak hata alabilirsiniz.
>> Ve bu bile önemli değil Eğer giriş olsaydı.
Hiçbir kullanıcı bu nokta PHP dosyası dokunabilirsiniz.
Onlar sadece dokunabilir bu, bu bölgesi varış
belki de touch-- edebilirsiniz biri kilitli dosya ile etkileşime girebilir
daha dolaylı kullanıcıdan daha.
>> Yani, bazen bu izinleri görmek Hata, bu 403 Yasak.
Nasıl bu kadar izinlerini değiştiririm şeyler ya da görülemez ki?
Bunu yaptığımızda genellikle kullanmaktır Linux komut chmod-- C-H-mod çağırdı.
>> Bunu yapmak için, biçim güzel chmod simple--, izinler,
ve ne olursa olsun dosya istediğiniz bu değişikliği uygulamak için.
Yani, belki bir şey görmek istiyorum bu-- gibi 600 helpers.php chmod.
Ya da belki paha chmod görürdük dizini içeren bir artı x.
Bu olsa demek miydi?
Yani, iki farklı yolu var izinleri genellikle olduğu
chmod kullanılarak uygulanan.
İlk olarak adlandırılır sekizli sayı yöntemi.
Bu genellikle izinleri geçerlidir Üç farklı kategorilere
Aynı anda kullanıcıların.
Yani chmod 711 dosya size izin verecek Doğru, okuma, yazma ve yürütme
Dosya, izin verecek uzadıya özellikle
grup ve --daha dünya Sadece dosyasını çalıştırmak için.
İşte bu çevirir budur.
Orada ilk sayı Yapabileceğiniz nedir
İkinci sayıdır Grubunuz ne yapabilirim,
ve üçüncü dünya yapabiliyor olmasıdır.
Sizin yanınızdaki ziyaret var herkes sayfa, bu dünya.
>> Bu numaralar nelerdir Aslında olsa çevirmek?
Yani bunlar temelde böyle tercüme.
Izin ise sıfır, hiçbir şey olabilir.
Bu bir ise, sen çalıştırabiliriz senin izni olmadığını file--.
Eğer ikincisiyse, dosyayı yazabilirsiniz ama başka bir şey yapamaz.
Bu üç buysa, sen yazma ve yürütebilirsiniz.
Ve böylece, gördüğünüz gibi.
Ve yedi her şeyi yapmak anlamına gelir.
>> Peki neden bu sekizli sayılar denir?
Peki, bu konuda düşünüyorsanız, Burada kabul etmeyenler ve yeses gibi,
ve biz onlar hakkında düşünüyorsanız kırmızı ve yeşil kutuları gibi,
belki de biraz daha net hale getirir.
Ama biz bu kırmızı kutuları hakkında düşünüyorsanız olanlar sıfır ve yeşil kutuları gibi,
Bu aslında sadece setleri İkili sayılar, değil mi?
000 0 ondalık çevirir; 001, 1 ondalık; 010 vb ondalık 2, ve.
Ve böylece bu sekizlik diyoruz sayılar var çünkü
Sekiz farklı olasılık vardır.
Sekiz Var Biz eğer farklı rakam
Üç bahsediyoruz information-- bit
okuma bit, yazma bit ve yürütmek biraz.
Şimdi sen ikili konuşabilir, ondalık, onaltılık, sekizlik ve.
Yani iletişim için biliyorum Dört farklı sayıda bilgisayarlar
Sistemler, böylece oldukça serin.
>> Yani, sekizli yanında izin düzeni, var
Ayrıca sembolik izni biraz farklıdır düzeni
ve genellikle uygulamak için en iyi şekilde kullanılır veya yönüyle bir iznini kaldırın.
Yani bir artı x dosyasını chmod hakkı ekleyebiliriz
Her üç çalıştırmak için users-- kategorileri
Kendiniz, grup ve dünya.
Bu artı ekleyerek parçasıdır.
Yürütmek hakkı, o x var.
Ve aslında bütün için geçerli olduğunu Kullanıcıların üç grup bir olacaktır.
>> Yani bir artı x-- muhtemelen gidiyor bu-- chmod 711 tam olarak aynı olacak şekilde
Eğer geri giderseniz, çünkü dosya ve sekizli sayı düzeni bakmak,
olanlar ve yedili bize vermek Bir dosyayı yürütmek için doğru.
Yani bu belki de aynıdır.
>> Ve bunu kullanabilirsiniz için başvuru kılavuzu nedir
çeşitli şeyler Sembolik chmod-ing yapısı vardır.
Yeşil öğeleri burada olacak nerede tüm yeşil renkli örnek
Bir saniye önce oldu.
Mavi olurdu.
Turuncu olacaktır.
Yani bir şeyler uygulayabilirsiniz senin grup, diğerlerine, kullanıcıya,
ya herkese.
Bunları okumak verebilir, yazma ve yürütme erişimi,
ve ekleyebilir veya kaldırabilirsiniz veya tam olarak bir dizi atama
Bu modeli kullanan izinler.
>> Biz ne bir kontrol nasıl dosya izin şeması nedir?
Biz onu değiştirmeden önce, bu kadar Aslında bilmek muhtemelen iyi
dosya izinlerini nelerdir.
Bunu yapmanın bir yolu ls çalıştırmaktır ama sadece biraz çimdik.
Yani yazarsanız ls ben-- karalamak belki ben- bir küçük var
Ben böyle bir şey görürsünüz.
Biraz şifreli görünüyor, ama biz gerçekten umurumda bölüm
Oradaki soldaki şeyler.
Bu aslında belirtir Bir dosya izin düzeni.
O çünkü ve muhtemelen söyleyebilirim r kıyafetleri, yıllardan w ve x 's serpiştirilmiş var.
>> Bunlar ilk üç-- İlkini görmezden
Bir saniye için hangi biz geri ikiye katlayacağız.
Bu ilk üç sonra birinci-- ikinci yüzden,
üçüncü ve dördüncü karakter Bu 10 karakter dizesinin
Eğer sahip izinleri vardır.
Yani görünüşe göre ben okuyabilir yazma ve PHP yürütün.
Ben, okuma, yazma ve olabilir PHP Webdev yürütmek
ve okudum ve test.php yazabilirsiniz.
>> Benim grup bunu yapabilirsiniz.
Yani görünüşte PHP ile ve PHP WebDev dizinleri,
benim grup yazabilirsiniz Onları ama başka bir şey.
Ve dünya bir şey yapamaz.
Yani bu dosyalar değil genel olarak erişilebilir
ve ben denedim eğer bunlara erişmek ve ben değildim
Apache çalıştıran, onları erişilebilir hale getirmek, sonra bir 403 hatası olacaktı.
Bu bir başarısızlık var.
Ben bir dosyaya erişmek için çalıştım ama bunu yapmak için izniniz yok.
Ve bu ilk karakter nedir?
Eh, muhtemelen tahmin edebilirsiniz Burada d's dizinlere bakın o
ve tire anlamına gelir "Düzenli dosyaları." sözde
Eğer ettik Ve belki bu gördüm rm kullanarak bir dosyayı kaldırmak için çalıştı.
Sen şifreli mesaj gördüm "Düzenli dosya çıkarmak" - bu durumda,
o test.php olurdu.
Düzenli dosya sadece bir şeydir Bu bir dizin değil.
Diğerleri bir çift vardır Burada, ama genellikle sen
d'ler dizinleri göreceğiz ve ilk öğe için bir şey yok.
Ama bu gerçekten hepsi orada kendisine etmektir.
Dosyayı kontrol edebilirsiniz ls çizgi l kullanarak izinleri,
Eğer chmod kullanarak onları değiştirebilirsiniz.
Ve, tabii ki, these-- kullanımı izinleri değiştirme
Bu MVC paradigma zorlamak için Web sitenizde verileri korumak
ve kullanıcıları izin Her şeyi erişmek için,
ihtiyaç duydukları ama sadece şeyler sayfanız için sırayla erişmek için
Eğer çalışmak istediğiniz şekilde çalışması için.
>> Ben Doug Lloyd değilim.
Bu CS50 olduğunu.