1 00:00:00,000 --> 00:00:02,150 >> [Семинар] [Kohana: A Lightweight PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [Това е CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Здравейте всички. Моето име е Brandon. 5 00:00:09,130 --> 00:00:11,000 Аз съм младши тук в колежа прави компютърна наука, и днес ние ще говорим за 6 00:00:11,000 --> 00:00:14,460 Kohana, който е рамка уеб програмиране PHP. 7 00:00:14,460 --> 00:00:17,260 Днес ще бъде на живо кодиране на семинар, 8 00:00:17,260 --> 00:00:21,000 така че аз съм в основата си ще прекара 5-10 минути обяснява какво Kohana е, 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 Вие вероятно сте направили една 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 A подробно по-ниско ниво може да бъде нещо като 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 >> Най-популярният ще бъде Model-View-Controller, 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 >> Днес ние ще говорим за Kohana, 80 00:03:29,360 --> 00:03:31,610 който е един от многото PHP рамки. 81 00:03:31,610 --> 00:03:34,550 Има уеб рамки, а има и такива, в почти всеки един език, 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 Той е за 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 разделението между тези три сегмента става все по-очевидна. 98 00:04:21,209 --> 00:04:26,740 I изложени на 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 между две други компоненти. 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 Много пъти Мисля, че през psets CS50 131 00:06:07,410 --> 00:06:10,050 те наистина не ви насърчаваме момчета да отделя тези три неща. 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 в идеалния случай една част от кода трябва да направи едно нещо и да го направя наистина добре, 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 подобни заявки, които могат да бъдат черпени в една функция, 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 Ако искате да промените едно нещо, вие трябва да го промени навсякъде, 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 виж Интернет и достъп до сайта, 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 >> [Student] Какво е най-големият ви може да направи текста? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] е, че по-добре? 180 00:08:47,330 --> 00:08:50,070 [Student] Това ли е постижимо? >> [Brandon Liu] Да, това е добре. 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 Awesome. 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 но ако го направите уеб програмиране, вие ще се сблъскате с този проблем много. 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 Работата е там, по подразбиране се приема, че 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 като нещо друго, което да ви аз ще обясня в секунда. 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 но едно аз търся, е това нещо, наречено база 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 Откъде дойде това? Как стигнахме до 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 тогава какво рамката ще направи - или поне това, което 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 и другите папки се наричат ​​Controller и Model. 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 и можете да видите тук, е един клас, наречен Controller Добре дошли, 249 00:13:00,370 --> 00:13:02,340 и има функция, наречена действие Index, 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 Контролерът подразбиране е дошла. По подразбиране, действието е Index. 260 00:13:28,990 --> 00:13:31,600 Ето защо, когато ние поставяме нищо там тя автоматично отиде до Welcome контролера 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 Сега, вие може да направи повече от това просто да отидете на Controller 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 Нека наречем това действие Echo, защото това ще ви кажа, каквото и да му се даде, 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 Има една стъпка оставих. 285 00:15:23,930 --> 00:15:27,020 Това е част от живото кодиране идея. 286 00:15:27,020 --> 00:15:36,100 >> Ето едно нещо. Нека да видим. 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 и 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 The. * Означава нищо, съвпада с нищо, 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 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 [Student] Как си го знаете, за да направи 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 че показах по-рано, и идентификатора на име беше в тези ъглови скоби, 332 00:18:06,990 --> 00:18:11,580 и това е, как да вземеш тези параметри. 333 00:18:11,580 --> 00:18:14,010 Awesome. 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 така че това е един случай, в който можете да видите, това е. - 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 Днес ние само ще се работи с един обект с данни, 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 По принцип всяка маса съответства на един вид обект с данни, 355 00:19:12,160 --> 00:19:15,160 така че след таблицата ще има един пост модел, 356 00:19:15,160 --> 00:19:18,230 което ще има един пост контролер, съответстваща на тази, 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, след това всичко, което може да получи е 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 тогава той действително ще ми даде мнение обекта 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 Червеи са много чести уеб програмиране, 406 00:21:52,710 --> 00:21:56,330 и има много различни видове червеи, 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 с две полета за нашия автор и нашето тяло. 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 >> В 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 Awesome. 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 които ще видите малко в секунда. 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 и аз отивам да копирате върху Welcome контролера 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 това, което правите, е да вземете мнение обекта 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 Ще кажете: "Brandon, първия ми пост." 484 00:27:37,870 --> 00:27:40,010 Awesome. 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 Всичко, което трябва да направите е разкоментирайте тези две линии, 510 00:29:14,240 --> 00:29:18,760 и сега, ако аз освежи, тя ми даде друга грешка. 511 00:29:18,760 --> 00:29:22,100 Той казва, "Class 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 Сега аз трябва да отмените, че една промяна аз просто го направих. 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 Ние имаме едно мнение. 528 00:30:51,240 --> 00:30:54,730 Ние грабна първия пост, а сега ние отпечатани тялото му. 529 00:30:54,730 --> 00:30:58,010 Чудесно. Fantastic. 530 00:30:58,010 --> 00:31:01,470 Всякакви въпроси досега? 531 00:31:01,470 --> 00:31:04,100 Nope? Някакви въпроси? 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 Validations са едно от нещата, 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 Awesome. 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 така че трябва да направя едно още нещо. 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 И поставете тези две длъжности, 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 това е един файл, но това ще генерира различни гледни точки 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 >> [Student] Така че $ 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 [Student] Така е оглед :: фабрика, е гледка като клас 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 View е класът на оглед, и тя има метод, наречен "Фабрика" 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 и един от тези помощни функции или помощни модули 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 така един за автори и един за органите. 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 Awesome, така че това е това, което виждате. 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 Ще кажете: "Brandon" 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 >> [Student] Ами ако беше влязъл точно същото нещо 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 и да кажа, "Invalid защото това вече съществува" или нещо подобно. 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 увийте всичко в контур пробвам улов. 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 >> Но това, което правим е, че увийте парче код в опитам блок, 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 Отивам да се използва метод за печат 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 И едно последно нещо, което искам да демонстрира пред вас, както и 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 Мисля, че Дейвид Malan вероятно говори за това как обикновено можете да инжектирате 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 [Student] Вие написан първия тест неправилно. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] О, Опа. 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 Explorer. 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 Но ако искате да отидете с уеб рамка 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 по релси, 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 по релси отнема много по-дълго 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 [Student] Как бихме могли да се интегрират, че 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 Awesome. 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 но една наистина бързо нещо е, че ние не разполагате с връзка 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 защото предполагам, че сте се движат вашия сайт от един домейн към друг. 922 00:54:58,720 --> 00:55:01,390 А ако просто написах сам адресите, 923 00:55:01,390 --> 00:55:04,350 тогава ще трябва да се променят всички URL адреси. 924 00:55:04,350 --> 00:55:06,850 Или може би той се премества от една папка в друга папка. 925 00:55:06,850 --> 00:55:08,790 Може би трябва да промените всички тези URLs себе си, 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 Сега, когато натиснете бутона "Изпрати Post," 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 и натиснете бутона "Изпрати Post", тогава той остава там. 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 и те имат една функция, наречена "да" 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 в папката Прегледи, 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 [Brandon Liu] Може би това е супер основния шаблон Искам да използвам. 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 Сега е вместо да каже, "разширява Controller" 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 >> Great. Това е всичко, което исках да ви покажа момчета. 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]