1 00:00:00,000 --> 00:00:02,150 >> [セミナー] [Kohanaの:軽量PHPフレームワーク] 2 00:00:02,150 --> 00:00:04,000 [ブランドン劉] [ハーバード大学] 3 00:00:04,000 --> 00:00:07,270 [これはCS50である。] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >>こんにちは皆。私の名前はブランドンです。 5 00:00:09,130 --> 00:00:11,000 私は大学行って、コンピュータサイエンスでここに後輩だし、今日は話をするつもりだ 6 00:00:11,000 --> 00:00:14,460 PHPのWeb開発フレームワークですKohanaの、。 7 00:00:14,460 --> 00:00:17,260 今日は、ライブコーディングセミナーであることを行っている、 8 00:00:17,260 --> 00:00:21,000 私は基本的にKohanaのが何であるかを説明し、5〜10分を費やすつもりだ、 9 00:00:21,000 --> 00:00:25,000 そして私は、文字通りの超シンプルなブログを構築するつもりです 10 00:00:25,000 --> 00:00:28,570 あなたのために右ここに文字通りゼロから。 11 00:00:28,570 --> 00:00:32,229 我々は、KohanaのWebサイトからコードをダウンロードしようとしている 12 00:00:32,229 --> 00:00:35,000 そして、我々は、ブログの作成を開始するつもりだ、とうまくいけば、それは非常に有益だろう 13 00:00:35,000 --> 00:00:37,000 あなたはおそらく、多分わかりますので、私はいくつかのミスを作ってあげる、 14 00:00:37,000 --> 00:00:39,000 そしてあなたは私が彼らからの回復がわかります、 15 00:00:39,000 --> 00:00:42,040 私はこのブログを通じて構築するか、あなたが私の思考プロセスが表示されます、 16 00:00:42,040 --> 00:00:44,000 そしてその間に、あなたもフレームワーク自体に慣れるでしょう。 17 00:00:44,000 --> 00:00:48,000 うまくいけば、それは非常に有益な運動になるでしょう。 18 00:00:48,000 --> 00:00:51,370 >>まず、フレームワークは、正確に何ですか? 19 00:00:51,370 --> 00:00:54,000 あなたは今までCS50を取ってきた場合、あなたは本当にいずれにも働いていない 20 00:00:54,000 --> 00:00:56,000 フレームワークはまだ、との事はこれです。 21 00:00:56,000 --> 00:01:00,000 あなたはおそらくすでに1 Web開発PSETをやった、 22 00:01:00,000 --> 00:01:03,000 そして、あなたが、ウェブサイトを構築し、建物のウェブサイトを維持していきましょう。 23 00:01:03,000 --> 00:01:05,000 あなたは、いくつかのことに気づき始めるでしょう。 24 00:01:05,000 --> 00:01:07,000 あなたが気づく最初の事は、おそらく同じことをやっているということです 25 00:01:07,000 --> 00:01:09,150 何度も繰り返し、すべての時間、 26 00:01:09,150 --> 00:01:13,000 ユーザーの入力データをクリーニングするようなもの、 27 00:01:13,000 --> 00:01:17,250 特定の方法でファイルを整理するようなもの。 28 00:01:17,250 --> 00:01:19,000 あなたも、おそらくわかります他の事はあなたのコードということです 29 00:01:19,000 --> 00:01:21,000 非常に、非常に厄介ななることを始めることがあり、 30 00:01:21,000 --> 00:01:24,000 あなたは厄介なままにしておくと、それを維持することは非常に苦労することがあり、 31 00:01:24,000 --> 00:01:26,000 またはあなたがあなたのコードを構造化するために起動し、モジュラー作ること 32 00:01:26,000 --> 00:01:28,510 それのメンテナンス性の向上のために、特定の方法で。 33 00:01:28,510 --> 00:01:31,020 >> Webフレームワークは基本的にインチ来た場所です 34 00:01:31,020 --> 00:01:33,680 多くのウェブサイトを構築していたこれらの人々は、彼らは言った、 35 00:01:33,680 --> 00:01:35,820 「我々は、この私たちがウェブサイトを構築するひとつひとつの時間をやり直す必要はありません。 " 36 00:01:35,820 --> 00:01:39,050 「なぜ我々はあなたのためだけに、これらすべてのことを実行し、パッケージを作成しない 37 00:01:39,050 --> 00:01:41,250 ひとつひとつの時間は、あなたがウェブサイトを構築したい? " 38 00:01:41,250 --> 00:01:43,030 だからあなたが新しいウェブサイトを作成するときに、 39 00:01:43,030 --> 00:01:45,880 あなただけの、まさにこの特定のウェブサイトが何であるかに焦点を当てる。 40 00:01:45,880 --> 00:01:48,630 あなたはすべての様々なコンフィギュレーションを繰り返す必要はありません 41 00:01:48,630 --> 00:01:53,070 とコードの分離と書き換えたコード 42 00:01:53,070 --> 00:01:56,180 あなたが頻繁にあなたがウェブサイトを作っているときに実行しなければならないこと。 43 00:01:56,180 --> 00:01:59,410 アイデアは、フレームワークを使用すると、より高いレベルのコードを記述することができることである 44 00:01:59,410 --> 00:02:01,030 下位レベルの詳細を気にせずに。 45 00:02:01,030 --> 00:02:03,670 下位レベルの詳細は、のようなものかもしれません 46 00:02:03,670 --> 00:02:07,250 ユーザ入力データをクリーニングを扱う。 47 00:02:07,250 --> 00:02:09,320 それはあなたが本当に心配する必要はありませんものね。 48 00:02:09,320 --> 00:02:12,370 あなたは、あなたのWeb​​の割り当てが約実際に何であるかに焦点を当てる必要があります。 49 00:02:12,370 --> 00:02:14,790 これは、定型的なコードの多くを排除します。 50 00:02:14,790 --> 00:02:16,640 それはあなたのプロジェクトのためのアーキテクチャです。 51 00:02:16,640 --> 00:02:18,680 >>最も人気の一つは、モデル - ビュー - コントローラになります 52 00:02:18,680 --> 00:02:20,380 私は2番目にについて話をするつもりがある。 53 00:02:20,380 --> 00:02:22,790 と多くの時間は、これらのフレームワークは、一連の手順を具体化、 54 00:02:22,790 --> 00:02:25,750 規則、および使用するためのベストプラクティス 55 00:02:25,750 --> 00:02:28,190 ようにするには、Webフレームワークを採用するとき 56 00:02:28,190 --> 00:02:30,050 あなたは、特定の方法でコードを記述する必要があります 57 00:02:30,050 --> 00:02:32,430 そしてそれは、一般原則合意したセットの 58 00:02:32,430 --> 00:02:34,290 一般的であることが受け入れられている社会による 59 00:02:34,290 --> 00:02:36,230 コー​​ドを書くための良い方法。 60 00:02:36,230 --> 00:02:38,260 それは、より使いやすく、コードがより保守します 61 00:02:38,260 --> 00:02:40,030 などなど。 62 00:02:40,030 --> 00:02:42,740 そして最後に、私が欲しいものは、フレームワークについて強調する 63 00:02:42,740 --> 00:02:45,980 ライブラリに対する制御の反転についてのこの考え方であり、事はこれです。 64 00:02:45,980 --> 00:02:48,430 ライブラリとフレームワークとの間の違いは、ライブラリと 65 00:02:48,430 --> 00:02:51,990 あなたはまだメインプログラムを書いている、 66 00:02:51,990 --> 00:02:54,460 あなたは、ソートのライブラリを呼び出すしている 67 00:02:54,460 --> 00:02:56,810 あなたのために何かをするライブラリ呼びかけ。 68 00:02:56,810 --> 00:02:58,180 ライブラリとフレームワークの違い 69 00:02:58,180 --> 00:03:01,620 フレームワークは、コントロールで始まりますということで、 70 00:03:01,620 --> 00:03:03,260 そしてそれはあなたのコードを呼び出し、 71 00:03:03,260 --> 00:03:06,190 だから、と考えることができます - それはフレームワークと呼ばれるのはこのためです - 72 00:03:06,190 --> 00:03:09,700 フレームワークは、あなたのコードのために、このフレームと構造を提供し、 73 00:03:09,700 --> 00:03:11,320 あなたが穴を埋める、 74 00:03:11,320 --> 00:03:13,990 これは第二に、より明らかになるであろう 75 00:03:13,990 --> 00:03:16,670 あなたが見るとき私は、フレームワークのコンテキスト内でコードを書き始める。 76 00:03:16,670 --> 00:03:19,130 あなたは、私がギャップを埋めるんだことがわかります、 77 00:03:19,130 --> 00:03:22,450 フレームワークは、すべての可動部分を制御の一種である、 78 00:03:22,450 --> 00:03:27,420 そして私は、適切な場所に作品を配置する必要があります。 79 00:03:27,420 --> 00:03:29,360 >>今日はKohanaの話をするつもりだ、 80 00:03:29,360 --> 00:03:31,610 これは多くのPHPフレームワークの1つです。 81 00:03:31,610 --> 00:03:34,550 Webフレームワークが存在し、そしてものは、事実上すべての単一の言語であり、 82 00:03:34,550 --> 00:03:38,330 Kohanaのは間違いなくあるので、私はKohanaのピッキングよ 83 00:03:38,330 --> 00:03:43,250 一般的にピックアップする最も簡単なPHPフレームワークとして認識。 84 00:03:43,250 --> 00:03:45,940 それは、最も軽量です。 85 00:03:45,940 --> 00:03:48,470 多くの、より多くの機能が付属してそこに他のものがあります 86 00:03:48,470 --> 00:03:51,590 しかし、彼らは拾うことがより困難になる傾向があります。 87 00:03:51,590 --> 00:03:54,920 そして最後に、Kohanaのは、MVCアーキテクチャを採用しています。 88 00:03:54,920 --> 00:03:57,780 それは我々が文字通りプロジェクトをビルドすることができることを十分に軽量だ 89 00:03:57,780 --> 00:03:59,620 右ここ右あなたの目の前で、あなたはかなりのことができます 90 00:03:59,620 --> 00:04:02,780 かなり簡単に一緒に従う。 91 00:04:02,780 --> 00:04:04,420 >> MVCアーキテクチャとは何ですか? 92 00:04:04,420 --> 00:04:06,540 これは、モデル - ビュー - コントローラの略で、 93 00:04:06,540 --> 00:04:09,560 あなたは、コードを考えれば、多分あなたは、これまで書いてきた 94 00:04:09,560 --> 00:04:11,280 あなたのWeb​​開発のpsetの一部について 95 00:04:11,280 --> 00:04:14,710 あなたが書き込みを開始する際には通常、こののいくつかを見ることができるかもしれないが、 96 00:04:14,710 --> 00:04:16,500 より複雑なWebアプリケーション、 97 00:04:16,500 --> 00:04:21,209 これらの3つのセグメント間の分割はますます明白になる。 98 00:04:21,209 --> 00:04:26,740 私は、一種のスタックとして、ここで、MVCを打ち出した 99 00:04:26,740 --> 00:04:29,920 そして、多くの場合、あなたは、人々がWeb開発にスタックの話を聞くよ、 100 00:04:29,920 --> 00:04:33,760 これは、その概念を示すことである 101 00:04:33,760 --> 00:04:37,510 各層は、それぞれの成分は、実際には通信しようと 102 00:04:37,510 --> 00:04:40,750 2他のコンポーネントとの間。 103 00:04:40,750 --> 00:04:44,550 誰かがクライアントまたはブラウザとしてあなたのウェブサイトにアクセスします。 104 00:04:44,550 --> 00:04:48,870 彼らは、ビューのコードをあなたのプログラムと対話します。 105 00:04:48,870 --> 00:04:50,500 ビューのコードは、コントローラと対話する。 106 00:04:50,500 --> 00:04:52,400 コントローラは、モデルと相互作用する 107 00:04:52,400 --> 00:04:55,090 モデルは、SQLデータベースと対話する。 108 00:04:55,090 --> 00:04:59,670 あなたが適切にあなたのコードを記述する場合との間にはホッピングはありません。 109 00:04:59,670 --> 00:05:01,670 >>これらの事は何をしますか? 110 00:05:01,670 --> 00:05:06,020 このモデルは、基本的に、データを処理するコードの一部です。 111 00:05:06,020 --> 00:05:09,100 あなたは格納するオブジェクトでは、データベースを扱うものは、 112 00:05:09,100 --> 00:05:11,280 またはデータベースにこれらのオブジェクトを取得し、 113 00:05:11,280 --> 00:05:13,450 それは、すべてのモデルが扱うだ。 114 00:05:13,450 --> 00:05:15,290 たぶん、あなたは、データベース内のオブジェクトを持っている。 115 00:05:15,290 --> 00:05:17,700 私たちは、ポストに関係するもののモデルを作成しましょう​​、 116 00:05:17,700 --> 00:05:19,760 そのポストはそれにいくつかの属性を持つことができる。 117 00:05:19,760 --> 00:05:23,900 あなたはこれらの記事を保存したり、記事を取得周りの機能を持っている可能性 118 00:05:23,900 --> 00:05:26,270 またはなどなどポストとをフィルタリング、 119 00:05:26,270 --> 00:05:28,880 それは、モデルが扱うのはすべてのコードです。 120 00:05:28,880 --> 00:05:31,780 コントローラは、アプリケーションロジックの一種である、 121 00:05:31,780 --> 00:05:37,910 異なる多くのことは、アプリケーション·ロジックに行くことができます。 122 00:05:37,910 --> 00:05:39,790 あなたは別のAPIに話している場合は、 123 00:05:39,790 --> 00:05:42,310 あなたがアプリケーションロジックを扱っているところであるかもしれません。 124 00:05:42,310 --> 00:05:47,990 あなたは、複数の異なるモデルからデータを持ってきてしようとしている場合 125 00:05:47,990 --> 00:05:51,540 しばしばコントローラによって処理されてもよいこと、いくつかの方法でそれらを組み合わせることがある。 126 00:05:51,540 --> 00:05:53,820 例えば、Facebook上で、あなたの友人の誰かであれば、 127 00:05:53,820 --> 00:05:58,500 その関係を確立する、おそらくその行為 128 00:05:58,500 --> 00:06:00,490 コントローラによって行うことができる。 129 00:06:00,490 --> 00:06:04,350 >>そして最後に、ビューでは、実際に見たものを生成だコードです。 130 00:06:04,350 --> 00:06:07,410 多くの時間、私はCS50のpsetを考える 131 00:06:07,410 --> 00:06:10,050 彼らは本当に、これらの3つの事を分離するためにあなたたちを奨励していない。 132 00:06:10,050 --> 00:06:12,430 おそらく、一番上にある場合に、この大きな、長いファイルがあるでしょう 133 00:06:12,430 --> 00:06:15,130 あなたには、いくつかのSQLクエリを作成し、おそらくいくつかの処理を行う 134 00:06:15,130 --> 00:06:17,020 データ上では、データベースから取得し、 135 00:06:17,020 --> 00:06:19,370 そして、あなたは一番下にあるすべてのHTMLを持っている。 136 00:06:19,370 --> 00:06:22,840 そして、あなたのようにあなたがより多くのページを作成することがあります 137 00:06:22,840 --> 00:06:25,790 あなたはまた、いくつかのコードの繰り返しを持っているつもり、としていること、 138 00:06:25,790 --> 00:06:29,600 ことは、あなたのファイルが本当に大きくて長くなっている 139 00:06:29,600 --> 00:06:32,370 と管理が手に負えなくなります。 140 00:06:32,370 --> 00:06:34,500 MVCはとてもよく考えられている理由 141 00:06:34,500 --> 00:06:36,120 多くの理由のためである。 142 00:06:36,120 --> 00:06:38,110 まず最初に、関心事の分離と呼ばれるものです。 143 00:06:38,110 --> 00:06:40,370 これはあなたが持っているという考えである - 144 00:06:40,370 --> 00:06:43,520 理想的にコードの1枚は、1のことを行う必要がありますし、本当によくそれを行う、 145 00:06:43,520 --> 00:06:47,210 あなたは本質的に異なることを行うコードの断片を結合するべきではありません。 146 00:06:47,210 --> 00:06:49,230 例えば、コードとモデルコードを表示、 147 00:06:49,230 --> 00:06:51,040 彼らは本当に関係している必要はありません。 148 00:06:51,040 --> 00:06:53,290 彼らは、同じファイルである必要はありませんので、あなたは、それらを分離することができたとき 149 00:06:53,290 --> 00:06:55,300 ので、メンテナンスが簡単です。 150 00:06:55,300 --> 00:06:57,130 >>他の事はコードの再利用です。 151 00:06:57,130 --> 00:06:59,770 あなた自身が、同じSQLクエリを記述するか、に見つけることが 152 00:06:59,770 --> 00:07:03,060 1機能に抽象化することができ、同様のクエリ、 153 00:07:03,060 --> 00:07:05,440 それはモデルとコントローラの背後にある考え方ですが、 154 00:07:05,440 --> 00:07:09,690 プロジェクト内の別の場所で再利用することができます別の関数でそれを有している。 155 00:07:09,690 --> 00:07:12,420 そして最後に、それは、あなたのコードを、乾燥に縛らだ 156 00:07:12,420 --> 00:07:14,700 または自分自身を繰り返していない、自分を繰り返さないでください。 157 00:07:14,700 --> 00:07:18,090 これは開発中で、非常に分かりやすい。 158 00:07:18,090 --> 00:07:20,110 あなたは、あなたがあなた自身を繰り返している場合ので、あなた自身を繰り返したくない場合は常に、 159 00:07:20,760 --> 00:07:23,400  それは維持するために多くのコストがかかります。 160 00:07:23,400 --> 00:07:26,040 あなたが1のものを変更したい場合は、どこにでもそれを変更する必要が、 161 00:07:26,040 --> 00:07:30,230 それはバグにつながり、それはひどいものだ。 162 00:07:30,230 --> 00:07:32,010 >>すべての権利。 163 00:07:32,010 --> 00:07:37,270 まったくこれまでにKohanaのについての質問? 164 00:07:37,270 --> 00:07:39,200 素晴らしい。 165 00:07:39,200 --> 00:07:42,300 今、私たちは、ライブコーディングセッションに飛び込むつもりだ、 166 00:07:42,300 --> 00:07:48,050 うまくいけば、すべてがうまくいく。 167 00:07:57,200 --> 00:08:00,050 私は基本的にこのウェブサイトを構築するつもりです 168 00:08:00,050 --> 00:08:03,910 私のリモートサーバの一つであり、あなたたちもできることを途中で 169 00:08:03,910 --> 00:08:06,310 Webサイトを参照して、ウェブサイトにアクセスし、 170 00:08:06,310 --> 00:08:10,990 また環境は、私のリモートマシンよりも優れて構成されている、 171 00:08:10,990 --> 00:08:14,580 代わりに、OS XのLinuxを実行しているので、 172 00:08:14,580 --> 00:08:16,260 我々は文字通り開始するつもりだ。 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org。 174 00:08:18,110 --> 00:08:21,350 私は、Webサイトからコードをダウンロードするつもりです。 175 00:08:21,350 --> 00:08:24,610 私は、リンクのアドレスをコピーするつもりです、 176 00:08:24,610 --> 00:08:29,770 私のサーバーにアクセスし、それをダウンロードし、 177 00:08:29,770 --> 00:08:33,000 そして私はそれを抽出するつもりです。 178 00:08:38,330 --> 00:08:45,710 >> [学生]は、テキストを作ることができる最大のものは何ですか? 179 00:08:45,710 --> 00:08:47,330 [ブランドン劉]は良いことですか? 180 00:08:47,330 --> 00:08:50,070 [学生]ええ、それは大丈夫?>> [ブランドン劉]なんとかということです。 181 00:08:50,070 --> 00:08:54,500 私は、ZIPファイルをダウンロードし、Kohanaのというディレクトリにそれを解凍した 182 00:08:54,500 --> 00:08:58,820 そして我々は、そのCS50-Kohanaの名前を変更しようとしている 183 00:08:58,820 --> 00:09:01,140 とのは入ってみましょう 184 00:09:01,140 --> 00:09:03,610 素晴らしい。 185 00:09:03,610 --> 00:09:06,870 ここでは、異なるファイルの束を参照してください。 186 00:09:06,870 --> 00:09:10,140 あなたのほとんどは無視することができます - ここでの一つ一つのファイルを介して行くつもりはない判断に苦しみ 187 00:09:10,140 --> 00:09:13,130 私たちの時間的制約のため、 188 00:09:13,130 --> 00:09:16,310 一般的にはあなたがKohanaの、あなたが最初に行うことをインストールすると、 189 00:09:16,310 --> 00:09:23,210 あなたがディレクトリに移動され、 190 00:09:23,210 --> 00:09:26,050 あなたは、基本的にはいくつかの環境テストやその他もろもろをやる 191 00:09:26,050 --> 00:09:28,640 確認するために、ご使用の環境が適切にKohanaのを実行するように設定されている 192 00:09:28,640 --> 00:09:31,450 すべてが大丈夫であることを確認してください。 193 00:09:31,450 --> 00:09:35,510 あなたは、ほとんどのものが渡され見ることができますが、一般的には、常にこの1問題に遭遇 194 00:09:35,510 --> 00:09:38,180 それはいくつかのディレクトリが書き込み可能でないことを不平を言う場合には、 195 00:09:38,180 --> 00:09:40,410 それが原因一部のアクセス権のためです。 196 00:09:40,410 --> 00:09:43,080 私は、あなたたちはCS50でのファイルのアクセス権について学んだどのくらいかわからない 197 00:09:43,080 --> 00:09:47,920 あなたがWeb開発を行う場合、あなたはこの問題に多くのことを実行するつもり。 198 00:09:47,920 --> 00:09:58,340 私はそれを書き込み可能にするつもりだ 199 00:09:58,340 --> 00:10:03,390 そこに私達は行く - と私は私もしなければならないと思います。 200 00:10:03,390 --> 00:10:07,040 >>わかりま​​したので、今はすべてが合格見ることができ、 201 00:10:07,040 --> 00:10:10,000 今ではinstall.phpをファイルの名前を変更することを教えてくれます。 202 00:10:10,000 --> 00:10:15,630 私はinstalled.phpするinstall.phpをファイルを移動するつもりです、 203 00:10:15,630 --> 00:10:19,610 そして今、私が更新すると、 204 00:10:19,610 --> 00:10:22,810 それは私にいくつかのエラーを与える、およびデバッグの出番これです 205 00:10:22,810 --> 00:10:25,610 あなたが実際に起こる何が起こっているのか見ることができる場所です。 206 00:10:25,610 --> 00:10:28,460 ものが、デフォルトである、Kohanaのはことを前提としています 207 00:10:28,460 --> 00:10:31,480 あなたのプロジェクトは、ドメインのルートディレクトリにあり、 208 00:10:31,480 --> 00:10:35,920 そう、それはあなたがdemo.brandonkliu.comにあると期待しています。 209 00:10:35,920 --> 00:10:37,540 我々は、それがサブフォルダに実際だと、それを伝える必要があります。 210 00:10:37,540 --> 00:10:39,820 それは、CS50 Kohanaのというサブフォルダにあります。 211 00:10:39,820 --> 00:10:42,640 ことは、それがCS50-Kohanaのを誤解だ、である 212 00:10:42,640 --> 00:10:45,680 私は2番目にあなたに説明します何か他のもの、など。 213 00:10:45,680 --> 00:10:49,910 しかし、私はそれが予想されることだ何かを教えなければならない。 214 00:10:49,910 --> 00:10:53,700 私たちがやろうとしていることは、我々はbootstrap.phpのと呼ばれるこのフォルダに行くつもりです。 215 00:10:53,700 --> 00:10:59,260 そのさまざまなことが多く設定されているコンフィギュレーション·フォルダです。 216 00:10:59,260 --> 00:11:01,570 私はそれを開く。 217 00:11:01,570 --> 00:11:09,790 多分私がやります最初のものの一つは、タイムゾーンを変更です。 218 00:11:09,790 --> 00:11:13,910 >>そして見てみましょう。 219 00:11:13,910 --> 00:11:15,180 AHA!ここ。 220 00:11:15,180 --> 00:11:18,690 ここで別のコンフィギュレーション·ことわざの束があり、 221 00:11:18,690 --> 00:11:21,700 しかし、私が探している1は、ベースURLと呼ばれるこの事です 222 00:11:21,700 --> 00:11:24,570 そして私はそれがKohanaのに設定され得る、デフォルトでは、 223 00:11:24,570 --> 00:11:29,020 しかし私は、CS50-Kohanaのにそれを変更するつもりです 224 00:11:29,020 --> 00:11:32,880 そして私はそれを修正すべきだと思う。 225 00:11:32,880 --> 00:11:34,150 はい、素晴らしい。 226 00:11:34,150 --> 00:11:39,530 デフォルトでは、それは、それが言う、働いていることを確認しに "Hello World。" 227 00:11:39,530 --> 00:11:42,930 それはどこから来たのか?どのように我々はハローワールドになったのですか? 228 00:11:42,930 --> 00:11:47,640 場所を正​​確に、実際にそれを書いたコードがある? 229 00:11:47,640 --> 00:11:50,240 それを理解するために、私は、ルーティングと呼ばれるこの概念を紹介します。 230 00:11:50,240 --> 00:11:52,590 ほとんどすべてのWebフレームワークは、ルーティングと呼ばれる概念があり、 231 00:11:52,590 --> 00:11:57,230 特定のURLをマップするソフトウェアの一部である 232 00:11:57,230 --> 00:12:01,550 お使いの枠組みの中で、コードの特定の部分に。 233 00:12:01,550 --> 00:12:07,510 あなたには、いくつかのURLを持っている場合は、次のようなfoo.com /ブログ/すべてのいくつかのURLにアクセスしてください。 234 00:12:07,510 --> 00:12:11,170 その後、何フレームワークが何しようとしている - あるいは、少なくとも何Kohanaのが何しようとしている - 235 00:12:11,170 --> 00:12:15,540 それは、コントローラのブログと呼ばれるクラスを見つけるために起こっているされている 236 00:12:15,540 --> 00:12:18,720 そしてそれは、すべての関数という名前のアクションを実行するために起こっている。 237 00:12:18,720 --> 00:12:20,160 私は、クラスや関数について話している知っている、 238 00:12:20,160 --> 00:12:23,860 と私はあなたたちはクラスや関数をカバーしていない知っている 239 00:12:23,860 --> 00:12:26,470 まだCS50において、しかし、今のところ、 240 00:12:26,470 --> 00:12:29,800 あなたは機能のほんのグループとしてのクラスと考えることができ、 241 00:12:29,800 --> 00:12:32,900 関数を一緒にグループ化する方法。 242 00:12:32,900 --> 00:12:37,690 それは本当にあなたが知る必要があるすべてです。 243 00:12:37,690 --> 00:12:43,120 >>今、私たちは私たちのフォルダ構造を見れば、 244 00:12:43,120 --> 00:12:47,110 アプリケーションフォルダ内のクラスと呼ばれる別のフォルダがありますが、 245 00:12:47,110 --> 00:12:49,200 そして他のフォルダは、コントローラとモデルと呼ばれています。 246 00:12:49,200 --> 00:12:52,530 あなたがコントローラのフォルダ内を見ると、 247 00:12:52,530 --> 00:12:56,330 我々は、ウェルカムというファイルがあることがわかります 248 00:12:56,330 --> 00:13:00,370 あなたはここで見ることができ、コントローラようこそ呼ばれるクラスである 249 00:13:00,370 --> 00:13:02,340 ·行動指標と呼ばれる機能がありますが、 250 00:13:02,340 --> 00:13:06,360 そしてそれは何を行うことは、それがハローワールドへの応答の本文を設定している。 251 00:13:06,360 --> 00:13:08,730 コー​​ドが書かれているところです。 252 00:13:08,730 --> 00:13:11,610 他の質問はよく、私は行きませんでした、である 253 00:13:11,610 --> 00:13:13,680 何とか、何とか、何とか、/歓迎/インデックス。 254 00:13:13,680 --> 00:13:16,250 どのように私はここで終わるのですか? 255 00:13:16,250 --> 00:13:20,410 まあ、それはいうだけの理由です 256 00:13:20,410 --> 00:13:22,410 ここに私たちのブートストラップファイルの下部にある 257 00:13:22,410 --> 00:13:24,550 我々は我々のルートを設定する場合、 258 00:13:24,550 --> 00:13:26,570 あなたは彼らがあなたのためにいくつかのデフォルト値を設定することがわかります。 259 00:13:26,570 --> 00:13:28,990 デフォルトのコントローラは歓迎です。デフォルトのアクションはインデックスです。 260 00:13:28,990 --> 00:13:31,600 我々はそこに何も入れないときに自動的にようこそコントローラに行ってきました理由です 261 00:13:31,600 --> 00:13:33,940 とindexアクション。 262 00:13:33,940 --> 00:13:37,460 >>すべてがこれまでに理にかなって? 263 00:13:37,460 --> 00:13:40,850 今、あなただけのコントローラーに行く以上のことを行うことができます 264 00:13:40,850 --> 00:13:43,670 と具体的な行動。 265 00:13:43,670 --> 00:13:48,480 また、コントローラにパラメータを渡すことができます。 266 00:13:48,480 --> 00:13:56,390 単なる一例として、 267 00:13:56,390 --> 00:14:04,070 私はあなたを表示するには、このコントローラに別のアクションを追加するつもりです。 268 00:14:04,070 --> 00:14:09,130 それはあなたがそれを与えるどのようなことを伝えるために起こっているので、それでは、エコーこのアクションを呼びましょう、 269 00:14:09,130 --> 00:14:17,510 ので、私は基本的につかむつもりだ 270 00:14:17,510 --> 00:14:20,960 ルーティング·プログラムに私を介して送信されることになるだろう、パラメータ、 271 00:14:20,960 --> 00:14:24,440 あなたがここに見ることができるように、 272 00:14:24,440 --> 00:14:28,440 右こここの行は、あなたはそれを見ることができます 273 00:14:28,440 --> 00:14:31,270 これは、基本的には、コントローラを持っており、あなたが/を持っていることを意味し、 274 00:14:31,270 --> 00:14:33,480 そして、あなたはアクションを持っていて、別の/を持っている 275 00:14:33,480 --> 00:14:39,140 それはパラメータになるだろう、と我々は、この名前のIDを持っているので、 276 00:14:39,140 --> 00:14:42,450 山括弧の中、それは我々がこのパラメータIDを命名していることを意味します。 277 00:14:42,450 --> 00:14:45,490 後で私のコントローラのコード内の私は、そのパラメータのホールドをつかむしたい場合は、 278 00:14:45,490 --> 00:14:51,790 私は、IDという名前のパラメータを見つけ、私が書いたコードを使用することができます。 279 00:14:51,790 --> 00:14:59,290 それは私がここでやったことだ、と私は戻って言うつもりです、 280 00:14:59,290 --> 00:15:07,090 それを「あなたは言った」。 281 00:15:07,090 --> 00:15:10,760 だから今、私は当社のウェブサイトに行けば、 282 00:15:10,760 --> 00:15:19,550 私はcs50-kohana/welcome/echo/Helloooo--に行く 283 00:15:19,550 --> 00:15:21,420 ああ、その通りです。 284 00:15:21,420 --> 00:15:23,930 私が取り残さ1ステップがある。 285 00:15:23,930 --> 00:15:27,020 これは、ライブコーディングのアイデアの一部です。 286 00:15:27,020 --> 00:15:36,100 こちら>> 1のことです。見てみましょう。 287 00:15:36,100 --> 00:15:38,870 だから、通常はこれらのWebアプリケーションの多くでは、デフォルトで 288 00:15:38,870 --> 00:15:42,820 あなたのURLでこのindex.phpをの事を含める必要が、 289 00:15:42,820 --> 00:15:46,410 アイデアは、index.phpのエントリポイントの一種であるので、 290 00:15:46,410 --> 00:15:48,250 アプリケーションのが、もちろん、 291 00:15:48,250 --> 00:15:50,110 それは一種の迷惑持つことです。 292 00:15:50,110 --> 00:15:53,790 あなたは、index.phpのがあなたのURLに表示したくない 293 00:15:53,790 --> 00:15:56,080 そして箱から出してほとんどすべてのWebフレームワーク 294 00:15:56,080 --> 00:15:58,440 このindex.phpの問題を抱えている、 295 00:15:58,440 --> 00:16:03,370 ので、あなたはそれを削除することができるようにするいくつかの措置を取らなければならない。 296 00:16:03,370 --> 00:16:07,540 ので、この場合には、 297 00:16:07,540 --> 00:16:11,450 私たちがやろうとしていることは、我々は。htaccessファイルと呼ばれるファイルを使用するつもりである、 298 00:16:11,450 --> 00:16:13,900 これは、Apache Webサーバに固有のものです 299 00:16:13,900 --> 00:16:16,290 そしてそれは、書き換えたURLのようなことを行うことができます 300 00:16:16,290 --> 00:16:19,350 などなどのURLをリダイレクトして、 301 00:16:19,350 --> 00:16:24,280 とKohanaのは、我々が使用できるテンプレート。htaccessファイルを提供するのに十分いいです。 302 00:16:24,280 --> 00:16:28,300 ご覧のように>>、example.htaccess呼ばそこにファイルが存在し、 303 00:16:28,300 --> 00:16:33,410 そして我々は。htaccessのにそれをコピーするつもりだ。 304 00:16:33,410 --> 00:16:36,950 私はこれを開いて編集するつもりだ、 305 00:16:36,950 --> 00:16:40,840 そして基本的には異なるものの束を行います。 306 00:16:40,840 --> 00:16:45,320 あなたが見てみたいことがあり、キーの行はここです。 307 00:16:45,320 --> 00:16:49,840 アイデアは、これは言ってルールを設定していることである 308 00:16:49,840 --> 00:16:56,400 「さて、あなたは、それにindex.phpの前に付加を入力何でも。 " 309 00:16:56,400 --> 00:16:58,710 あなたはそれを見ることができます。 310 00:16:58,710 --> 00:17:00,370 *何にでも合う、何を意味し、 311 00:17:00,370 --> 00:17:03,300 その後、第2の部分は、index.phpを/ 0ドルです 312 00:17:03,300 --> 00:17:07,410 と0ドルは、以前マッチしたことをいう。 313 00:17:07,410 --> 00:17:09,500 それは理にかなっていますか? 314 00:17:09,500 --> 00:17:12,190 しかし、私が変更したい、本当に重要なことは、この書き換えベースを変更している 315 00:17:12,190 --> 00:17:14,300 これは、URLベースである。 316 00:17:14,300 --> 00:17:17,780 あなたから作業している場合、それは一種の前提としています。 317 00:17:17,780 --> 00:17:22,560 私はそれにCS50 Kohanaのを追加するつもりだ、 318 00:17:22,560 --> 00:17:26,530 そしてそのように、今私はindex.phpをを削除した場合、 319 00:17:26,530 --> 00:17:32,110 それが動作するはずですし、私はいくつかの番号を追加するつもりだ 320 00:17:32,110 --> 00:17:36,380 それが実際に仕事をしたことを表示します。 321 00:17:36,380 --> 00:17:38,130 旨そうだな。 322 00:17:38,130 --> 00:17:40,260 >>これまでのご質問? 323 00:17:40,260 --> 00:17:42,300 [学生]それはどのように123を作るために知っていましたか? 324 00:17:42,300 --> 00:17:44,120 その引数がある? 325 00:17:44,120 --> 00:17:46,560 その通りです。あなただけの引数と同じように考えることができます。 326 00:17:46,560 --> 00:17:52,410 しかし、奇妙なことは、しかし、それはKohanaのはそれをしない方法です 327 00:17:52,410 --> 00:17:54,910 彼らは正確に引数のようにそれをしないです。 328 00:17:54,910 --> 00:17:56,930 あなたはこのようにそれをつかむ必要があります。 329 00:17:56,930 --> 00:18:01,030 あなたがリクエストオブジェクトを取得し、IDという名前のパラメータとして、依頼する必要があり、 330 00:18:01,030 --> 00:18:03,240 その名前IDは、そのブートストラップファイルから来ている 331 00:18:03,240 --> 00:18:06,990 私は以前に示した、と名前IDがこれらの山括弧であったこと、 332 00:18:06,990 --> 00:18:11,580 それはあなたがこれらのパラメータをつかむ方法を説明します。 333 00:18:11,580 --> 00:18:14,010 素晴らしい。 334 00:18:14,010 --> 00:18:17,550 その他のご質問は? 335 00:18:17,550 --> 00:18:20,500 私が言ったように、コントローラは、彼らは、アプリケーション·ロジックを処理 336 00:18:20,500 --> 00:18:22,980 だから、あなたがthat's見ることができる1インスタンスの - 337 00:18:22,980 --> 00:18:24,830 それは非常に基本的だが、それはまだ、アプリケーションロジックですが、 338 00:18:24,830 --> 00:18:27,980 パラメータをつかみ、新しい文字列を作成するという考え 339 00:18:27,980 --> 00:18:31,920 つまり、 "あなたは、何とか言っ"とし、あなたにその背中を吐き、と言います。 340 00:18:31,920 --> 00:18:34,030 一般的に何をやっていることは、別のコントローラを作成することです。 341 00:18:34,030 --> 00:18:36,450 あなたのウェブサイトのさまざまな部分のための別々のコントローラを作成します。 342 00:18:36,450 --> 00:18:38,160 >>今日は非常に簡単なウェブサイトを作るつもりだ、 343 00:18:38,160 --> 00:18:40,420 それは非常に基本的なブログになるだろう。 344 00:18:40,420 --> 00:18:43,780 私達はちょうどブログで記事を新しいコントローラをするつもりだ。 345 00:18:43,780 --> 00:18:47,060 しかし、私は、また、ブログの記事にコメントを追加した場合 346 00:18:47,060 --> 00:18:50,140 そして私はおそらくそれらのコメントのための新しいコントローラを作成したいと思う。 347 00:18:50,140 --> 00:18:53,380 私は、ユーザーを追加したい場合、私はおそらく、それらのユーザーのための新しいコントローラを追加することになり、 348 00:18:53,380 --> 00:18:57,000 一般的に、考え方は、あなたが新しいモデルを持っているときはいつでも、 349 00:18:57,000 --> 00:18:59,630 あなたが扱っている新しいデータオブジェクト、 350 00:18:59,630 --> 00:19:02,970 あなたは、そのデータ·オブジェクトのための単一のコントローラを持っている。 351 00:19:02,970 --> 00:19:04,370 今日は唯一の1データ·オブジェクトを操作するつもりだ、 352 00:19:04,370 --> 00:19:06,250 それはポストになるだろう、 353 00:19:06,250 --> 00:19:08,710 そしてまた、あなたは、テーブルに対応するデータオブジェクトと考えることができます。 354 00:19:08,710 --> 00:19:12,160 一般に、各テーブルには、データオブジェクトの1タイプに対応する、 355 00:19:12,160 --> 00:19:15,160 そのポストの表は、1 Postモデルを持つことになります 356 00:19:15,160 --> 00:19:18,230 これに対応する1ポストコントローラを持つことになります、 357 00:19:18,230 --> 00:19:22,190 ユーザーに対して同じ、コメントを求めると同じ、などなど。 358 00:19:22,190 --> 00:19:24,070 そして、それは一般的な経験則です。 359 00:19:24,070 --> 00:19:27,460 あなたはそれとは異なる場合があり、特殊な例があるように起こっている、 360 00:19:27,460 --> 00:19:29,300 しかし、あなたがやっていることになるだろう何の時間の90%、 361 00:19:29,300 --> 00:19:32,810 そして私は、我々が今日やっているつもりだ何を説明します。 362 00:19:32,810 --> 00:19:35,490 1我々は戻ってコードに飛び込む前に、より多くのコンセプト、 363 00:19:35,490 --> 00:19:37,710 オブジェクトリレーショナルマッピングのこのアイデア。 364 00:19:37,710 --> 00:19:41,200 >>君たちはすでにWeb開発PSETを行っている、 365 00:19:41,200 --> 00:19:43,820 あなたは、あなたがSQLクエリを作成しておくことを見てきました 366 00:19:43,820 --> 00:19:46,510 そして、それはあなたに戻って何行があります。 367 00:19:46,510 --> 00:19:50,040 あなたは、いくつかの名前でそれらをこれらの行を取得し、あなたのインデックス 368 00:19:50,040 --> 00:19:55,480 カラムとテーブルの名前、 369 00:19:55,480 --> 00:19:57,630 それは、あなたがそれを操作する方法を説明します 370 00:19:57,630 --> 00:19:59,290 そしてそれは少し煩雑になる可能性があります。 371 00:19:59,290 --> 00:20:01,810 しかし、また、あなたは、データベース内の関係を持っている場合、 372 00:20:01,810 --> 00:20:05,280 例えばのように私がコメントや投稿があれば、 373 00:20:05,280 --> 00:20:11,240 多分私は、コメントの親柱をつかむしたい。 374 00:20:11,240 --> 00:20:14,350 私はSQLで行だけを使用する場合は、私が得ることができるすべてのIDです 375 00:20:14,350 --> 00:20:19,310 親柱のではなく、実際のポストそのもの。 376 00:20:19,310 --> 00:20:21,680 我々はコーディングしているときには、私たちが実際に欲しいのは、実際につかむことである 377 00:20:21,680 --> 00:20:23,550  親は時々自分自身を投稿してください。 378 00:20:23,550 --> 00:20:25,730 どのようなオブジェクトリレーショナルマッピングしている 379 00:20:25,730 --> 00:20:29,480 とデータベースクエリの結果を受け取り 380 00:20:29,480 --> 00:20:32,420 とで動作するように非常に良くあるあなたのためのオブジェクトに格納します 381 00:20:32,420 --> 00:20:34,770 平野配列や行よりも。 382 00:20:34,770 --> 00:20:37,550 >>たとえば、今私は、おそらくコメントがある場合、 383 00:20:37,550 --> 00:20:40,900 そして私は、その親のポストをつかむしたい、 384 00:20:40,900 --> 00:20:43,440 そして私は多分矢印ポストコメントか、 385 00:20:43,440 --> 00:20:45,230 それは実際に私にpostオブジェクトを与える 386 00:20:45,230 --> 00:20:47,940 実際の親柱だけでなく、いくつかのIDに対応する、 387 00:20:47,940 --> 00:20:52,210 これ、私はそうでポストをつかむために、別のSQLクエリを使用して行う必要があろう 388 00:20:52,210 --> 00:20:57,430 面倒で不必要である。 389 00:20:57,430 --> 00:21:01,840 さらに、オブジェクトに、これらすべてのデータ行をマッピングすることにより、 390 00:21:01,840 --> 00:21:03,760 また、オブジェクトに複数の機能を添付することができ、 391 00:21:03,760 --> 00:21:09,700 ですから、例えば、私はクラスが本質的な機能をグループ化したものかについて話しました。 392 00:21:09,700 --> 00:21:11,620 あなたがそのように考えることができます。 393 00:21:11,620 --> 00:21:15,290 例えば、多分私はこの記事のオブジェクトを持って、 394 00:21:15,290 --> 00:21:17,830 そして多分私はそれに接続されている機能のいくつかの並べ替えをしたいのですが 395 00:21:17,830 --> 00:21:20,300 つまり、基本的には、最近投稿されましたと言われます? 396 00:21:20,300 --> 00:21:23,570 それがtrueまたはfalse、最後の一週間以内に投稿されました? 397 00:21:23,570 --> 00:21:27,320 そして、それは私がそのオブジェクトに添付することができ、関数の、 398 00:21:27,320 --> 00:21:31,300 そしてそれは、同じ場所にそれを持って、本当に便利です 399 00:21:31,300 --> 00:21:33,820 あなたが作成できるさまざまな機能が集まってい 400 00:21:33,820 --> 00:21:37,990 これらのオブジェクトの、それはクラスに添付することができるように、本当にうれしいです、 401 00:21:37,990 --> 00:21:41,700 オブジェクトに、あなたは自分のデータベースからの行を持っていた場合のに対して、 402 00:21:41,700 --> 00:21:43,790 そしてあなたが本当にそれに任意の機能を接続することはできません。 403 00:21:43,790 --> 00:21:47,850 それは文字通りのデータです。 404 00:21:47,850 --> 00:21:50,550 すべてのそれについての質問? 405 00:21:50,550 --> 00:21:52,710 オームズは非常に一般的なWeb開発である、 406 00:21:52,710 --> 00:21:56,330 とのORMの異なる種類がたくさんあり​​、 407 00:21:56,330 --> 00:21:58,450 とKohanaのは、独自のORMを持っています。 408 00:21:58,450 --> 00:22:05,050 それは非常に基本的だが、あなたはそれがどのようなものの味を取得します。 409 00:22:05,050 --> 00:22:08,780 >>私たちのブログの記事のためのモデルを作成してみましょう、 410 00:22:08,780 --> 00:22:12,350 そして我々は明らかに最初に必要なことは、実際のテーブルを作成することです 411 00:22:12,350 --> 00:22:16,680 我々のデータベース内で実際にそれらの記事のための私達のデータを格納する。 412 00:22:16,680 --> 00:22:19,260 私はするつもりだ最初の事はphpMyAdminにに行くです。 413 00:22:19,260 --> 00:22:21,410 あなたたちの前にはphpMyAdminを使用することがありますか? 414 00:22:21,410 --> 00:22:23,400 さて、素晴らしいので、あなたたちはすでにそれが何であるかを知って、 415 00:22:23,400 --> 00:22:32,200 と私はKohanaの投稿と呼ばれる新しいテーブルを作成するつもりです、 416 00:22:32,200 --> 00:22:37,820 それは本当に簡単になるだろう。 417 00:22:37,820 --> 00:22:40,190 私は再度ログインする必要があります 418 00:23:02,620 --> 00:23:04,640 我々が今日やろうとしているすべては、作者と体を持っている、 419 00:23:04,640 --> 00:23:11,930 単純に保管してください。 420 00:23:11,930 --> 00:23:15,620 私は、そのテーブルを作成するつもりです、 421 00:23:15,620 --> 00:23:19,620 そして今、我々はちょうど私たちの記事を表すテーブルを持っている 422 00:23:19,620 --> 00:23:23,370 私達の著者と私たちの体のための2つのフィールドを持つ。 423 00:23:23,370 --> 00:23:26,290 私は今何をしようと思って他の事はある 424 00:23:26,290 --> 00:23:29,820 それは、データベースに接続する方法を知っているので、私のWebアプリケーションを構成する、 425 00:23:29,820 --> 00:23:31,950 これは、繰り返しますが、すべてのWebアプリケーションで行う必要があるでしょうものです。 426 00:23:31,950 --> 00:23:34,790 あなたはそれをユーザー名とパスワードを伝える必要があります 427 00:23:34,790 --> 00:23:36,990 およびデータベースの名前などなど 428 00:23:36,990 --> 00:23:40,000 実際にデータベースに接続する方法を把握する。 429 00:23:40,000 --> 00:23:58,710 >> Kohanaのでは、我々は、データベースモジュールと呼ばれるものを持っている 430 00:23:58,710 --> 00:24:02,690 と設定フォルダには、データベースと呼ばれるこのフォルダがあり、 431 00:24:02,690 --> 00:24:07,330 ご覧のように、ここで設定しなければならない設定の束がある 432 00:24:07,330 --> 00:24:09,860 それを伝えるために、ユーザー名とパスワードは何ですか 433 00:24:09,860 --> 00:24:13,110 データベースに対してので、私は実際にそれに接続することができます。 434 00:24:13,110 --> 00:24:15,010 そして、私はあなたたちが実際に知られたくないので、 435 00:24:15,010 --> 00:24:17,190 私のデータベースのユーザー名とパスワード、 436 00:24:17,190 --> 00:24:23,840 私は、私はすでにそれをすべて設定したファイルを持っている、と私はコピーしてそれを上に貼り付けることにします。 437 00:24:33,080 --> 00:24:36,870 素晴らしい。 438 00:24:36,870 --> 00:24:39,880 大丈夫。私はそれは私がする必要があるすべての設定だと思う、 439 00:24:39,880 --> 00:24:41,070 しかし、見てみましょう。 440 00:24:41,070 --> 00:24:43,720 我々はそれで働き続ける、と何かがクラッシュした場合でしょう、 441 00:24:43,720 --> 00:24:47,490 その後、我々はそれを修正します。 442 00:24:47,490 --> 00:24:51,830 今、私は何をするつもりだと、私は新しいコントローラを作成するつもりです。 443 00:24:51,830 --> 00:24:53,190 または実際に、申し訳ありません。 444 00:24:53,190 --> 00:24:55,080 最初に私は新しいモデルを作成する必要があります。 445 00:24:55,080 --> 00:25:01,620 私は、Post.phpという新しいモデルを作成します 446 00:25:01,620 --> 00:25:12,440 そして私たちがやろうとしていることは、我々はクラスModel_Postそれを呼び出すつもりです。 447 00:25:12,440 --> 00:25:15,390 上のハイライトいくつかの構文を取得し、 448 00:25:15,390 --> 00:25:19,750 と私が言うとき、それは基本的だ」ORMは、拡張 " 449 00:25:19,750 --> 00:25:21,210 いくつかのより多くのオブジェクト指向プログラミング、 450 00:25:21,210 --> 00:25:23,340 これ残念ながらあなたたちはまだCS50に学んでいない、 451 00:25:23,340 --> 00:25:25,290 それは取りに非常に簡単です。 452 00:25:25,290 --> 00:25:27,950 それは、私にこのORMパッケージで提供されていますこのすべての追加機能を提供します 453 00:25:27,950 --> 00:25:31,120 そして私は、自由のために余分な機能やその他もろもろの束を取得 454 00:25:31,120 --> 00:25:34,810 その2番目の中のビットが表示されます。 455 00:25:34,810 --> 00:25:37,670 >>今実際に私がやらなければならないのは、このクラスを作成することです。 456 00:25:37,670 --> 00:25:39,160 私も任意の関数か何かをする必要はありません、 457 00:25:39,160 --> 00:25:41,770 私は、テーブルを表すクラスを作成しました、 458 00:25:41,770 --> 00:25:44,140 そして私は、このORMクラスを拡張してきたので、 459 00:25:44,140 --> 00:25:51,080 私は自由のために何かの束を取得するので、今のあなたは何よりセットアップを設定する必要はありません。 460 00:25:51,080 --> 00:25:53,530 そして今、私は何をするつもりだと、私は新しいコントローラを作成するつもりですが、 461 00:25:53,530 --> 00:25:58,480 その私がblog.php名前を付けるつもりだ、 462 00:25:58,480 --> 00:26:04,350 そして私は、ウェルカムコントローラをコピーするつもりです 463 00:26:04,350 --> 00:26:11,950 ので、私はいくつかのものを再入力する必要はありませんが、 464 00:26:11,950 --> 00:26:20,720 そして今、私はこの名前を変更する必要があります。 465 00:26:20,720 --> 00:26:24,710 今、私はすべてが出て動作していることを確認するためにテストするために何をするつもりだ何を、 466 00:26:24,710 --> 00:26:27,820 私は自分のデータベースからの最初の記事をつかむつもりだ 467 00:26:27,820 --> 00:26:32,680 と、画面上のポストの本文を印刷します。 468 00:26:32,680 --> 00:26:37,920 私が最初に行うつもりだが、私は記事を保存するつもりされていることを行うには 469 00:26:37,920 --> 00:26:48,770 変数にその私たちがやろうとしていることである - 470 00:26:48,770 --> 00:26:52,090 Kohanaの中で何をやっていることはpostオブジェクトをつかむことです 471 00:26:52,090 --> 00:26:55,380 それはちょっと面倒なのですが、あなたは、ORM ::工場と呼ばれるこの事をしなければならない 472 00:26:55,380 --> 00:26:57,750 そして、あなたがしたいモデルの名前を渡し、 473 00:26:57,750 --> 00:27:00,490 そしてそれはそのモデルを表すのORMオブジェクトを返します。 474 00:27:00,490 --> 00:27:04,860 そして、同様に私たちはORMオブジェクトを拡張するとき、言った、 475 00:27:04,860 --> 00:27:07,320 我々は自由のためのすべてのこれらのメソッドを取得するため、例えば、 476 00:27:07,320 --> 00:27:09,200 私たちは "、すべて見つけること"と呼ばれるこの新機能を入手 477 00:27:09,200 --> 00:27:12,160 その自動的にデータベース内のすべての単一のポストを返し、 478 00:27:12,160 --> 00:27:14,850 これはかなり便利です。 479 00:27:14,850 --> 00:27:17,480 >>そして今の体で私は返すつもりだ 480 00:27:17,480 --> 00:27:24,860 最初の投稿とそのボディを返す。 481 00:27:24,860 --> 00:27:27,930 そしてもちろん、私は記事を作成する必要があり、 482 00:27:27,930 --> 00:27:31,880 それでは、新しいポストを挿入してみましょう。 483 00:27:31,880 --> 00:27:37,870 私は、「ブランドン、私の非常に最初の記事を。」と言うでしょう 484 00:27:37,870 --> 00:27:40,010 素晴らしい。 485 00:27:40,010 --> 00:27:45,910 そして今、我々はブログに行くことになるだろう 486 00:27:45,910 --> 00:27:50,960 すべてがうまく動作するかどうかと - ああ、これは、再びいくつかの他のダムファイル許可の事である。 487 00:27:50,960 --> 00:27:56,090 1秒に保持します。それは一種の不条理だ。 488 00:28:06,700 --> 00:28:08,490 そこに私達は行く。大丈夫。 489 00:28:08,490 --> 00:28:10,040 私は、その権限の問題を修正しました。 490 00:28:10,040 --> 00:28:12,040 これは、いくつかのファイルといくつかのログを作成しようとしていた、 491 00:28:12,040 --> 00:28:15,400 と権限は、再び、適切に設定されていなかったので、私はそれを作った 492 00:28:15,400 --> 00:28:18,320 ので、これらのファイルは書き込み可能、​​実行可能だった 493 00:28:18,320 --> 00:28:21,090 そのため、実際に物事にログを記録できた。 494 00:28:21,090 --> 00:28:24,220 今では、「クラスのORMが見つかりません "、と言って私に別の例外を与えている 495 00:28:24,220 --> 00:28:26,960 私は別のステップを忘れてしまったので、それはです。 496 00:28:26,960 --> 00:28:37,010 それは残念だ。 497 00:28:37,010 --> 00:28:40,270 ブートストラップ用フォルダファイルでは、これらのモジュールはここにあり、 498 00:28:40,270 --> 00:28:42,480 これを有効または無効にすることもできます。 499 00:28:42,480 --> 00:28:44,340 これらはあなたが使用することを選択できるさまざまな機能の束である 500 00:28:44,340 --> 00:28:46,180 並べ替えいいですKohanaの内。 501 00:28:46,180 --> 00:28:49,090 >>例えば、それらは、認証モジュールを有する 502 00:28:49,090 --> 00:28:51,170 これを使用して、ユーザーを認証するために使用することができます。 503 00:28:51,170 --> 00:28:53,390 実装したい場合、それらは、キャッシングモジュールを持っている 504 00:28:53,390 --> 00:28:57,870 アプリケーション高速に動作し、その他もろもろを作るためにバックエンドをキャッシュするのいくつかの並べ替え。 505 00:28:57,870 --> 00:29:02,140 我々は、データベースとのORMモジュールを有効にする必要があり、 506 00:29:02,140 --> 00:29:04,280 ように私は言ったので、私たちは、明らかに、データベースを使用している 507 00:29:04,280 --> 00:29:08,200 我々はまた、ORMモジュールを有効にする必要があります 508 00:29:08,200 --> 00:29:12,220 我々は持っていると便利な追加の機能を持っているしたいと思いますので。 509 00:29:12,220 --> 00:29:14,240 私がしなければならないのは、これらの2行のコメントを解除している 510 00:29:14,240 --> 00:29:18,760 私はリフレッシュした場合、今、それは私に別のエラーを与えた。 511 00:29:18,760 --> 00:29:22,100 これは、「クラスModel_Postが見つかりません。」と言う 512 00:29:22,100 --> 00:29:30,210 さて、これは持っているのは良い問題です。 513 00:29:30,210 --> 00:29:37,660 見てみましょう。 514 00:29:37,660 --> 00:29:42,200 それを公表する。 515 00:29:42,200 --> 00:29:46,450 いいえ待って。 516 00:30:11,610 --> 00:30:13,160 ああ、親愛なる。 517 00:30:13,160 --> 00:30:18,590 それはそれを見つけることができない理由を私は知らない。 518 00:30:18,590 --> 00:30:21,030 それは本当に不思議だ。 519 00:30:21,030 --> 00:30:23,820 私はここにこのクラスを持っている。 520 00:30:23,820 --> 00:30:28,650 OH - 私は私が持っているかもしれませんね。 521 00:30:28,650 --> 00:30:32,010 私はダムです。私はPHPのタグを追加するのを忘れ。 522 00:30:32,010 --> 00:30:34,670 理由です。 523 00:30:34,670 --> 00:30:41,260 今私は、私だけなかったことを1の変更を元に戻す必要があります。 524 00:30:41,260 --> 00:30:44,270 >>オーケー。そこに私達は行く。 525 00:30:44,270 --> 00:30:47,500 それは本当に愚かだった。私はオープニングのPHPタグがありませんでした。 526 00:30:47,500 --> 00:30:49,900 あなたが見ることができるようにしかし、今では右、正常に動作している? 527 00:30:49,900 --> 00:30:51,240 私たちは、1件の記事があります。 528 00:30:51,240 --> 00:30:54,730 我々は最初の投稿つかんで、そして今、我々は、その本体をプリントアウトする。 529 00:30:54,730 --> 00:30:58,010 素晴らしい。幻想的。 530 00:30:58,010 --> 00:31:01,470 ご不明な点、これまで? 531 00:31:01,470 --> 00:31:04,100 いや?ご質問? 532 00:31:04,100 --> 00:31:08,340 わかりましたので、我々だけで、非常に基本的な、Postモデルを作成しました 533 00:31:08,340 --> 00:31:10,930 そして我々は、後でいくつかの機能を追加するつもりだ。 534 00:31:10,930 --> 00:31:13,600 私たちは、検証とフィルタリングを追加することができます。 535 00:31:13,600 --> 00:31:15,650 検証はものの一つである 536 00:31:15,650 --> 00:31:18,150 フレームワークは本当によく、本当にあなたのために解決することを、 537 00:31:18,150 --> 00:31:21,310 と私はあなたたちはあなたのCS50のPSETのためにこれをしなければならなかったとは思わない、 538 00:31:21,310 --> 00:31:24,000 しかし、あなたの最終的なプロジェクトのためのWeb開発を行う場合には、 539 00:31:24,000 --> 00:31:26,280 おそらく、検証のいくつかの並べ替えをしたいとしている、 540 00:31:26,280 --> 00:31:28,290 空白のユーザー名を持っていないような、 541 00:31:28,290 --> 00:31:31,950 多分、少なくともいくつかの長さのパスワードを持つ、そのようなこと。 542 00:31:31,950 --> 00:31:34,750 そしてそれは、自分でこれらのことを実現するために、本当に面倒な 543 00:31:34,750 --> 00:31:37,390 そしてほとんどすべての単一のWebフレームワークはあなたのためにそれをしない 544 00:31:37,390 --> 00:31:41,140 あなたは非常にクリーンな方法でそれを行うことができます。 545 00:31:41,140 --> 00:31:44,340 あなたは一般的に、これらの検証ルールを表現する場所とモデルがあり、 546 00:31:44,340 --> 00:31:48,790 それは、モデルが有効であるか否かを検証するためだ。 547 00:31:48,790 --> 00:31:51,350 >>しかし、今のところ、我々は、後になるまでそれを置くつもりだ 548 00:31:51,350 --> 00:31:53,520 今の私たちは別の部分で作業するつもりだ、 549 00:31:53,520 --> 00:31:55,400 そして我々は新しいビューを試してみて、するつもりだ 550 00:31:55,400 --> 00:31:59,580 それは、すべての投稿が一覧表示されます。 551 00:31:59,580 --> 00:32:02,490 すべての投稿を一覧表示するための新しいアクションを作る際に必要な手順 552 00:32:02,490 --> 00:32:04,810 すべての投稿のリストをつかむことです 553 00:32:04,810 --> 00:32:11,990 して、ビューを介してすべての投稿のリストをレンダリングします。 554 00:32:11,990 --> 00:32:16,420 右ここでは、幸いなことに、我々はすでにすべての投稿をつかん 555 00:32:16,420 --> 00:32:20,310 この最初の行を使用して、すべての機能を見つける、 556 00:32:20,310 --> 00:32:22,520 そして今、私たちがやろうとしていることはこれまでのところです 557 00:32:22,520 --> 00:32:25,350 私は、直接応答の本文を設定してきた 558 00:32:25,350 --> 00:32:29,090 文字列を渡して、今私は、ビューを使用したい、 559 00:32:29,090 --> 00:32:31,870 ちょうどこれを行うビューとの違い 560 00:32:31,870 --> 00:32:35,330 私は素敵な、大きなHTMLテンプレートを持つことができるビューであり、 561 00:32:35,330 --> 00:32:37,710 そして、私にできることはそれ特定の変数を渡している 562 00:32:37,710 --> 00:32:42,200 して、ビューが自動的にテンプレートを取り込みました 563 00:32:42,200 --> 00:32:44,690 これらの変数を使用した。 564 00:32:44,690 --> 00:32:50,780 私がやることは、私は新しいビューを作成しますです 565 00:32:50,780 --> 00:32:55,940 そして私は "、ブログ/インデックス"のようなビューの何かに名前を付けます 566 00:32:55,940 --> 00:33:08,480 と私は基本的に、これをバインドするつもりだ - ああ、私は何を書いています? 567 00:33:08,480 --> 00:33:12,910 私の脳は、どこか別の場所である。 568 00:33:12,910 --> 00:33:16,600 私は、ビューに変数のポストをバインドするつもりだ 569 00:33:16,600 --> 00:33:19,950 ような方法は、ビューは、この後の変数にアクセスできます。 570 00:33:19,950 --> 00:33:26,140 >>だから今、私は、このビューを作成する必要があり、 571 00:33:26,140 --> 00:33:28,500 そこでここでは、「ビュー」と呼ばれるこのフォルダを持っている 572 00:33:28,500 --> 00:33:32,150 最初、私は呼ばれるの下に新しいフォルダを作成するつもりです "ブログ" 573 00:33:32,150 --> 00:33:35,810 これはいいです。そうすれば、我々は我々のビューの素敵な階層構造を持つことができます。 574 00:33:35,810 --> 00:33:43,910 そして私はそこに呼ばれる別のファイルを作成するつもりです "index.phpを。" 575 00:33:43,910 --> 00:33:45,780 素晴らしい。 576 00:33:45,780 --> 00:33:52,930 実際に、のは、ここでそれらの両方を持ってみましょう。 577 00:33:52,930 --> 00:33:56,760 ビューファイルを作ることは、おそらく、このすべての最も簡単な部分である、 578 00:33:56,760 --> 00:33:59,090 これらは、おそらくあなたはすでに精通しているものです。 579 00:33:59,090 --> 00:34:01,240 私たちは本当にシンプルなものをやろうとしている、 580 00:34:01,240 --> 00:34:05,360 と言って開始」のブログ投稿の私のリスト。 " 581 00:34:05,360 --> 00:34:14,860 その後、我々は通過することができ、 582 00:34:14,860 --> 00:34:17,920 そして我々はposts配列を反復処理できる、 583 00:34:17,920 --> 00:34:21,760 一つ一つのポストをつかみ、のようなものを言う - 584 00:34:21,760 --> 00:34:25,290 多分行を追加します。 585 00:34:25,290 --> 00:34:42,460 して、著者と本文をプリントアウトする。 586 00:34:42,460 --> 00:34:44,480 つまり、これまでは意味が? 587 00:34:44,480 --> 00:34:50,870 そして、それが動作するかどうかを見てみましょう。 588 00:34:50,870 --> 00:34:53,489 何も起こらなかった。 589 00:34:53,489 --> 00:34:55,090 私はなぜだろうか。 590 00:34:55,090 --> 00:34:58,760 ああ、私は1ステップを逃した。私の非常に愚かな。 591 00:34:58,760 --> 00:35:01,640 私は、ビューを作成しましたが、私は応答としてビューを設定していない、 592 00:35:01,640 --> 00:35:03,190 だから、1のより多くの事をしなければならない。 593 00:35:03,190 --> 00:35:12,610 あなたは「このレスポンスボディ」を行うと、ビューであるためにそれを設定する必要があります。 594 00:35:12,610 --> 00:35:14,760 そこに私達は行く。 595 00:35:14,760 --> 00:35:17,200 我々は我々の見出しがあり、その後、我々はポストを持っている、 596 00:35:17,200 --> 00:35:20,500 ちょうど蹴りのために、のは別のポストを挿入してみましょう 597 00:35:20,500 --> 00:35:23,390 私たちは、リストを見ることができます。 598 00:35:31,800 --> 00:35:36,650 そして、これらの2ポストを挿入し、 599 00:35:36,650 --> 00:35:39,500 そして今、私はページを更新した場合、 600 00:35:39,500 --> 00:35:42,060 ここでは、これらすべての記事を参照してください。 601 00:35:42,060 --> 00:35:44,250 >>それは今のところ意味があるか? 602 00:35:44,250 --> 00:35:46,400 うん、質問?大丈夫、ああ。 603 00:35:46,400 --> 00:35:51,440 ご覧のように、我々はすべてのこれらのコードを分離することができました 604 00:35:51,440 --> 00:35:53,920 異なるセクションにしてから、あなたはそれがビューコードのほとんどは明らかです見ることができます。 605 00:35:53,920 --> 00:35:57,810 このビューを表し、ここで、ファイル、 606 00:35:57,810 --> 00:36:01,220 それだけでデータを表示する、データを表す気。 607 00:36:01,220 --> 00:36:04,310 これは、データのいくつかの並べ替えを渡され、それがない、すべてはあなたにそれを示している。 608 00:36:04,310 --> 00:36:07,660 コー​​ドの他のすべての部分では、それのいずれかを心配する必要はありません、 609 00:36:07,660 --> 00:36:10,480 と同様に、ビューのコードは、については何も心配する必要はありません 610 00:36:10,480 --> 00:36:13,390 などなど、データベースとのアクセス方法、 611 00:36:13,390 --> 00:36:19,950 これは本当に良いですし、コードが多く、保守性もあがります。 612 00:36:19,950 --> 00:36:23,390 私が言ったように、ビューは、彼らはその中でダイナミックだ 613 00:36:23,390 --> 00:36:27,080 それは1ファイルだが、それは、異なるビューを生成します 614 00:36:27,080 --> 00:36:29,940 あなたが実際に渡す変数に基づいて、 615 00:36:29,940 --> 00:36:32,370 さらに、別のヘルパー関数がたくさんあり​​ます 616 00:36:32,370 --> 00:36:34,230 あなたは、あなたがより速く、コードを書くのを助けるために使用できる 617 00:36:34,230 --> 00:36:36,320 その私はちょうど第二にあなたが表示されます。 618 00:36:36,320 --> 00:36:38,050 うん。 619 00:36:38,050 --> 00:36:42,490 >> [学生]だから、0ドル、右のコントローラですか? 620 00:36:42,490 --> 00:36:44,000 その二つ目。 621 00:36:44,000 --> 00:36:46,090 質問は、0ドルのコントローラはありますか? 622 00:36:46,090 --> 00:36:48,610 0ドルは、私は右ここで作成した変数です。 623 00:36:48,610 --> 00:36:51,320 私は、最初のビューを作成しました。私はいくつかの変数に割り当てられている。 624 00:36:51,320 --> 00:36:54,960 それから私は、この関数にそれを渡されたレスポンスのボディとして設定します。 625 00:36:54,960 --> 00:36:57,260 それは理にかなっていますか? 626 00:36:57,260 --> 00:37:02,200 [学生]だからビュー::工場で、クラスのような図である 627 00:37:02,200 --> 00:37:06,610 またはライブラリ[聞こえない]ファクトリ関数? 628 00:37:06,610 --> 00:37:10,640 質問は、ビュー::ファクトリ関数についてです 629 00:37:10,640 --> 00:37:14,020 基本的にこれは、本質的にいくつかのより多くのオブジェクト指向プログラミングである。 630 00:37:14,020 --> 00:37:18,000 「ファクトリー」ビューがビュークラスであり、呼び出されたメソッドを持っている 631 00:37:18,000 --> 00:37:24,170 それは名前だオブジェクトつかむための方法だ」ブログ/インデックス。」 632 00:37:24,170 --> 00:37:27,140 そして、それはいくつかのより多くのオブジェクト指向プログラミングのものです 633 00:37:27,140 --> 00:37:33,010 私はあまりここに入るつもりはないことを。 634 00:37:33,010 --> 00:37:36,400 今明らかに、我々は、新しい記事を作成したい、 635 00:37:36,400 --> 00:37:38,790 しかし、我々はデータベースを介してそれをしなければならないしたくない、 636 00:37:38,790 --> 00:37:41,280 私たちは新しい投稿を作成するための新しいアクションを作成しようとしている、 637 00:37:41,280 --> 00:37:43,050 そして我々がしなければならないものがたくさんある。 638 00:37:43,050 --> 00:37:45,910 >>私たちがやろうとしている最初のもの - のこれらの事を一つずつ取り組むましょう。 639 00:37:45,910 --> 00:37:48,320 私たちがやる最初に我々は、フォームを作成するんだです 640 00:37:48,320 --> 00:37:54,460 新しい投稿を挿入するための、 641 00:37:54,460 --> 00:37:57,360 私はまた、最初の新しいアクションを追加するつもりだ 642 00:37:57,360 --> 00:38:01,050 その新しいアクションを追加すると同じくらい簡単です 643 00:38:01,050 --> 00:38:03,490 お使いのコントローラに新しい機能を追加し、 644 00:38:03,490 --> 00:38:13,710 今の私は、非常に基本的な何かをするつもりだ 645 00:38:13,710 --> 00:38:20,850 ただ、このビューを取得し、それを投稿、あなたのためだけにそれを表示する。 646 00:38:20,850 --> 00:38:26,220 して、今、私は新しいビューファイルを作成するつもりです、 647 00:38:26,220 --> 00:38:33,690 と私はいくつかのものを書き始めるつもりです。 648 00:38:33,690 --> 00:38:36,540 何Kohanaの約うれしいです、彼らは別のヘルパー関数の多くを提供することである 649 00:38:36,540 --> 00:38:38,790 あなたがより簡単にビューのコードを記述するためには、 650 00:38:38,790 --> 00:38:41,970 これらのヘルパー関数やヘルパーモジュールと1 651 00:38:41,970 --> 00:38:45,860 周りのフォームを書いている。 652 00:38:45,860 --> 00:38:49,460 フォームを作成するための、私は実際に直接、任意のHTMLを自分で記述する必要はありません。 653 00:38:49,460 --> 00:38:51,100 君たちは、HTMLフォームを書かれている。 654 00:38:51,100 --> 00:38:54,850 あなたはそれがフォームを書くことが本当に、本当に苦痛と面倒なことができる方法を知っている。 655 00:38:54,850 --> 00:38:59,970 それは、とても幸運なことに、楽しいではありません 656 00:38:59,970 --> 00:39:04,860 我々は基本的にKohanaの者を使用してフォームを作成することができます 657 00:39:04,860 --> 00:39:11,190 私たちのためにそれを行うにはヘルパー関数を形成する。 658 00:39:11,190 --> 00:39:17,340 私たちは、基本的に我々が持っている一つ一つのフィールドを持っているつもりです、 659 00:39:17,340 --> 00:39:23,160 そう、著者用とボディ用1。 660 00:39:23,160 --> 00:39:27,090 私たちはラベルを持っているつもりだし、我々は、入力を持っているつもりです。 661 00:39:37,450 --> 00:39:41,360 >>そして最後に、我々は提出物を持っているつもりです。 662 00:39:49,350 --> 00:39:52,230 ご覧のように、これを書くのは非常にきれいです 663 00:39:52,230 --> 00:39:58,150 ちょっといいですすべてが乱雑なHTMLよりも。 664 00:39:58,150 --> 00:40:00,930 確かに、それよりも、それもきれい持っている他のWebフレームワークがありますが、 665 00:40:00,930 --> 00:40:04,440 しかし、少なくともこれは、HTMLを自分で記述するよりも優れています。 666 00:40:09,400 --> 00:40:11,130 素晴らしいので、これはあなたが見るものである。 667 00:40:11,130 --> 00:40:13,530 つまり、ちょっと乱雑だ 668 00:40:13,530 --> 00:40:19,720 私はそこに改行を追加するつもりだ 669 00:40:19,720 --> 00:40:21,180 それは少し立派に見えるようにする。 670 00:40:21,180 --> 00:40:23,330 さて、もちろん、それはまだ本当に、本当に悪いに見えますが、私たちはただ集中している 671 00:40:23,330 --> 00:40:26,050 美学に今ではないため、機能上。 672 00:40:26,050 --> 00:40:28,010 すべてを行う時間がない。 673 00:40:28,010 --> 00:40:30,600 ご覧のように、今、我々は超定番の形を持っている、 674 00:40:30,600 --> 00:40:32,080 どの種類の素晴らしいです。 675 00:40:32,080 --> 00:40:36,730 私は言うだろう、このコードは、自分自身を形成して、HTMLを記述しようとするよりもクリーンで、 676 00:40:36,730 --> 00:40:40,290 だからうれしいです。 677 00:40:40,290 --> 00:40:42,030 次は何ですか? 678 00:40:42,030 --> 00:40:49,260 今、私たちはアクションでのことを行う必要があります。 679 00:40:49,260 --> 00:40:51,240 あなたがHTMLフォームを書き、通常時に、 680 00:40:51,240 --> 00:40:54,070 あなたはそれがフォームを送信するために起こっているところにそれを伝える必要があります。 681 00:40:54,070 --> 00:40:56,050 ほとんどのWebフレームワークではデフォルトで、 682 00:40:56,050 --> 00:40:58,200 、それはまったく同じURLに提出し、その事がある 683 00:40:58,200 --> 00:41:01,310 あなたは新しい/ブログ/にGETリクエストを送信した場合、 684 00:41:01,310 --> 00:41:03,240 それはあなたのフォームを表示する必要があり、 685 00:41:03,240 --> 00:41:06,810 しかし、あなたはPOSTリクエストを送信した場合に/ブログ/データで新しい、 686 00:41:06,810 --> 00:41:10,000 それは実際にその記事を保存するようにしてください 687 00:41:10,000 --> 00:41:13,300 と、それに何かをする。 688 00:41:20,630 --> 00:41:22,180 >>私たちがやろうとしている何ですか 689 00:41:22,180 --> 00:41:25,320 基本的にすべての我々はそれがPOSTリクエストまたはGETリクエストのかどうかをチェックするためにしなければならない 690 00:41:25,320 --> 00:41:29,350 設定可能なPOST変数が何であるかを確認することです。 691 00:41:29,350 --> 00:41:34,560 ポスト変数が設定されている場合と、我々は試してみて、新しい投稿を作成しましょう​​。 692 00:41:34,560 --> 00:41:38,440 繰り返しますが、私たちはこれを行うには、 693 00:41:38,440 --> 00:41:41,090 それは新しい投稿を作成し、我々は文字通りになるだろう 694 00:41:41,090 --> 00:41:51,150 このように、そのフィールドを設定し、 695 00:41:51,150 --> 00:41:55,640 そして、我々はそれを保存しようとしている。 696 00:41:55,640 --> 00:41:59,200 そして私はリダイレクトするつもりだ 697 00:41:59,200 --> 00:42:07,660 インデックスページにそのように彼らは再びポストの私達のリストを見ることができます。 698 00:42:07,660 --> 00:42:09,620 のはそれを試してみましょう。 699 00:42:09,620 --> 00:42:15,160 私は "、ブランドン"を言うよ 700 00:42:15,160 --> 00:42:18,140 してから記事を提出し、すべてがうまくいけば、 701 00:42:18,140 --> 00:42:21,390 ご覧のように、それは、インデックスページに私をリダイレクト 702 00:42:21,390 --> 00:42:24,140 私が一番下までスクロールすると、我々は新たに挿入されたポストを持っている。 703 00:42:24,140 --> 00:42:26,430 YAY! 704 00:42:26,430 --> 00:42:28,430 うん、質問。 705 00:42:28,430 --> 00:42:31,760 >> [学生]何を正確に同じことを入力した場合 706 00:42:31,760 --> 00:42:33,380 あなたが以前に入力した? 707 00:42:33,380 --> 00:42:36,950 それは確かにあなたが重複していないかチェックしていますか 708 00:42:36,950 --> 00:42:38,810 同じ提出? 709 00:42:38,810 --> 00:42:41,660 なぜならデフォルトでは、デフォルトに - 710 00:42:41,660 --> 00:42:46,470 フォーム内の​​まったく同じデータで入力した場合には申し訳ありませんが、質問です 711 00:42:46,470 --> 00:42:50,180 そして、それはあなたが重複したオブジェクトを挿入できるようになり、それを提出する 712 00:42:50,180 --> 00:42:52,550 重複したエントリ、本質的に? 713 00:42:52,550 --> 00:42:54,070 今のところ、はい、それはあなたがそれを行うことを可能にする、 714 00:42:54,070 --> 00:42:58,860 データベースにそれが完全に重複する行を持つことは完全に有効なので、 715 00:42:58,860 --> 00:43:02,260 それが懸念される場合しかし、あなたは、たとえば、検証を追加することができ、 716 00:43:02,260 --> 00:43:06,430 これはすでに存在しているものとまったく同じであるかどうか確認して、 717 00:43:06,430 --> 00:43:08,720 それは無効なオブジェクトだと言う、 718 00:43:08,720 --> 00:43:11,200 そして、あなたもあなたのエラーメッセージを指定することができます 719 00:43:11,200 --> 00:43:14,390 「これはすでに存在するため無効」またはそのような何かと言う。 720 00:43:14,390 --> 00:43:22,420 しかしこの場合、私は重複なものを作成することができます。 721 00:43:22,420 --> 00:43:26,010 それでは、試してみて、いくつかの検証を追加してみましょう。 722 00:43:26,010 --> 00:43:30,400 これに伴う問題は、今ある 723 00:43:30,400 --> 00:43:34,220 私は、文字通り完全に空白のポストに提出できた。 724 00:43:34,220 --> 00:43:37,500 私は今、このボタンをクリックすると、そこに私達は行く。 725 00:43:37,500 --> 00:43:40,290 あなたは本当にそれを見ることはできませんが、ここでは、この余分な行 726 00:43:40,290 --> 00:43:43,830 私は、文字通り新しいポストを持っていることを示しています。 727 00:43:43,830 --> 00:43:46,050 それはちょうど空白の作者とブランクボディを持っている、 728 00:43:46,050 --> 00:43:48,630 私たちは、人々がそれを行うことを許可する必要はありません。 729 00:43:48,630 --> 00:43:52,550 検証の出番です 730 00:43:52,550 --> 00:43:57,540 >>私は私のモデルオブジェクトに行くことができ、 731 00:43:57,540 --> 00:43:59,530 そして今、私は指定する新しい機能を追加することができます 732 00:43:59,530 --> 00:44:02,000 私は、このモデルに追加するべきか検証ルール 733 00:44:02,000 --> 00:44:06,840 それが有効であることを確認するか、指定する内容には、有効なポストであることが意味するのでしょうか? 734 00:44:06,840 --> 00:44:10,210 そして、私はそれが唯一の有効なポストだと言うしたい場合は、著者と体の両方 735 00:44:10,210 --> 00:44:15,150 空白ではなく、これはあなたがKohanaの中でそれを行う方法です。 736 00:44:15,150 --> 00:44:18,750 あなたは、「ルール」と呼ばれる新しい関数を作成 737 00:44:18,750 --> 00:44:20,210 そして、あなたは基本的に連想配列を返す 738 00:44:20,210 --> 00:44:24,230 つまり、このオブジェクトの検証ルールを定義しています。 739 00:44:24,230 --> 00:44:27,530 私たちは、配列を返すつもりしてから、私たちがやろうとしていることですしている 740 00:44:27,530 --> 00:44:32,820 それは、配列に行く」、著者は "と言う、 741 00:44:32,820 --> 00:44:37,720 これと呼ばれる別の配列に行く「空ではありません。 " 742 00:44:37,720 --> 00:44:41,480 そして私は言うつもりだ」身体を。 " 743 00:44:50,980 --> 00:44:54,120 このため大丈夫、このための構文と構造 744 00:44:54,120 --> 00:44:56,530 少し面倒で少し複雑に見えるかもしれません。 745 00:44:56,530 --> 00:44:59,330 あなたがドキュメントを読む場合、それは、把握するのは非常に簡単です 746 00:44:59,330 --> 00:45:02,500 しかし、基本的にこれは、指定するために必要なことである 747 00:45:02,500 --> 00:45:04,130 いくつかの入力規則、および異なるルールがたくさんあり​​ます 748 00:45:04,130 --> 00:45:06,810 あなたが言うようにルールを追加することができますようKohanaのは、無料であなたを与えること 749 00:45:06,810 --> 00:45:08,410 それは、少なくともこの長さでなければなりません。 750 00:45:08,410 --> 00:45:11,800 多分それは数値でなければなりません。多分それは英数字でなければなりません。 751 00:45:11,800 --> 00:45:14,410 多分それはなどなど、最大でこの長さにする必要があります。 752 00:45:14,410 --> 00:45:17,730 Kohanaのがあなたのために提供して異なるルールがたくさんあり​​ます、 753 00:45:17,730 --> 00:45:19,610 あなたは、ドキュメントを見て、自分のウェブサイトに行くことができます 754 00:45:19,610 --> 00:45:23,150 あなたはあなたが行うことができ、すべての異なるものを見ることができます。 755 00:45:23,150 --> 00:45:25,650 >>しかし、これは私がしなければならないすべてである、 756 00:45:25,650 --> 00:45:30,490 そして今度は、何が起こるか見てみましょう 757 00:45:30,490 --> 00:45:34,060 私は空白の記事を提出した場合。 758 00:45:34,060 --> 00:45:36,960 何が起こるだろう?ああ、いや、私はエラーが表示されます。 759 00:45:36,960 --> 00:45:39,440 私は、検証例外を取得します。 760 00:45:39,440 --> 00:45:41,070 まあ、それは良いことだ。 761 00:45:41,070 --> 00:45:43,200 それは私のモデルは無効であることを私に言った、 762 00:45:43,200 --> 00:45:45,780 しかし、私は例外を表示しない 763 00:45:45,780 --> 00:45:48,720 私のユーザーに彼らは正しい、無効なものを提出しようとすると? 764 00:45:48,720 --> 00:45:51,560 私は彼らに友好的なエラーメッセージのいくつかの並べ替えを提供したい 765 00:45:51,560 --> 00:45:53,610 何かがうまくいかないとき。 766 00:45:53,610 --> 00:46:01,830 私たちがやろうとしていることは我々がしようとしているです 767 00:46:01,830 --> 00:46:04,490 TRYキャッチループ内のすべてを包む。 768 00:46:04,490 --> 00:46:06,750 実は、私はこれもまだ習っていないものだと思います 769 00:46:06,750 --> 00:46:10,820 CS50で、C、プログラミング言語C、なぜなら 770 00:46:10,820 --> 00:46:14,000 例外が、ほとんどすべての単一の言語を持っていません 771 00:46:14,000 --> 00:46:16,700 ので、本当に、本当に簡単に説明すると、例外があります 772 00:46:16,700 --> 00:46:19,430 例外は、コードの一部がことができるものです 773 00:46:19,430 --> 00:46:21,430 何かがうまくいかないときに例外をスローし、 774 00:46:21,430 --> 00:46:23,410 アップが、その後、多分、コードのいくつかの他の作品に高い 775 00:46:23,410 --> 00:46:25,810 その例外をキャッチし、それに何かを行うことができます。 776 00:46:25,810 --> 00:46:27,710 >>例えば、この場合、 777 00:46:27,710 --> 00:46:29,940 モデルを保存しようとしているコードの一部、 778 00:46:29,940 --> 00:46:33,170 「さて、このモデルは無効です "それは、モデルを検証し、それを言うなら、 779 00:46:33,170 --> 00:46:36,150 それが例外をスローするだろうし、これはと同等の一種である 780 00:46:36,150 --> 00:46:39,870 C言語では、-1またはそのような何かを返すことがあります。 781 00:46:39,870 --> 00:46:42,320 して、私のために、この機能、私のコード 782 00:46:42,320 --> 00:46:46,310 より高いレベルで、私はその例外を試してみて、キャッチすることができます 783 00:46:46,310 --> 00:46:49,330 そして基本的には「さて、私が例外をキャッチした場合、私は何をするつもり?」と言う 784 00:46:49,330 --> 00:46:51,570 または私はその例外をキャッチし、誰か高いアップをさせないように選択しなかった 785 00:46:51,570 --> 00:46:54,400 例外をキャッチするか、誰もがそれをキャッチしていない場合には、 786 00:46:54,400 --> 00:46:56,820 その後、プログラム全体は、クラッシュすると述べています 787 00:46:56,820 --> 00:46:59,170 「何かがうまくいかなかった、と私はそれを扱うことができませんでした。 " 788 00:46:59,170 --> 00:47:04,490 >>しかし、私たちがやっていることは、あなたは、tryブロック内のコードの一部をラップで 789 00:47:04,490 --> 00:47:09,030 そしてその後も、catchブロックと呼ば​​れるものを追加 790 00:47:09,030 --> 00:47:17,300 これ試してみて、発生する可能性があり、例外をキャッチするコードの一種である。 791 00:47:17,300 --> 00:47:20,430 そして私は、この特定の例外をキャッチした場合 792 00:47:20,430 --> 00:47:23,110 または無効化の例外が、その後、私は何をするつもりだことはある 793 00:47:23,110 --> 00:47:31,210 私はエラーを設定するつもりだ - 私はそれは私がそれを行う方法だと思う - 794 00:47:31,210 --> 00:47:35,370 と私はいくつかのオブジェクトにエラーを設定するつもりです。 795 00:47:35,370 --> 00:47:40,920 それは、この例外に当たった場合、その後私は何をするつもりだことはある、 796 00:47:40,920 --> 00:47:43,090 それがリダイレクトしようとして、それがリダイレクトしない場合ではないが、 797 00:47:43,090 --> 00:47:46,160 それがあれば、ブログから出てくるだろう 798 00:47:46,160 --> 00:47:49,920 と私が何をしたいか新しいこのブログを/ヒット。 799 00:47:49,920 --> 00:47:53,190 エラーが発生した場合、私は、フォームに戻りたい 800 00:47:53,190 --> 00:47:55,100 そしてそれらのエラーが表示されます。 801 00:47:55,100 --> 00:48:00,780 今、私が何をしたいのか、私はそれらのエラーに渡したいさ 802 00:48:00,780 --> 00:48:07,010 表示します。 803 00:48:07,010 --> 00:48:10,360 さて、私は、私はここのビューを持っていると思う 804 00:48:10,360 --> 00:48:14,660 基本的に私は、彼らが存在する場合、これらのエラーを表示したい。 805 00:48:14,660 --> 00:48:19,740 私はそのためのHTMLを書く前に、私は本当にすぐに行くよ 806 00:48:19,740 --> 00:48:21,720 このエラーは、変数ルックスの構造が好きなものをお見せし、 807 00:48:21,720 --> 00:48:23,080 これは一般的にはお勧めします。 808 00:48:23,080 --> 00:48:25,070 あなたが戻っていくつかのメソッドから何かを得る多くの時間、 809 00:48:25,070 --> 00:48:27,250 Webフレームワークの一部の機能、 810 00:48:27,250 --> 00:48:29,410 あなたは、変数がどのようなものかわからないが、 811 00:48:29,410 --> 00:48:31,210 だから、それを操作する方法を知りません。 812 00:48:31,210 --> 00:48:37,790 私は基本的にそれを印刷するために印字Rメソッドを使用するつもりです。 813 00:48:37,790 --> 00:48:41,100 >>そして、あなたが見ることができるように、それは連想配列だ私に語った、 814 00:48:41,100 --> 00:48:44,880 あなたは、この文字列をキー、著者、ポイントを持っている 815 00:48:44,880 --> 00:48:47,050 著者は、空であって、かつ他のキー、体はいけません、 816 00:48:47,050 --> 00:48:49,680 別の文字列へのポインタ、本文は空であってはなりません。 817 00:48:49,680 --> 00:48:52,130 私はクールな、大丈夫、のようだ。 818 00:48:52,130 --> 00:48:56,230 それから私は、配列を反復処理し、一つ一つのメッセージを印刷することができます。 819 00:48:56,230 --> 00:49:02,150 これは、メッセージの束と連想配列のように、基本的だ。 820 00:49:02,150 --> 00:49:13,500 「エラーが発生した場合、「私は何をするつもりだことはある 821 00:49:13,500 --> 00:49:17,140 と私は順序なしリストを作成するつもりです、 822 00:49:17,140 --> 00:49:20,860 と私はすべてのエラーを反復処理するつもりです。 823 00:49:33,730 --> 00:49:38,710 そして、これは、今私は、もう一度を提出しようとするつもりだ 824 00:49:38,710 --> 00:49:41,200 との私たちが得るものを見てみましょう。 825 00:49:41,200 --> 00:49:45,370 今、私たちは、エラーのこの素敵なリストを取得、 826 00:49:45,370 --> 00:49:48,630 これはまだかなり醜いですが、これは明らかに見栄えするようにフォーマットすることができ、 827 00:49:48,630 --> 00:49:51,620 しかし、基本的な考え方は、ほんの数行のコードである 828 00:49:51,620 --> 00:49:53,720 我々は我々のモデルを検証することができました、 829 00:49:53,720 --> 00:49:56,510 特定のフィールドが空ではなかったことを確認して、 830 00:49:56,510 --> 00:49:59,740 何かが間違っていた場合は、エラーメッセージのいくつかの並べ替えを返す 831 00:49:59,740 --> 00:50:01,760 私は、ユーザーに戻って提示することができます。 832 00:50:01,760 --> 00:50:03,910 また、あなたの検証をカスタマイズすることができます 833 00:50:03,910 --> 00:50:07,590 実際には、エラーメッセージを持つことができるように、 834 00:50:07,590 --> 00:50:09,620 それは、アプリケーション、またはそのようなものに、より具体的である。 835 00:50:09,620 --> 00:50:14,600 すべてのことは、一般的にカスタマイズ可能です。 836 00:50:14,600 --> 00:50:17,150 >>残念ながら、我々は時間が不足している、 837 00:50:17,150 --> 00:50:20,040 私はここに住んでコーディングセッションを切断する必要がありますするつもりです。 838 00:50:20,040 --> 00:50:22,980 私はあなたのために発揮したい、他の機能の束があります 839 00:50:22,980 --> 00:50:25,650 この例では。 840 00:50:25,650 --> 00:50:27,620 たとえば、あなたのサイトにテンプレートを追加することができ、 841 00:50:27,620 --> 00:50:31,110 ので、多分、適用するHTMLコードのいくつかの並べ替えがあります 842 00:50:31,110 --> 00:50:35,190 サイト内のすべての単一のページに、その代わりに貼り付けること 843 00:50:35,190 --> 00:50:40,630 明らかに悪い習慣になり、使用しているすべての単一のビューファイルでは、 844 00:50:40,630 --> 00:50:43,020 あなたは基本的に、これらのテンプレートを定義することができ、 845 00:50:43,020 --> 00:50:46,660 してから、コントローラに「さて、私は、このテンプレートを使用しています。」と言う 846 00:50:46,660 --> 00:50:50,130 "すべての私のビューは、このテンプレートを使用しています。" 847 00:50:50,130 --> 00:50:52,470 そして私もあなたに発揮したい1最後の事 848 00:50:52,470 --> 00:50:57,800 我々は、クロスサイトスクリプティングであるための時間を持っていないこと 849 00:50:57,800 --> 00:51:01,430 基本的に私は、あなたたちは、おそらくCS50で見てきたと思う - 850 00:51:01,430 --> 00:51:03,770 私はデビッドマランは、おそらくあなたは、通常注入することができる方法について話しましたと思います 851 00:51:03,770 --> 00:51:08,040 へのJavaScriptコードは、 - あなたはこのことについて話をしている? 852 00:51:08,040 --> 00:51:10,220 多分?そうでないかもしれない? 853 00:51:10,220 --> 00:51:12,670 >>しかし、多くの時間は、あなたは、悪意のあるJavaScriptコードを挿入することができます 854 00:51:12,670 --> 00:51:15,630 誰かのデータベースに、彼らはきちんとそれをエスケープしないと、 855 00:51:15,630 --> 00:51:18,280 そして、彼らは戻って、ユーザーにそのデータを提示すると、 856 00:51:18,280 --> 00:51:21,310 それはあなたが起こることをしたくない、ランダムなJavaScriptコードのいくつかの並べ替えを実行することができ、 857 00:51:21,310 --> 00:51:23,050 と私はあなたがKohanaの内それをしたい方法を紹介するつもりだった。 858 00:51:23,050 --> 00:51:25,380 それは実際には本当に、本当に簡単です。 859 00:51:25,380 --> 00:51:31,920 私は、文字通り2秒で、今それを行うことができます。 860 00:51:31,920 --> 00:51:34,560 あなたがしなければならないのは、基本的にこれらの事をラップされている 861 00:51:34,560 --> 00:51:46,920 この事でHTMLエンティティと呼ばれる。 862 00:51:46,920 --> 00:51:51,180 そして、それは自動的に適切にすべての文字をエスケープします 863 00:51:51,180 --> 00:51:54,730 そして、この問題を取得しないことを確認してください。 864 00:51:54,730 --> 00:51:57,220 [学生]あなたは間違って最初のテストを綴っ。 865 00:51:57,220 --> 00:52:01,030 [ブランドン劉]ああ、おっと。 866 00:52:01,030 --> 00:52:06,420 >>さて、それは私が今日のあなたと共有しなければならなかったすべてです。 867 00:52:06,420 --> 00:52:09,930 これらのスライドを掲示しようとしているが、これらは一般的に 868 00:52:09,930 --> 00:52:13,900 あなたが本当にKohanaの使用を開始する必要があるのリソースのみ。 869 00:52:13,900 --> 00:52:16,770 あなたがウェブサイトに行くことができます。彼らは、ユーザーガイドを持っている、と彼らはまた、APIエクスプローラを持っている。 870 00:52:16,770 --> 00:52:20,630 私たちはあなたのために、彼らが持っているすべての異なる機能やヘルパー関数を探索することができます。 871 00:52:20,630 --> 00:52:22,070 彼らは一般的にウェブサイト上で十分な情報を持っている 872 00:52:22,070 --> 00:52:25,310 あなたが始めるために使用し、Kohanaので軌道に乗ることができます。 873 00:52:25,310 --> 00:52:30,840 多くのチュートリアルでは、外の、Kohanaのために、私が思うに、そこではありません 874 00:52:30,840 --> 00:52:33,880 彼らはここのウェブサイトで持っているものなので、これはおそらくあなたの最善の策である。 875 00:52:33,880 --> 00:52:35,600 しかし、あなたはWebフレームワークと一緒に行きたい場合は、 876 00:52:35,600 --> 00:52:37,120 あなたは新しい言語をピックアップする必要はしたくない、 877 00:52:37,120 --> 00:52:39,780 あなたは、比較的軽量であり、容易な学習曲線を持って何かをしたい 878 00:52:39,780 --> 00:52:41,570 私は間違いなくKohanaのをお勧めします。 879 00:52:41,570 --> 00:52:44,040 それはおそらく、そのための最善の提供です。 880 00:52:44,040 --> 00:52:46,830 私たちはRuby on Railsでを使用していた場合は、面白いことに、しかし、である、 881 00:52:46,830 --> 00:52:48,550 我々は我々だけで何をしたか複製されたかもしれない 882 00:52:48,550 --> 00:52:51,430 おそらく3分未満で、より。 883 00:52:51,430 --> 00:52:54,710 冗談はあるが、Ruby on Railsの学習は多くの時間がかかりません 884 00:52:54,710 --> 00:52:56,780 それはKohanaのを学習するのにかかるよりも。 885 00:52:56,780 --> 00:52:58,840 それは、あなたが学ぶことを選択する内容に基本的にあなたの選択です 886 00:52:58,840 --> 00:53:01,260 しかし、あなたが起動し、すぐに実行して取得したい場合、 887 00:53:01,260 --> 00:53:03,870 Kohanaのは間違いなく非常に良い選択です。 888 00:53:03,870 --> 00:53:06,730 >>すべての最後の質問に私達が終わる前に?はい。 889 00:53:06,730 --> 00:53:08,020 [学生]どのようにしていることを統合できる 890 00:53:08,020 --> 00:53:13,120 あなたが指示されたときに使用していたように、CSSフレームワークの? 891 00:53:13,120 --> 00:53:16,700 問題は、どのように我々は、CSSフレームワークとそれを統合するでしょうか? 892 00:53:16,700 --> 00:53:18,740 私たちは、おそらくするだろうと、我々は、おそらく含まれるであろうある 893 00:53:18,740 --> 00:53:21,090 我々はすべてのCSSファイルをダンプする新しいフォルダ、 894 00:53:21,090 --> 00:53:23,010 した後、我々はまた、新しいテンプレートを追加したい。 895 00:53:23,010 --> 00:53:26,090 テンプレートでは、これらのCSSファイルをインクルードしたい 896 00:53:26,090 --> 00:53:28,410 彼らはすべての単一のページで参照していることを確認するには、 897 00:53:28,410 --> 00:53:32,220 そして、あなたが実際にHTMLを書いているとき、 898 00:53:32,220 --> 00:53:34,010 あなただけの適切なクラスやその他もろもろを追加し、 899 00:53:34,010 --> 00:53:36,100 例えば、フォームのようなものを使用しているとき 900 00:53:36,100 --> 00:53:40,710 ヘルパー関数は、その後多くのパラメータを追加することができます 901 00:53:40,710 --> 00:53:42,830 あなたは様々なものに取り付けられるようにする内容のクラスを指定する 902 00:53:42,830 --> 00:53:47,820 ので、それを適切にスタイルができ、そしてそれはあなたが行くとどのように基本的です。 903 00:53:47,820 --> 00:53:50,100 >>その他の質問? 904 00:53:50,100 --> 00:53:52,090 素晴らしい。 905 00:53:52,090 --> 00:53:58,540 お時間をありがとうございました、そして来てくれてありがとう。 906 00:53:58,540 --> 00:54:05,170 私は他の非常に多くを追加するつもりではなかった、 907 00:54:05,170 --> 00:54:08,560 しかし1本当にクイックなことは、我々は、リンクを持っていないです 908 00:54:08,560 --> 00:54:12,590 フォームに。 909 00:54:12,590 --> 00:54:14,310 本当にばか。 910 00:54:14,310 --> 00:54:20,110 それでは追加してみましょう - 実際に鑑み、ブログ、インデックス、 911 00:54:20,110 --> 00:54:23,890 それでは本当にすぐに新しいページにジャンプするリンクを追加してみましょう、 912 00:54:23,890 --> 00:54:26,770 我々は新しいポストを挿入することができますページ。 913 00:54:26,770 --> 00:54:29,950 我々はこれをやろうとしている。 914 00:54:29,950 --> 00:54:34,020 何がいいのは、HTMLヘルパー関数のこの全体のグループがあるある 915 00:54:34,020 --> 00:54:37,090 あなたのためにさまざまなことを行うので、あなたはすでに実体を見ている 916 00:54:37,090 --> 00:54:41,980 ここで機能しますが、彼らはまた、「アンカー」と呼ばれる機能を持っている 917 00:54:41,980 --> 00:54:45,400 あなたが新しいブログ/を入力することができる 918 00:54:45,400 --> 00:54:49,550 と "ポスト新しいブログ。」と言う 919 00:54:49,550 --> 00:54:51,850 そして、それはあなたのために、そのリンクを作成し、 920 00:54:51,850 --> 00:54:54,120 これを行うのは、本当に些細なようだが、これはいいですが、 921 00:54:54,120 --> 00:54:58,720 あなたは1ドメインから別のものにあなたのウェブサイトを移動していると仮定しているため。 922 00:54:58,720 --> 00:55:01,390 そして、あなたはただのURLを自分で書き出した場合には、 923 00:55:01,390 --> 00:55:04,350 あなたはすべてのURLを変更する必要があります。 924 00:55:04,350 --> 00:55:06,850 それとも、1サブフォルダから別のサブフォルダに移動しました。 925 00:55:06,850 --> 00:55:08,790 あなたはすべてのそれらのURLを自分で変更する必要があり、 926 00:55:08,790 --> 00:55:12,180 それは楽しみではありません。 927 00:55:12,180 --> 00:55:14,510 あなたはここ、このアンカーを使用することができ、 928 00:55:14,510 --> 00:55:18,950 あなたは、ドメインまたはサブフォルダの接頭辞を変更することができます 929 00:55:18,950 --> 00:55:20,640 一度設定ファイル内の 930 00:55:20,640 --> 00:55:22,980 そして、それは、そのどこにでも適用され、これは再び、ある 931 00:55:22,980 --> 00:55:26,930 良い例は、コードを乾燥、自分を繰り返さないでください。 932 00:55:26,930 --> 00:55:30,370 あなた自身を繰り返している限り、試してみて、コンフィギュレーション·ファイルのいくつかの並べ替えで抽出 933 00:55:30,370 --> 00:55:34,160 または別の関数に、それはあなたのためにそれを処理しています。 934 00:55:34,160 --> 00:55:42,930 >>そして、私はあなたを見せたかった一番最後のものだった 935 00:55:42,930 --> 00:55:50,250 我々がこのポストに戻っている、と私はいくつかの本当に長いエッセイを構成していたと仮定し、 936 00:55:50,250 --> 00:55:52,670 しかし、私は私の作成者を含めるのを忘れていました。 937 00:55:52,670 --> 00:55:55,210 今、私は、「ポスト送信」をクリックすると 938 00:55:55,210 --> 00:55:57,270 私はすべてを失った。 939 00:55:57,270 --> 00:56:00,000 違う!本当に悲しい。 940 00:56:00,000 --> 00:56:03,870 それでは、どのようにそれに対処するのですか? 941 00:56:03,870 --> 00:56:06,070 これは我々が何をすべきかです。 942 00:56:06,070 --> 00:56:09,340 私たちがやっていることは、これらの入力やテキストエリアの機能のためにここにある、 943 00:56:09,340 --> 00:56:12,700 私たちは、二番目のパラメータは、その2番目のパラメータは、値が含まれている場合 944 00:56:12,700 --> 00:56:16,620 フィールドが最初に移入されようとしているものであることを行っている。 945 00:56:16,620 --> 00:56:23,570 私たちは何ができることは私たちのブログコントローラであり、 946 00:56:23,570 --> 00:56:25,360 私たちは、別の変数を結合することができた。 947 00:56:25,360 --> 00:56:27,050 多分「値」と呼んでいます。 948 00:56:27,050 --> 00:56:30,620 文字通り、ポスト配列を渡す。 949 00:56:30,620 --> 00:56:32,620 つまり、検証が失敗した場合ことを意味し、 950 00:56:32,620 --> 00:56:36,570 私には、私は最後の要求から提出ポスト配列を渡し、 951 00:56:36,570 --> 00:56:38,420 私は私の最後の投稿からの値を使用することができますし、そのように 952 00:56:38,420 --> 00:56:44,540 フィールドを再作成する。 953 00:56:44,540 --> 00:56:49,600 今、私は値の作者のような何かを行うことができます 954 00:56:49,600 --> 00:56:55,180 私はいくつかのランダムなものを行う場合には、今の体、およびそのように値 955 00:56:55,180 --> 00:57:01,490 そして、それはそこにとどまり、「ポスト送信」をクリックしてください。 956 00:57:01,490 --> 00:57:03,830 しかし、我々は別の問題に遭遇するつもりだ。 957 00:57:03,830 --> 00:57:07,670 私はページに初めて行く場合には、動作しますが、 958 00:57:07,670 --> 00:57:09,720 それはクラッシュになるだろう、と初めてためです 959 00:57:09,720 --> 00:57:13,730 我々はこのポスト変数が定義されていない、ページに移動します。 960 00:57:13,730 --> 00:57:18,170 それがヌルです。それは存在しません。 961 00:57:18,170 --> 00:57:21,630 このキーが存在する場合>>そして、私たちが言いたいことはある、 962 00:57:21,630 --> 00:57:27,750 この配列の値を返し、 963 00:57:27,750 --> 00:57:30,450 キーが存在しないなら、空白文字列を返す。 964 00:57:30,450 --> 00:57:32,150 つまり、我々がここで必要な機能です。 965 00:57:32,150 --> 00:57:34,690 私たちは、キー配列にアクセスしようとする前に存在するかどうかをチェックしたい、 966 00:57:34,690 --> 00:57:36,580 幸いなことに、 967 00:57:36,580 --> 00:57:38,570 Kohanaのも私たちにそのためのヘルパー関数を提供します。 968 00:57:38,570 --> 00:57:41,040 彼らは、この関数のスイート全体を持っている 969 00:57:41,040 --> 00:57:43,660 名前のARRの下、短い配列の場合、 970 00:57:43,660 --> 00:57:45,800 彼らは「取得」と呼ばれる1機能を持っている 971 00:57:45,800 --> 00:57:48,690 あなたは配列を渡すことができ、 972 00:57:48,690 --> 00:57:50,740 あなたは、キーの名前を渡すことができます。 973 00:57:50,740 --> 00:57:54,330 そして、基本的にはそれが何をするか、それがそのキーを取得しようとしている、 974 00:57:54,330 --> 00:57:56,470 しかし、そのキーが配列内に存在しない場合、 975 00:57:56,470 --> 00:58:00,900 、私は信じて、それが空白に戻りますか、我々はまた、デフォルト値を指定することができます 976 00:58:00,900 --> 00:58:03,500 これいいです。 977 00:58:09,740 --> 00:58:13,150 今、我々は再び同じことを行う場合には、 978 00:58:13,150 --> 00:58:15,970 あなたは、今では最初の頃の作品を参照してください 979 00:58:15,970 --> 00:58:18,080 そして再び、我々はいくつかのランダムなものを入力すると 980 00:58:18,080 --> 00:58:23,210 そして、それはそこにとどまり、試してみて、送信してください。 981 00:58:23,210 --> 00:58:31,640 >>そして私は、私も本当にすぐにテンプレートを追加する方法をお見せすることができますね。 982 00:58:31,640 --> 00:58:36,140 我々は、我々は、 "template.phpに"と呼ばれる新しいビューを追加することができます最初に行うことができます 983 00:58:36,140 --> 00:58:38,890 Viewsフォルダー内、 984 00:58:38,890 --> 00:58:44,730 そして私は何をするつもりだと、「コンテンツ」私はと呼ばれるものをプリントアウトするつもりです 985 00:58:44,730 --> 00:58:49,130 私の主な内容であることを行っている。 986 00:58:49,130 --> 00:58:51,380 多分一番下に私が言う、追加するつもりだ 987 00:58:51,380 --> 00:58:53,340 著作権。 988 00:58:53,340 --> 00:58:56,150 [聞こえない学生の質問] 989 00:58:56,150 --> 00:58:58,050 [ブランドン劉]は多分これは私が使いたい超定番のテンプレートです。 990 00:58:58,050 --> 00:59:02,840 私はすべての単一ページ上の私の著作権を持つフォルダを持つようにしたい、 991 00:59:02,840 --> 00:59:05,560 そして今、私は自分のコントローラ内でやろうとしているもの 992 00:59:05,560 --> 00:59:07,740 代わりに、というのが今、「コントローラ拡張」 993 00:59:07,740 --> 00:59:11,870 私は "、Controller_Templateを拡張」と言うつもりだ 994 00:59:11,870 --> 00:59:15,890 代わりに、というのは、今、「レスポンスボディは、このビューに等しい」 995 00:59:15,890 --> 00:59:24,110 私は、と言うつもりです」このテンプレートコンテンツは - " 996 00:59:24,110 --> 00:59:27,690 と私は思う - 私は等号を置くのですか? 997 00:59:27,690 --> 00:59:32,710 私は忘れている。ええ、私はそう思った。 998 00:59:32,710 --> 00:59:37,710 そして今、私は、content変数は、ビューと等しくなるように設定されていること。 999 00:59:37,710 --> 00:59:40,960 私はここで同じことを行うことができます。 1000 00:59:49,620 --> 00:59:57,170 私が更新すると、今、あなたは、この著作権があります追加され、今見ることができます 1001 00:59:57,170 --> 01:00:00,350 ちょうどいくつかのランダムポストを作成、 1002 01:00:00,350 --> 01:00:06,760 そして、その後、再び、あなたが著作権のページの一番下にあることが表示されます。 1003 01:00:06,760 --> 01:00:10,730 >>グレート。それは私があなたたちを見せたかっただけです。 1004 01:00:10,730 --> 01:00:14,970 [拍手] 1005 01:00:14,970 --> 01:00:18,950 ご質問? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]