Doug LLOYD: Terkadang ketika kita sedang pemrograman
kita melakukan hal-hal begitu umum, sehingga sering, dan begitu banyak orang
melakukan idea-- sama atau sama hal, bahwa ia memiliki nama.
MVC adalah tepat satu hal seperti itu.
Ini disebut paradigma pemrograman.
Ini semacam seperti praktik terbaik yang telah disuling turun
oleh orang yang mencoba untuk melakukan sesuatu.
Dalam hal ini, menerapkan sistem halaman
bahwa pengguna berinteraksi dengan pada situs yang lebih kompleks.
Dan hal itu dilakukan begitu umum bahwa dianjurkan sebagai standar
bahwa orang lain mungkin ingin mengikuti, dan ada satu set yang sangat spesifik dari cara
salah satu yang bisa mengikuti paradigma ini.
>> Jadi, MVC adalah paradigma, dan alasannya kita menggunakannya adalah untuk rincian abstrak
dari pengguna.
Beberapa hal pengguna tidak benar-benar perlu melihat.
Mereka hanya ingin memiliki pengalaman pengguna yang baik,
dan kita tidak perlu memiliki mereka mengakses setiap file yang
ada di server web kami, mungkin.
Mungkin ada beberapa file yang hanya digunakan untuk meningkatkan pengalaman pengguna,
dan sehingga kita bisa abstrak mereka pergi.
Kita bisa semacam menyembunyikan mereka sehingga pengguna tidak dapat bekerja dengan mereka,
tapi kami pages-- pages-- kami tahu bagaimana untuk menangani mereka
dan memanggil mereka atau mungkin membutuhkan, ingin mereka, atau sesuatu seperti itu.
>> Motivasi utama untuk MVC keamanan data,
karena MVC biasanya muncul di konteks bekerja dengan database.
Dan di kami khususnya ingin mencegah pengguna
dari database secara langsung berdampak.
Kami hanya ingin melakukannya secara tidak langsung, melalui filtrasi kami.
Atau memastikan bahwa semuanya OK dengan kami melakukan sedikit pengecekan error
atau pemeriksaan keamanan sebelum kita mengirimkannya ke database, di mana
hal yang bisa salah, mungkin benar-benar salah, jika kita tidak hati-hati.
>> Jadi MVC singkatan dari Model View Controller.
Apa masing-masing artinya?
Pada dasarnya, model database Anda.
Ini di mana semua Data penting untuk situs Anda
username lives--, login, password.
Dan Anda dapat memperbaruinya, lihat itu, hampir segala sesuatu seperti itu.
Anda akan query database, Anda akan bertanya informasi dari database.
Itulah model-- semua Data di mana situs Anda tinggal.
>> Pandangan adalah jenis seperti pengalaman pengguna.
Ini adalah halaman yang mereka lihat setelah mereka telah meminta informasi.
Jadi mungkin mereka mengajukan information-- login mereka
yang akan mereka lakukan di controller, yang akan kita bicarakan dalam satu detik.
Mereka mungkin menyerahkan mereka informasi login,
dan database query.
Informasi dibutuhkan dan ditarik dari database.
Dan kemudian sekali pengguna login di, mereka melihat halaman rumah mereka.
Itu pandangan, OK?
>> Dan kemudian controller adalah apa disebut logika bisnis dari situs Anda.
Dan logika bisnis salah satu istilah mereka yang
adalah semacam plin-washy-- suka, apa artinya logika bisnis?
Anda bisnis pada dasarnya logika PHP Anda.
Pengguna tidak perlu untuk melihat secara langsung PHP Anda,
tapi PHP Anda mungkin apa yang terjadi untuk membuat permintaan ke database.
>> Sehingga pengguna akan masukan informasi dalam sebuah tampilan,
yang akan mengintegrasikan kontroler.
Seperti, mereka akan ketik ke dalam bentuk.
Bagaimana bahwa proses bentuk informasi controller.
Itulah PHP yang sebenarnya membuat permintaan untuk model.
Dan kemudian memberikan model Informasi untuk melihat,
yang memberikan kepada pengguna, mungkin terbaik divisualisasikan sebagai berikut.
>> Jadi di sini kita.
Berikut kami di sebelah kiri, dan Model kami View Controller pengaturan paradigma.
Bagaimana cara kerjanya?
>> The us-- user-- membuat meminta ke controller.
Kami mengirimkan informasi seperti dengan bentuk HTTP.
Berdasarkan itu, controller ini pekerjaan adalah untuk memastikan
bahwa apa yang pengguna telah diberikan tidak sesuatu yang akan merusak model.
Dan controller akan memastikan bahwa semuanya OK.
Ini akan terlihat sangat hati-hati.
Jika ada kesalahan, itu akan menghentikan hal-hal sehingga user tidak bisa ke model.
>> Tetapi dengan asumsi semuanya OK dan itu adalah permintaan yang valid,
controller akan permintaan model-- yang itu akan meminta untuk memberikan informasi.
Model akan memberikan yang informasi ke halaman yang pandangan,
itu akan mengirimkan bahwa cara, dan kemudian melihat
akan mengisi informasi diminta dari model.
>> Jadi, misalnya, jika kita berbicara tentang masuk ke halaman Facebook Anda,
sebagai contoh.
Pandangan akan data yang keluar dari model yang
mengacu pada teman-teman Anda dan berita pakan atau hal-hal seperti itu, kan?
Tetapi Anda tidak akan melihat orang lain.
>> Anda akan getting-- sehingga Anda mengirimkan permintaan,
Anda login ke alasan model-- saya, Anda login ke halaman.
Penggunaan kontroler informasi login Anda
untuk membuat permintaan untuk model untuk membuat yakin bahwa Anda adalah yang Anda katakan Anda.
Model seperti, OK, ya, Anda adalah yang Anda katakan Anda,
jadi izinkan saya memberi Anda feed berita Anda.
Saya akan memberikan data mentah untuk feed berita Anda untuk melihat,
dan kemudian pandangan membuatnya cukup, proses itu dengan cara
bahwa kita terbiasa, menampilkan bahwa informasi kepada pengguna.
>> Perhatikan koneksi yang tidak ada pada diagram ini.
Tidak ada hubungan langsung antara Anda dan model.
Selalu ada penyangga ini controller di sisi input,
dan ada penyangga dari melihat pada sisi output.
>> Mungkin Anda seorang yang baik orang, dan jadi mungkin Anda
tidak akan melakukan kerusakan pada Model, tapi mungkin Anda tidak.
Atau mungkin ada seseorang yang sedang pengguna berbahaya yang akan mungkin
ingin merusak database Anda, mungkin menghapus segala sesuatu dari database Anda,
yang bisa sangat mahal.
Jelas, memiliki data pengguna is-- ada nilai untuk memiliki data pengguna.
Dan jika kita tidak menempatkan penyangga ini zona antara pengguna dan database-- yang
pengguna dan hal-hal model-- mungkin tidak akan begitu baik bagi kita.
>> Dan jadi penting untuk memiliki paradigma ini di mana
pengguna dapat berinteraksi dengan database, yakin, tetapi mereka harus melalui kami
untuk melakukan itu.
Dan itu pada dasarnya ide dengan MVC.
Itu mencoba untuk menerapkan keamanan data.
Itu mencoba untuk melindungi model dari secara tidak sengaja atau sengaja
pengguna yang jahat.
>> Jadi apa yang terjadi ketika kita menerapkan paradigma ini?
Nah, kita memisahkan data diperlukan dari website-- kami
yang model-- dari logika yang mengimplementasikan situs kami
functionality-- yang controller-- dan dari estetika sederhana dan halaman
template yang terdiri kami pengguna experience-- pandangan.
Apa artinya ini?
Nah, itu berarti Anda dapat membuat memandang terlihat oleh pengguna.
Anda dapat menyembunyikan model pergi.
Dan controllers-- pengguna bisa tidak mungkin langsung memanipulasi.
Mereka tidak perlu mengakses kode PHP Anda.
Mereka hanya perlu melihat bentuk di mana mereka dapat mengetik hal di.
Jadi mungkin bentuk yang pandangan, controller
adalah PHP bahwa bentuk tunduk kepada, yang kontroler membuat query untuk model,
model memberikan informasi lebih lanjut untuk tampilan yang berbeda yang
menampilkan informasi kepada Anda.
>> Program Anda dapat mengakses semua logika bisnis Anda,
namun pengguna Anda tidak bisa langsung mengakses logika bisnis Anda.
Dan satu khususnya, mungkin, ilustrasi terlihat ini
adalah Anda pernah menerima 403 kesalahan Terlarang.
Apakah Anda pernah pergi ke web Halaman dan melihat 403 Forbidden?
Ini semacam seperti 404 Not Found.
>> 403 Forbidden berarti Anda mencoba untuk mengakses halaman yang Anda tidak memiliki akses ke.
Mungkin situs yang menggunakan MVC pemisahan
untuk menyembunyikan diri logika bisnis yang perlu ada di server agar
untuk halaman untuk bekerja, tetapi tidak Anda ingin langsung mengaksesnya.
Jadi Anda mungkin mendapatkan error 403 Forbidden.
>> Dan bahkan tidak akan peduli jika Anda login.
Tidak ada pengguna dapat menyentuh file PHP dot ini.
Mereka hanya dapat menyentuh yang satu ini, dan satu-- ini
salah satu yang mereka dapat touch-- mungkin dapat berinteraksi dengan file terkunci-down
lebih tidak langsung dari pengguna.
>> Jadi, kadang-kadang kita melihat izin ini error, 403 ini Terlarang.
Bagaimana kita mengubah hak akses sehingga bahwa hal-hal yang dapat atau tidak dapat dilihat?
Ketika kita melakukan ini biasanya adalah dengan menggunakan Perintah Linux disebut chmod-- C-H-mod.
>> Untuk melakukan hal ini, format ini cukup simple-- chmod, perizinan,
dan berkas apapun yang Anda inginkan untuk menerapkan perubahan ke.
Jadi, mungkin Anda akan melihat sesuatu seperti this-- chmod 600 helpers.php.
Atau mungkin Anda akan melihat chmod this-- plus x yang mencakup direktori.
Apakah artinya ini meskipun?
Jadi, ada dua cara yang berbeda yang izin biasanya
diterapkan menggunakan chmod.
Yang pertama disebut Metode nomor oktal.
Hal ini biasanya berlaku izin untuk tiga kategori yang berbeda
pengguna pada saat yang sama.
Jadi chmod 711 file yang akan memungkinkan Anda hak untuk membaca, menulis, dan mengeksekusi
file Anda, akan memungkinkan others-- khusus
kelompok Anda dan dunia-- yang hanya mengeksekusi file.
Itulah yang ini diterjemahkan menjadi.
Angka pertama ada adalah apa yang dapat Anda lakukan,
angka kedua adalah apa yang kelompok Anda dapat melakukan,
dan yang ketiga adalah apa yang bisa dilakukan dunia.
Siapa saja siapa yang mengunjungi Anda Halaman, itulah dunia.
>> Apa angka-angka ini sebenarnya menerjemahkan ke meskipun?
Jadi ini pada dasarnya menerjemahkan seperti ini.
Jika izin tersebut nol, tidak ada yang bisa terjadi.
Jika itu salah satu, Anda dapat mengeksekusi file-- jika itu izin Anda.
Jika itu dua, Anda dapat menulis file tetapi Anda tidak dapat melakukan hal lain.
Jika itu tiga, Anda dapat menulis dan mengeksekusi.
Dan seterusnya, seperti yang Anda lihat.
Dan tujuh berarti Anda bisa melakukan semuanya.
>> Jadi mengapa ini disebut nomor oktal?
Nah, jika Anda berpikir tentang hal itu, inilah seperti noes dan yeses,
dan jika kita berpikir tentang mereka kotak merah dan hijau,
mungkin yang membuatnya sedikit lebih jelas.
Tetapi jika kita berpikir tentang kotak-kotak merah sebagai nol dan kotak hijau yang,
ini sebenarnya hanya set bilangan biner, kan?
000 diterjemahkan ke desimal 0; 001, desimal 1; 010 adalah desimal 2, dan seterusnya.
Dan begitu kita sebut oktal ini nomor karena ada
delapan kemungkinan yang berbeda.
Ada delapan berbeda digit jika kita
berbicara tentang tiga bit information--
sedikit membaca, menulis bit, dan bit eksekusi.
Jadi sekarang Anda dapat berbicara biner, desimal, hex, dan oktal.
Jadi, Anda tahu bagaimana berkomunikasi dengan komputer di empat nomor yang berbeda
sistem, sehingga cukup keren.
>> Jadi, selain oktal yang skema izin, ada
juga izin simbolik skema, yang sedikit berbeda
dan biasanya digunakan terbaik untuk menerapkan atau menghapus izin di seluruh papan.
Jadi chmod plus x berkas bisa menambahkan kanan
untuk mengeksekusi semua tiga kategori users--
diri sendiri, kelompok, dan dunia.
Ditambah itu adalah bagian menambahkan.
Hak untuk mengeksekusi, itu x.
Dan fakta bahwa itu berlaku untuk semua tiga kelompok pengguna akan menjadi itu.
>> Jadi this-- plus x-- mungkin akan menjadi persis sama dengan chmod 711
mengajukan, karena jika Anda kembali dan melihat skema nomor oktal,
satu dan tujuh memberi kita hak untuk mengeksekusi file.
Jadi ini mungkin adalah sama.
>> Dan Anda dapat menggunakan ini panduan referensi untuk apa
berbagai hal dalam Struktur chmod-ing simbolik yang.
Item hijau di sini akan di mana semua contoh berwarna hijau
adalah kedua lalu.
Biru akan menjadi biru.
Jeruk akan jeruk.
Sehingga Anda dapat menerapkan hal yang dapat Anda kelompok, untuk orang lain, untuk pengguna,
atau untuk semua orang.
Anda dapat memberi mereka baca, menulis, dan mengeksekusi akses,
dan Anda dapat menambahkan atau menghapus atau menetapkan set persis
perizinan menggunakan model ini.
>> Bagaimana kita memeriksa apa Skema izin file?
Sebelum kita mengubahnya, itu mungkin baik untuk benar-benar tahu
apa hak akses file yang.
Salah satu cara untuk melakukan ini adalah dengan menjalankan ls tetapi hanya men-tweak itu sedikit.
Jadi jika saya ketik ls lari l-- itu adalah huruf kecil l-- mungkin
Aku akan melihat sesuatu seperti ini.
Ini terlihat sedikit samar, tapi bagian yang kita benar-benar peduli tentang
adalah hal baru di sebelah kiri di sana.
Yang benar-benar menetapkan skema izin file.
Dan Anda mungkin bisa mengatakan karena itu mendapat r ini, w itu, dan x diselingi.
>> Mereka three-- pertama mengabaikan yang pertama
untuk kedua, yang kami akan menggandakan kembali ke.
Mereka pertama tiga setelah first-- sehingga kedua,
ketiga, dan keempat karakter dari string 10 karakter
adalah izin yang Anda miliki.
Jadi rupanya aku bisa membaca, menulis, dan mengeksekusi PHP.
Saya bisa membaca, menulis, dan mengeksekusi PHP WebDev,
dan saya bisa membaca dan menulis test.php.
>> Kelompok saya bisa melakukan ini.
Jadi rupanya dengan PHP dan direktori PHP WebDev,
kelompok saya dapat menulis untuk mereka tetapi tidak ada yang lain.
Dan dunia tidak bisa berbuat apa-apa.
Sehingga file ini tidak diakses publik
dan jika saya mencoba untuk mengaksesnya dan saya tidak
menjalankan Apache untuk membuat mereka dapat diakses, maka saya akan mendapatkan error 403.
Ini kegagalan.
Saya mencoba untuk mengakses file tapi saya tidak memiliki izin untuk melakukannya.
Dan apa itu karakter pertama?
Nah, Anda mungkin bisa memperkirakan di sini bahwa d's merujuk ke direktori
dan dasbor mengacu disebut "file biasa."
Dan mungkin Anda pernah melihat ini ketika Anda sudah mencoba untuk menghapus file menggunakan rm.
Anda telah melihat pesan samar "hapus file biasa" - dalam hal ini,
itu akan test.php.
File biasa hanya sesuatu itu bukan sebuah direktori.
Ada beberapa orang lain di sini, tetapi umumnya Anda
akan melihat d's untuk direktori dan tidak untuk elemen pertama.
Tapi itu benar-benar semua yang ada untuk itu.
Anda dapat memeriksa berkas izin menggunakan ls dasbor l,
Anda dapat mengubahnya dengan menggunakan chmod.
Dan, tentu saja, menggunakan these-- mengubah izin
untuk menegakkan paradigma MVC ini melindungi data di website Anda
dan tidak memungkinkan pengguna untuk mengakses segala sesuatu,
tetapi hanya hal-hal yang mereka butuhkan untuk mengakses agar halaman Anda
untuk bekerja dengan cara yang Anda ingin bekerja.
>> Aku Doug Lloyd.
Ini adalah CS50.