DOUG LLOYD：たまに 我々はプログラミングしているとき
我々はそうなので、一般的に物事を行います 頻繁に、そして非常に多くの人々
idea--同じまたは同じことを行います 事、それは名前を持っていること。
MVCは、1つのようなものです。
これは、プログラミングパラダイムと呼ばれています。
これは、一種のベストプラクティスのようなものです それがダウンして蒸留されています
何かをしようとしている人々による。
この場合、実装 ページのシステム
ユーザーは、と相互作用すること より複雑なウェブサイト上で。
そして、それはとても一般的にその完了です それが標準として推奨します
他の人が従うことを好むかもしれないことを、 および方法の非常に特定のセットがあります
その一つは、このパラダイムに従うことができます。
>> そこで、MVCはパラダイム、そしてその理由は、 我々は抽象化の詳細にそれを使用しています
ユーザから。
いくつかのものユーザー 本当に参照する必要はありません。
彼らはただ持っていたいです 優れたユーザーエクスペリエンス、
我々はそれらを持っている必要はありません その一つ一つのファイルにアクセス
おそらく、私たちのウェブサーバ上に存在します。
ちょうどいくつかのファイルがあるかもしれません ユーザーエクスペリエンスを強化するために使用し、
そして私たちは離れて、これらの抽象することができます。
私たちは、ソートのように、それらを非表示にすることができます ユーザーは、それらを操作することはできません
しかし、私たちは私たちのpages--をpages-- それらに対処する方法を知っています
そしてそれらを呼び出すか、おそらく必要であり、 それら、またはそのようなことを望んでいます。
>> 第一の動機 MVCは、データのセキュリティがあるため、
MVCは通常で起動しますので、 データベースの操作のコンテキスト。
特に、我々 ユーザーがないようにしたいです
直接データベースに影響を与えるから。
私たちは、間接的にそれをやってみたいです 私たちのろ過。
あるいは、必ずすべての[OK]をすることで、その作り 私たちは、エラーチェックを少しやって
または安全プルーフ我々の前に データベースにそれを送ります
物事は、おそらく、間違って行くことができます 我々は注意しないなら、本当に間違っています。
>> だから、MVCはモデルビューコントローラの略です。
これらのそれぞれが何を意味するのですか？
基本的には、モデルは、データベースです。
どこにすべてのそれはです あなたのサイトのための重要なデータ
lives--ユーザ名、ログイン、パスワード。
そして、あなたは、それを更新し、それを参照することができ、 そのようなほとんどすべて。
あなたが尋ねるだろうデータベースを照会したいです データベースからの情報。
それはすべてのmodel--です あなたのサイトが住んでいるデータ。
>> ビューは一種のようなものです ユーザーエクスペリエンス。
それは彼らが後に表示ページです 彼らは情報を要求しました。
ので、多分彼らが提出します そのログインinformation--
それらがコントローラにするだろう、 これは、私たちが第二では約話しましょう​​。
彼らは多分彼らを提出 ログイン情報、
データベースが照会されます。
情報が要求されると データベースから引き出されました。
そして、ユーザのログに記録された一回 で、彼らは彼らのホーム・ページを参照してください。
それはOK、ビューですか？
>> そして、コントローラは何です あなたのサイトのビジネスロジックと呼ば​​れます。
また、ビジネスロジックは、 これらの用語のいずれかのこと
wishy-washy--好きな種類のですが、 ビジネスロジックは何を意味するのでしょうか？
基本的にはあなたのビジネス ロジックはあなたのPHPです。
あなたのユーザーが必要としません。 直接あなたのPHPを見るために、
しかし、あなたのPHPは、おそらく何が起こっているのです データベースへの要求を行うことができます。
>> したがって、ユーザーの意志入力 ビューの情報、
どのコントローラを統合します。
同様に、それらがフォームに入力します。
どのようにそのフォームプロセス 情報は、コントローラです。
それは実際のですPHPの モデルへの要求を行います。
そしてモデルは与え ビューへの情報、
どのユーザに与えます 次のようにおそらく最高の可視化。
>> そこでここではあります。
ここで私たちは、左側のだし、私たちのモデル ビューコントローラパラダイム配置。
それがどのように動作しますか？
>> user-- us--は作ります コントローラに要求。
我々は情報を提出 HTTPフォームなどによって。
それに基づいて、コントローラの ジョブが確認することです
与えられたユーザがどのようなことではありません モデルに損傷を与えるもの。
だからコントローラがために起こっています すべてがOKだことを確認してください。
それは非常に注意深く見てになるだろう。
すべてのエラーがあれば、それは物事を停止します ユーザはモデルに取得することはできません。
>> しかし、すべてのを想定して [OK]を、それが有効なクエリですが、
コントローラはmodel--を照会します それは、情報を提供することを求めるだろう。
モデルはそれを提供します ビューのページへの情報、
それはそれを、それを送信します 方法、および、ビュー
情報を移入します モデルから要求されました。
>> ですから、例えば、我々は話をしている場合 自分のFacebookのページにログインについて、
例えば。
ビューでは、データになります それは、そのモデルから出てきました
お友達やニュースを指し、 右、そのような飼料またはスタッフ？
しかし、あなたが誰か他の人のを見ていないだろう。
>> あなたはとてもgetting--ことだろう クエリを送信します、
あなたmodel--言い訳にログイン 私は、ページにログインします。
コントローラが使用 ログイン情報
作るためにモデルに要求を行います あなたはあなたが言う人であることを確認してください。
モデルのような、[OK]を、はい、 あなたはあなたがいると言う人あり、
だから私はあなたのニュースフィードを与えてみましょう。
私はあなたのために生データをあげます ビューにあなたのニュースフィード、
して、ビューがそれを作ります かなり、方法でそれを処理します
我々は、表示、するために使用していること ユーザーにその情報。
>> 接続に注意してください この図に存在しません。
直接接続はありません あなたとモデルの間。
このバッファは常にあります 入力側のコントローラ、
とのバッファがあります 出力側に表示します。
>> たぶん、あなたは良いしています 人、およびので、多分あなた
の損傷はしないだろう モデルが、多分あなたはないです。
それともだ誰かがあります 誰が多分悪意のあるユーザー
多分、あなたのデータベースを損傷したいです データベースからすべてを削除し、
これは非常に高価である可能性があります。
明らかに、ユーザデータを持ちますis-- ユーザーデータを有することに価値があります。
そして、私たちはこのバッファを入れなかった場合 ユーザーとdatabase--間の領域
ユーザーとmodel--もの 私たちのためにそのようにうまくいっていない可能性があります。
>> そしてそれは、に重要です どこにこのパラダイムを持っています
ユーザーは、データベースと対話することができ、 確かに、しかし、彼らは私たちを通過する必要があります
それをするために。
そして、それは基本的に、MVCと考えです。
これは、データのセキュリティを実装しようとしています。
これは、モデルを保護しようとしています 不注意または故意から
悪意のあるユーザー。
>> だから何が起こるとき 我々は、このパラダイムを適用しますか？
まあ、我々はデータを分離しています 私たちのwebsite--から必要
ロジックからmodel-- それが私たちのウェブサイトの実装します
controller-- functionality--と シンプルな美しさとペ​​ージから
私たちを備え​​るテンプレート ユーザーは、ビューをexperience--。
これは何を意味するのでしょうか？
まあ、それはあなたが作るこ​​とができることを意味 ユーザに見える景色。
あなたは、モデルを離れて非表示にすることができます。
また、ユーザーをcontrollers-- 多分直接操作することはできません。
彼らはあなたのPHPコードにアクセスする必要はありません。
彼らはただ、フォームを表示する必要があります 彼らはどこにものを入力することができます。
ので、多分形式です ビュー、コントローラ
フォームがに提出PHPがあり、 コントローラは、モデルに問い合わせを行います
モデルは、より多くの情報を提供します その別のビューに
あなたに情報が表示されます。
>> あなたのプログラムがアクセスすることができます あなたのビジネスロジックのすべて、
しかし、ユーザーが直接することはできません あなたのビジネスロジックにアクセスします。
そして、もう一つ、特に、おそらく、 この目に見えるイラスト
あなたは今まで受けてきています 403 Forbiddenに。
あなたは今までウェブに行っています ページと403は禁断の見たことありますか？
それは一種のが見つかりませんでした404のようなものです。
>> 禁断403は、アクセスしようとしたことを意味します あなたがアクセス権を持っていないページ。
おそらく、そのサイトがあります MVCの分離を使用して
そのビジネスロジックを離れて非表示にすること ために、サーバー上に存在する必要があります
ページが機能するのではなく、 あなたはそれを直接アクセスしたいです。
だから、403 Forbiddenになったのかもしれません。
>> そして、それも問題ではないだろう あなたはログインしている場合。
どのユーザーも、このドットのPHPファイルに触れることはできません。
彼らは触れることができます これ一つであり、この選びます -
彼らはおそらくtouch--ことができるもの ロックダウンされたファイルと対話することができます
より間接的にユーザーより。
>> そこで、我々は時々、この権限を参照してください エラー、この403は禁断します。
どのように我々はそのようにパーミッションを変更します 物事をか見ることができないことを？
我々はこれを行うと、通常使用することです Linuxコマンドはchmod-- C-H-MODと呼ばれます。
>> これを行うには、フォーマットがかなりあります chmodのsimple--、権限、
あなたが好きなファイル にその変更を適用します。
だから、多分あなたは何かを参照してくださいね this--のchmod 600 helpers.phpような。
それとも、this-- chmodコマンドを参照してくださいね ディレクトリが含まれてプラスX。
いえ、これはどういう意味でしたか？
そこで、二つの異なる方法があります パーミッションは通常であることを
chmodコマンドを使用して適用。
最初に呼び出されました 8進数の方法。
これは通常のアクセス許可を適用します 3つのカテゴリーに
同時に、ユーザーの。
だから、chmodの711ファイルがあなたをできるようになります 読み取り、書き込み、実行する権利
あなたのファイル、できるようになります 特にothers--
あなたのグループとworld-- ファイルのみを実行します。
それが、これはに変換するものです。
そこに最初の番号 あなたは何ができるかです、
2番目の数字はあります あなたのグループは何ができますか、
第三世界は何ができるかです。
あなたを訪問しています誰も ページは、それが世界の。
>> これらの数字は何ですか 実際にかかわらずに変換？
したがって、これらは基本的に次のように変換します。
権限がある場合 ゼロは、何が起こることはできません。
それは一つだ場合は、実行することができます それはあなたの許可だ場合file--。
それが2の場合は、ファイルを書き込むことができます しかし、あなたは何かを行うことはできません。
それが3なら、あなた 書き込み、実行することができます。
ように、あなたが見ることができるように。
そして7は、あなたがすべてを行うことができることを意味します。
>> では、なぜこれらは、8進数と呼ばれていますか？
さて、あなたはそれについて考える場合、 ここでのNOEとyesesようなものです、
私たちはそれらについて考える場合 赤と緑のボックスなど、
多分それはそれは少し明確になります。
しかし、我々は、これらの赤いボックスを考える場合 ものとしてゼロと緑のボックスなど、
これらは実際にはセットされています 2進数の、右？
000は0を小数に変換します。 001、 小数点以下1。 010というように小数点以下2である、と。
そして、私たちはこれらの進を呼び出します 数字があるため、
8つの異なる可能性があります。
8があります。 私たちがしている場合は、別の数字
3の話 information--のビット
読み出しビット、書き込み ビット、および実行ビット。
だから今、あなたはバイナリを話すことができます、 小数、Hex値、およびオクタル。
だから、と通信する方法を知っています 四つの異なる数のコンピュータ
システムなので、それはかなりクールです。
>> だから、オクタル以外 許可方式は、あります
また、シンボリック許可 わずかに異なる方式で、
そして通常は適用するのが最善の使用されていますか 軒並み権限を削除。
だから、プラスXファイルをchmodコマンド 権利を追加することができます
3つのすべてに実行します users--のカテゴリー
あなた自身、あなたのグループ、そして世界。
それに加えて、加算部分です。
実行する権利は、それがXの。
そして、実際にはそれがすべてに適用されることを ユーザーの3つのグループがAになります。
>> だからプラスx--はおそらく起こっていますthis-- chmodの711とまったく同じになるように
あなたが戻って行く場合のため、ファイル、 8進数のスキームを見て、
ものとセブンは私たちを与えます ファイルを実行する権利。
だから、これはおそらく同じです。
>> そして、あなたはこれを使用することができます 何のためのリファレンスガイド
でいろいろなこと シンボリックchmodの-る構造です。
緑のアイテムはこちらになります ここで、すべての緑色の例
秒前でした。
青は青になります。
オレンジはオレンジ色になります。
つまり、あなたに物事を適用することができます グループ、他の人に、ユーザに対して、
もしくはみんなに。
あなたが読んでそれらを与えることができ、 書き込み、および実行アクセス権を、
あなたが追加または削除することができます または正確にセットを割り当てます
このモデルを使ってアクセス権の。
>> 私たちは何を確認するにはどうすればよいです ファイル許可スキームがありますか？
我々はそれを変更する前に、それはです 実際に知っている、おそらく良いです
どのようなファイルのアクセス権があります。
これを行う1つの方法は、LSを実行することです しかし、それを少し微調整。
だから私は、入力した場合、LSはl--ダッシュ それは多分l--小文字です
私はこのようなものが表示されます。
それは少し不可解に見えますが、 私たちは本当に気一部
あそこ左のものがあります。
それは実際に指定します ファイルパーミッションのスキーム。
それだから、あなたはおそらく言うことができます Rの、のW、およびXが散在を得ました。
>> これらの最初のthree-- 最初のものを無視して
第二のために、どの 我々は戻って倍増します。
これらの最初の三つの後 first--第ので、
第三、および第四の文字 その10文字の文字列の
あなたが持っている権限です。
だから、明らかに私は読むことができ、 書き込み、およびPHPを実行します。
私は、読み取り、書き込み、およびすることができます PHP WebDevを実行し、
私は読んで、test.phpを書くことができます。
>> 私のグループは、これを行うことができます。
だから、明らかにPHPで PHP WebDevディレクトリ、
私のグループはに書き込むことができます 彼らが、何もありません。
そして、世界は何もすることができません。
したがって、これらのファイルはありません 公的にアクセス可能
そして、私がしようとした場合 それらにアクセスし、私はしませんでした
それらにアクセスできるようにApacheを実行して、 私は403エラーになるだろう。
それは失敗です。
私は、ファイルにアクセスしようとしましたが、私 それを行うための権限がありません。
そして、その最初の文字は何ですか？
さて、あなたはおそらく外挿することができます ここD'sがディレクトリを参照していること
そして、ダッ​​シュを参照 「通常のファイル。いわゆる "
あなたがきたときに多分あなたはこれを見てきました RMを使用してファイルを削除しようとしました。
あなたは、不可解なメッセージを見てきました 「通常のファイルを削除する」 - この場合には、
それはtest.phpをするだろう。
通常のファイルには何かであります それがディレクトリではありません。
他のいくつかあります ここでは、一般的にあなたがいます
D'sのディレクトリのを見に行きます 最初の要素のために何もありません。
しかし、それは本当にこれだけです。
あなたは、ファイルを確認することができます LSダッシュ​​リットルを使ってアクセス権、
あなたはchmodコマンドを使用してそれらを変更することができます。
そして、もちろん、these--使用 パーミッションを変更
このMVCパラダイムを強制します ウェブサイト上のデータを保護します
ユーザーを許可しません すべてにアクセスするには、
彼らが必要とするだけのもの あなたのページの順にアクセスします
あなたはそれが仕事をしたいように動作するように。
>> 私はダグロイドです。
これはCS50です。