1 00:00:00,000 --> 00:00:02,150 >> [Семинар] [Кохана: Легкий PHP Framework] 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. 7 00:00:14,460 --> 00:00:17,260 Сегодня будет живой семинар кодирования, 8 00:00:17,260 --> 00:00:21,000 так что я в основном собираются потратить 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, 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 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 >> Это где веб-рамки в основном вошли 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 Вы должны сосредоточиться на том, что ваша распределение веб самом деле о. 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 которые я собираюсь говорить в секунду. 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 так что, когда вы принять веб-фреймворк 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 >> Сегодня мы будем говорить о Кохана, 80 00:03:29,360 --> 00:03:31,610 который является одним из многих фреймворков. 81 00:03:31,610 --> 00:03:34,550 Есть веб-рамки, и есть те, практически в каждом языке, 82 00:03:34,550 --> 00:03:38,330 и я выбираю Кохана потому Кохана, возможно 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 И, наконец, Кохана использует архитектуру 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 Она выступает за Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 и, возможно, если вы думаете о коде вы писали до сих пор 94 00:04:09,560 --> 00:04:11,280 для некоторых из ваших psets веб-разработки 95 00:04:11,280 --> 00:04:14,710 Вы можете быть в состоянии видеть некоторые из этого, но, как правило, когда вы начинаете писать 96 00:04:14,710 --> 00:04:16,500 более сложный веб-приложений, 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 и часто вы будете слышать люди говорят о стеков в веб-разработке, 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 psets 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 Любые вопросы до сих пор около Кохана вообще? 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 см. веб-сайт и получить доступ к веб-сайт, 170 00:08:06,310 --> 00:08:10,990 а также окружающая среда лучше выполнен с чем мой удаленной машине, 171 00:08:10,990 --> 00:08:14,580 потому что это работает Linux вместо OS X. 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 Я собираюсь загрузить код с веб-сайта. 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 файл и расстегнула, что в каталог под именем Кохана, 182 00:08:54,500 --> 00:08:58,820 и мы собираемся переименовать эту CS50-Кохана, 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 Большинство из вас может игнорировать - we're не собираюсь идти через каждый файла, который здесь 187 00:09:10,140 --> 00:09:13,130 из-за наших временных ограничений, 188 00:09:13,130 --> 00:09:16,310 но в целом при установке Кохана, первое, что вы делаете 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 чтобы убедиться, что ваша среда правильно настроен для запуска Кохана 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 но если вы делаете веб-разработки, вы собираетесь столкнуться с этой проблемой много. 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 Я собираюсь переместить файл install.php, чтобы installed.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 Дело в том, по умолчанию, Кохана предполагает, что 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 Кохана. 211 00:10:39,820 --> 00:10:42,640 Дело в том, что это неверно истолковав CS50-Кохана 212 00:10:42,640 --> 00:10:45,680 как что-то еще, что я объясню вам в секунду. 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 Ага! Прямо здесь. 220 00:11:15,180 --> 00:11:18,690 Есть куча разных высказываний конфигурации здесь, 221 00:11:18,690 --> 00:11:21,700 но тот, который я смотрю на это, что называется база URL, 222 00:11:21,700 --> 00:11:24,570 и по умолчанию я получить его в Кохана, 223 00:11:24,570 --> 00:11:29,020 но я собираюсь изменить, что CS50-Кохана, 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 Откуда это взялось? Как мы дошли до Hello World? 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 Практически все структуры веб иметь концепцию под названием маршрутизации, 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, и вы пойти на некоторые URL, как foo.com / блог / все 234 00:12:07,510 --> 00:12:11,170 то, что каркас собирается делать - или по крайней мере то, что Кохана собирается делать - 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 Если вы посмотрите в папке Controller, 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 и то, что она делает это задает тело вашего ответа на Hello World. 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 а индекс Действие. 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 в угловых скобках, что означает, что мы назвав это идентификатор параметра. 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 Так обычно по умолчанию с большим количеством этих веб-приложений 288 00:15:38,870 --> 00:15:42,820 Вы должны включить этот index.php вещь в вашей URL, 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 и почти каждый веб-фреймворк из коробки 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, 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 и Кохана достаточно хорош, чтобы обеспечить шаблона. файл 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 а затем вторая часть 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 Кохана к тому, что, 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 Но странная вещь, хотя, является то, что способ Кохана делает это 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 так вот 1 случай, когда вы можете видеть that's - 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 сообщение модель, 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 >> Вы, ребята уже сделали 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, то все, что я могу получить это идентификатор 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 то он будет на самом деле дать мне объект сообщению 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 Было ли это отвечал в течение последней недели, верно или неверно? 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 ORMs очень распространены веб-разработки, 406 00:21:52,710 --> 00:21:56,330 и есть много различных типов ORMs, 407 00:21:56,330 --> 00:21:58,450 и Кохана имеет свой собственный 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 настроить свой веб-приложения, так что знает, как подключиться к базе данных, 425 00:23:29,820 --> 00:23:31,950 и это, опять же, это то, что вам придется делать со всеми веб-приложений. 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 >> В Кохана, у нас есть то, что называется модуль базы данных, 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 и поэтому, когда я говорю: "расширяет ОРМ," это в основном 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 которые вы увидите немного в секунду. 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 в Кохана, что вы делаете, чтобы захватить объект сообщению 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 в Кохана, который является своего рода хорошим. 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 Я предполагаю, что, возможно, придется - о. 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 Итак, мы только что создали почтовое модель, очень простой, 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 но если вы делаете веб-разработки для вашего окончательного проекта, 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 и в значительной степени каждый веб-фреймворк сделает это за вас 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 и мы можем итерацию массива сообщений, 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 О, я пропустил один шаг. Очень глупо с моей стороны. 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 Что приятно о Кохана, что они дают много различных вспомогательных функций 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'S 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 так что для авторов и один для органов. 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 Конечно, есть и другие веб-рамки, которые имеют его еще чище, чем, что, 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 По умолчанию в большинстве веб-платформами, 682 00:40:56,050 --> 00:40:58,200 он представляет в ту же самую URL, так что все дело в том, 683 00:40:58,200 --> 00:41:01,310 если вы отправляете запрос добраться до / блог / новый, 684 00:41:01,310 --> 00:41:03,240 он должен показать вам форму, 685 00:41:03,240 --> 00:41:06,810 но если вы посылаете запрос сообщению в / блог / новый с данными, 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 в основном все, что мы должны сделать, чтобы проверить, является ли это запрос сообщение или запрос Get 690 00:41:25,320 --> 00:41:29,350 , чтобы проверить, каковы передаваемые переменные, которые можно установить. 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 Ура! 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 не пустой, и это, как вы делаете это в Кохана. 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 что Кохана даст вам бесплатно, как вы можете добавить правила сказать 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 Есть много разных правил, которые предоставляет Кохана для вас, 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 обернуть все в попытка поймать цикла. 768 00:46:04,490 --> 00:46:06,750 На самом деле, я думаю, что это также то, что вы еще не научились 769 00:46:06,750 --> 00:46:10,820 в CS50, потому что С, язык программирования 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 в С вы можете вернуться -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 >> Но что мы делаем, вы обернуть кусок кода в блока проверки, 789 00:47:04,490 --> 00:47:09,030 и тогда вы также добавить то, что называется блок поймать, 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 некоторая функция в веб-базы, 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 Я собираюсь использовать метод печати г в основном распечатать его. 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 И тот, последнее, что я хочу показать вам, а также 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 и я собирался продемонстрировать, как вы могли бы сделать, что в Кохана. 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 единственные ресурсы, которые вы должны действительно нужно, чтобы начать с Кохана. 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 что вы можете использовать, чтобы начать работу и начать работать с Кохана. 873 00:52:25,310 --> 00:52:30,840 Есть не так много учебников, я думаю, для Кохана, за пределами 874 00:52:30,840 --> 00:52:33,880 то, что они имеют на веб-сайте здесь, так что это, вероятно, ваш лучший выбор. 875 00:52:33,880 --> 00:52:35,600 Но если вы хотите, чтобы пойти с веб рамках 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 Я определенно предложил бы Кохана. 879 00:52:41,570 --> 00:52:44,040 Это, вероятно, лучший предлагая за это. 880 00:52:44,040 --> 00:52:46,830 Самое смешное, однако, является если бы мы использовали Рубин на рельсы, 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 Шутка ли, но, узнав, Рубин на рельсы не занимает гораздо больше 884 00:52:54,710 --> 00:52:56,780 чем это было бы предпринять, чтобы узнать Кохана. 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 Кохана, безусловно, очень хороший выбор. 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 если включить второй параметр, то значение этого второго параметра 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 Кохана также дает нам вспомогательную функцию для этого. 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 А теперь я установил, что содержимое переменной равным вид. 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]