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です。