1 00:00:00,000 --> 00:00:02,150 >> [Seminarium] [Kohana: Lekka PHP Framework] 2 00:00:02,150 --> 00:00:04,000 [Brandon Liu] [Harvard University] 3 00:00:04,000 --> 00:00:07,270 [To jest CS50.] [CS50.TV] 4 00:00:07,270 --> 00:00:09,130 >> Witam wszystkich. Nazywam się Brandon. 5 00:00:09,130 --> 00:00:11,000 Jestem młodszy tutaj na uczelni robi informatyki, a dziś będziemy mówić o 6 00:00:11,000 --> 00:00:14,460 Kohana, który jest frameworkiem tworzenie stron internetowych. 7 00:00:14,460 --> 00:00:17,260 Dziś będzie na żywo seminarium kodowania, 8 00:00:17,260 --> 00:00:21,000 więc jestem w zasadzie zamiar spędzić 5-10 minut wyjaśniając co Kohana jest, 9 00:00:21,000 --> 00:00:25,000 i jestem dosłownie zbuduje bardzo prosty blog 10 00:00:25,000 --> 00:00:28,570 dla Ciebie tu dosłownie od zera. 11 00:00:28,570 --> 00:00:32,229 Zamierzamy pobrać kod ze strony Kohana, 12 00:00:32,229 --> 00:00:35,000 i zamierzamy rozpocząć budowę blog, i mam nadzieję, że będzie to bardzo pouczające, 13 00:00:35,000 --> 00:00:37,000 bo zobaczysz być może być może zrobię jakieś błędy, 14 00:00:37,000 --> 00:00:39,000 i zobaczysz mnie odzyskać od nich, 15 00:00:39,000 --> 00:00:42,040 lub zobaczysz mój proces myślowy, jak zbudować poprzez tego bloga, 16 00:00:42,040 --> 00:00:44,000 a tymczasem, można także zapoznać się z samą ram. 17 00:00:44,000 --> 00:00:48,000 Mam nadzieję, że będzie to bardzo pouczające ćwiczenie. 18 00:00:48,000 --> 00:00:51,370 >> Po pierwsze, co to dokładnie jest ramowa? 19 00:00:51,370 --> 00:00:54,000 Jeśli już przy CS50 tak daleko, to naprawdę nie pracował z żadnym 20 00:00:54,000 --> 00:00:56,000 Ramy i jeszcze sprawa to. 21 00:00:56,000 --> 00:01:00,000 Prawdopodobnie zrobić 1 pset tworzenie stron internetowych już, 22 00:01:00,000 --> 00:01:03,000 i powiedzmy, że nadal budować stron internetowych i utrzymać budynek. 23 00:01:03,000 --> 00:01:05,000 Zaczniesz zauważać kilka rzeczy. 24 00:01:05,000 --> 00:01:07,000 Pierwszą rzeczą, jaką można zauważyć, jest to, że jesteś prawdopodobnie robi te same rzeczy 25 00:01:07,000 --> 00:01:09,150 w kółko przez cały czas, 26 00:01:09,150 --> 00:01:13,000 takie rzeczy jak czyszczenie danych wejściowych użytkownika, 27 00:01:13,000 --> 00:01:17,250 rzeczy takie jak organizowanie plików w określony sposób. 28 00:01:17,250 --> 00:01:19,000 Inna sprawa, będziesz też zapewne jest fakt, że kod 29 00:01:19,000 --> 00:01:21,000 może rozpocząć się bardzo, bardzo brudny, 30 00:01:21,000 --> 00:01:24,000 i możesz go zostawić bałagan i po prostu bardzo trudno z utrzymaniem go, 31 00:01:24,000 --> 00:01:26,000 lub może zacząć strukturę kodu i co modułowa 32 00:01:26,000 --> 00:01:28,510 w niektórych sposobów, aby go bardziej linkujących. 33 00:01:28,510 --> 00:01:31,020 >> To gdzie w zasadzie przyszedł ramy internetowych w. 34 00:01:31,020 --> 00:01:33,680 Ci ludzie, którzy zbudowali wiele stron internetowych, mówili, 35 00:01:33,680 --> 00:01:35,820 "Nie trzeba powtarzać tego za każdym razem możemy zbudować stronę internetową." 36 00:01:35,820 --> 00:01:39,050 "Dlaczego nie możemy po prostu zrobić pakiet, który wykonuje wszystkie te rzeczy dla Ciebie 37 00:01:39,050 --> 00:01:41,250 za każdym razem, gdy chcesz zbudować stronę internetową? " 38 00:01:41,250 --> 00:01:43,030 I tak, że w momencie tworzenia nowej strony internetowej, 39 00:01:43,030 --> 00:01:45,880 po prostu skupić się na tym, co dokładnie ta konkretna strona jest na temat. 40 00:01:45,880 --> 00:01:48,630 Nie musisz powtarzać wszystkich różnych konfiguracji 41 00:01:48,630 --> 00:01:53,070 i oddzielenie przepisywania kodów i kod 42 00:01:53,070 --> 00:01:56,180 że często trzeba zrobić, gdy robisz internetowe. 43 00:01:56,180 --> 00:01:59,410 Chodzi o to, że ramy pozwala na pisanie kodu wyższego poziomu 44 00:01:59,410 --> 00:02:01,030 bez konieczności martwienia się o szczegóły niższego szczebla. 45 00:02:01,030 --> 00:02:03,670 Szczegóły niższego poziomu może być coś takiego jak 46 00:02:03,670 --> 00:02:07,250 czynienia z czyszczeniem danych wejściowych użytkownika. 47 00:02:07,250 --> 00:02:09,320 To jest coś, czego nie powinien naprawdę trzeba się martwić. 48 00:02:09,320 --> 00:02:12,370 Należy skupić się na tym, co jest w rzeczywistości podział internetowej o. 49 00:02:12,370 --> 00:02:14,790 Eliminuje dużo kodu szablonowe. 50 00:02:14,790 --> 00:02:16,640 Jest to architektura dla projektu. 51 00:02:16,640 --> 00:02:18,680 >> Najbardziej popularny byłoby Model-View-Controller, 52 00:02:18,680 --> 00:02:20,380 które mam zamiar mówić o chwilę. 53 00:02:20,380 --> 00:02:22,790 I wiele razy te ramy ucieleśnieniem zestaw procedur, 54 00:02:22,790 --> 00:02:25,750 zasady i najlepsze praktyki używanie 55 00:02:25,750 --> 00:02:28,190 tak, że kiedy przyjmie ramy internetowej 56 00:02:28,190 --> 00:02:30,050 trzeba napisać kod w określony sposób, 57 00:02:30,050 --> 00:02:32,430 i jest ogólnie uzgodnione zbioru zasad 58 00:02:32,430 --> 00:02:34,290 przez społeczność, która jest powszechnie uznaje się 59 00:02:34,290 --> 00:02:36,230 dobrym sposobem pisania kodu. 60 00:02:36,230 --> 00:02:38,260 To sprawia, że ​​kod jest bardziej w utrzymaniu, bardziej użyteczny, 61 00:02:38,260 --> 00:02:40,030 tak dalej, i tak dalej. 62 00:02:40,030 --> 00:02:42,740 I wreszcie, co chcę podkreślić o ram 63 00:02:42,740 --> 00:02:45,980 w porównaniu z bibliotek jest to pomysł, o odwrócenie kontroli, i co to jest. 64 00:02:45,980 --> 00:02:48,430 Różnica pomiędzy biblioteki i ramy jest biblioteką 65 00:02:48,430 --> 00:02:51,990 nadal jesteś pisanie programu głównego, 66 00:02:51,990 --> 00:02:54,460 i masz coś w rodzaju wywoływania biblioteki 67 00:02:54,460 --> 00:02:56,810 i wzywając bibliotece zrobić coś dla Ciebie. 68 00:02:56,810 --> 00:02:58,180 Różnica między biblioteką i ram 69 00:02:58,180 --> 00:03:01,620 jest to, że ramy zaczyna się kontroli, 70 00:03:01,620 --> 00:03:03,260 i wywołuje kod, 71 00:03:03,260 --> 00:03:06,190 więc można myśleć o tym, jak - to dlaczego to się nazywa ramy - 72 00:03:06,190 --> 00:03:09,700 Ramy te to rama i strukturę kodu, 73 00:03:09,700 --> 00:03:11,320 i wypełnić otwory, 74 00:03:11,320 --> 00:03:13,990 i to będzie bardziej widoczne w drugim 75 00:03:13,990 --> 00:03:16,670 gdy widzisz, że zacznę pisać kod w kontekście ram. 76 00:03:16,670 --> 00:03:19,130 Zobaczysz, że mam wypełnienie luki, 77 00:03:19,130 --> 00:03:22,450 i ramy jest rodzajem kontroli wszystkich ruchomych elementów, 78 00:03:22,450 --> 00:03:27,420 i muszę umieścić elementy w odpowiednich miejscach. 79 00:03:27,420 --> 00:03:29,360 >> Dziś będziemy mówić o Kohana, 80 00:03:29,360 --> 00:03:31,610 który jest jednym z wielu ram PHP. 81 00:03:31,610 --> 00:03:34,550 Istnieją ramy sieci web, a tam są te, w niemal każdym języku, 82 00:03:34,550 --> 00:03:38,330 i Odbieram Kohana Kohana jest zapewne dlatego, 83 00:03:38,330 --> 00:03:43,250 i ogólnie uznane za najprostszy frameworkiem odebrać. 84 00:03:43,250 --> 00:03:45,940 Jest to najbardziej lekki. 85 00:03:45,940 --> 00:03:48,470 Są tam inne te, które pochodzą z wielu, wielu innych funkcji, 86 00:03:48,470 --> 00:03:51,590 ale wydają się być trudniejsze do odbioru. 87 00:03:51,590 --> 00:03:54,920 I wreszcie, Kohana używa architektury MVC. 88 00:03:54,920 --> 00:03:57,780 Jest to na tyle lekki, że można dosłownie zbudować projekt 89 00:03:57,780 --> 00:03:59,620 tutaj tuż przed oczami, i można dość dużo 90 00:03:59,620 --> 00:04:02,780 podążać dość łatwo. 91 00:04:02,780 --> 00:04:04,420 >> Co to jest architektura MVC? 92 00:04:04,420 --> 00:04:06,540 To oznacza Model-View-Controller, 93 00:04:06,540 --> 00:04:09,560 i być może, jeśli myślisz o kodzie masz pory pisze 94 00:04:09,560 --> 00:04:11,280 dla niektórych swoich psets tworzenie stron internetowych 95 00:04:11,280 --> 00:04:14,710 może być w stanie zobaczyć niektóre z tego, ale zwykle kiedy zacząć pisać 96 00:04:14,710 --> 00:04:16,500 bardziej złożona aplikacja internetowa, 97 00:04:16,500 --> 00:04:21,209 podział tych 3 segmentach staje się coraz bardziej oczywiste. 98 00:04:21,209 --> 00:04:26,740 Położyłem się MVC tutaj rodzaju, jak stos, 99 00:04:26,740 --> 00:04:29,920 i często usłyszysz ludzie mówią o stosy w rozwoju internetowej, 100 00:04:29,920 --> 00:04:33,760 i ten ma na celu zilustrowanie idei, że 101 00:04:33,760 --> 00:04:37,510 każda z warstw, każdy komponent bardzo stara się tylko komunikować 102 00:04:37,510 --> 00:04:40,750 od 2 do innych komponentów. 103 00:04:40,750 --> 00:04:44,550 Ktoś uzyskuje dostęp do strony internetowej jako klienta lub przeglądarki. 104 00:04:44,550 --> 00:04:48,870 Ich interakcji z programu za pomocą kodu widoku. 105 00:04:48,870 --> 00:04:50,500 Kod zobacz współdziała ze sterownikiem. 106 00:04:50,500 --> 00:04:52,400 Sterownik współdziała z modelu 107 00:04:52,400 --> 00:04:55,090 a model współpracuje z bazą danych SQL. 108 00:04:55,090 --> 00:04:59,670 I nie ma przeskoki pomiędzy jeśli piszesz kod poprawnie. 109 00:04:59,670 --> 00:05:01,670 >> Co te rzeczy zrobić? 110 00:05:01,670 --> 00:05:06,020 Model zasadniczo jest kawałek kodu, który zajmuje się swoimi danymi. 111 00:05:06,020 --> 00:05:09,100 Wszystko, co dotyczy bazy danych, z obiektów, które można zapisać, 112 00:05:09,100 --> 00:05:11,280 lub pobieranie tych obiektów w bazie danych, 113 00:05:11,280 --> 00:05:13,450 że wszystko jest obsługiwane przez model. 114 00:05:13,450 --> 00:05:15,290 Może masz obiektów w bazie danych. 115 00:05:15,290 --> 00:05:17,700 Mamy zamiar stworzyć model, mający do czynienia z wiadomości, 116 00:05:17,700 --> 00:05:19,760 tak Post może mieć pewne atrybuty do niego. 117 00:05:19,760 --> 00:05:23,900 Możesz mieć funkcje wokół przechowywania tych stanowisk lub pobierania wiadomości 118 00:05:23,900 --> 00:05:26,270 lub filtrowanie wiadomości i tak dalej, i tak dalej, 119 00:05:26,270 --> 00:05:28,880 i to jest cały kod, który jest obsługiwany przez model. 120 00:05:28,880 --> 00:05:31,780 Sterownik to rodzaj logiki aplikacji, 121 00:05:31,780 --> 00:05:37,910 i wiele różnych rzeczy może pójść w logice aplikacji. 122 00:05:37,910 --> 00:05:39,790 Jeśli mówisz do innego API, 123 00:05:39,790 --> 00:05:42,310 że może być tam, gdzie mamy do czynienia z logiką aplikacji. 124 00:05:42,310 --> 00:05:47,990 Jeśli starasz się wziąć ze sobą w danych z wielu różnych modeli 125 00:05:47,990 --> 00:05:51,540 i trzeba je połączyć w jakiś sposób, że często może być obsługiwane przez kontroler. 126 00:05:51,540 --> 00:05:53,820 Na przykład, na Facebooku, jeśli ktoś znajomy, 127 00:05:53,820 --> 00:05:58,500 to być może, że akt ustanawiający takie relacje 128 00:05:58,500 --> 00:06:00,490 Można tego dokonać przez regulator. 129 00:06:00,490 --> 00:06:04,350 >> I wreszcie, widok jest kod, który jest generowanie co faktycznie zobaczyć. 130 00:06:04,350 --> 00:06:07,410 Wiele razy myślę, że w psets CS50 131 00:06:07,410 --> 00:06:10,050 tak naprawdę nie zachęcają was do oddzielenia tych 3 rzeczy. 132 00:06:10,050 --> 00:06:12,430 Prawdopodobnie będziesz mieć to duży, długi plik, gdzie na szczycie 133 00:06:12,430 --> 00:06:15,130 zrobić jakieś zapytanie SQL, a może zrobić niektóre przetwarzania 134 00:06:15,130 --> 00:06:17,020 na danych, które pobierane z bazy danych, 135 00:06:17,020 --> 00:06:19,370 i wtedy masz wszystkie swoje HTML na dole. 136 00:06:19,370 --> 00:06:22,840 I może się okazać, że podczas tworzenia więcej i więcej stron 137 00:06:22,840 --> 00:06:25,790 że masz zamiar mieć trochę kodu powtórzenia, a także, 138 00:06:25,790 --> 00:06:29,600 jest to plik robi się naprawdę duża i długa 139 00:06:29,600 --> 00:06:32,370 i staje się niewydolny zarządzać. 140 00:06:32,370 --> 00:06:34,500 Powodem, dla którego MVC jest tak dobrze traktowane 141 00:06:34,500 --> 00:06:36,120 dla wielu powodów. 142 00:06:36,120 --> 00:06:38,110 Pierwszą rzeczą jest coś, co nazywa oddzielenie obawy 143 00:06:38,110 --> 00:06:40,370 który jest pomysł, że gdy masz - 144 00:06:40,370 --> 00:06:43,520 idealnie 1 kawałek kodu powinien zrobić 1 rzecz i zrobić to naprawdę dobrze, 145 00:06:43,520 --> 00:06:47,210 i nie należy łączyć fragmenty kodu, które wykonują odmienne rzeczy. 146 00:06:47,210 --> 00:06:49,230 Na przykład, widok kodu i kod modelu, 147 00:06:49,230 --> 00:06:51,040 tak naprawdę nie muszą być związane. 148 00:06:51,040 --> 00:06:53,290 Nie muszą być w tych samych plikach, więc kiedy można, rozdzielając je 149 00:06:53,290 --> 00:06:55,300 więc jest to łatwe do utrzymania. 150 00:06:55,300 --> 00:06:57,130 >> Inna sprawa to kod wielokrotnego użytku. 151 00:06:57,130 --> 00:06:59,770 Może znaleźć się pisząc to samo zapytanie SQL lub robi 152 00:06:59,770 --> 00:07:03,060 Podobne zapytania, które mogą być abstrakcyjnymi 1 funkcji, 153 00:07:03,060 --> 00:07:05,440 i to jest idea modeli i kontrolerów, 154 00:07:05,440 --> 00:07:09,690 mając go w osobnej funkcji, które można ponownie wykorzystać w różnych miejscach w projekcie. 155 00:07:09,690 --> 00:07:12,420 I w końcu, że jest przywiązany do suszenia kodu, 156 00:07:12,420 --> 00:07:14,700 lub nie powtarzając się, nie powtarzaj się. 157 00:07:14,700 --> 00:07:18,090 Jest to bardzo zrozumiałe w rozwoju. 158 00:07:18,090 --> 00:07:20,110 Kiedy tylko może, nie chcę się powtarzać, bo jeśli powtarzać się, 159 00:07:20,760 --> 00:07:23,400  to jest o wiele bardziej kosztowne w utrzymaniu. 160 00:07:23,400 --> 00:07:26,040 Jeśli chcesz zmienić 1 rzecz, trzeba zmienić go wszędzie, 161 00:07:26,040 --> 00:07:30,230 i prowadzi do błędów, i to straszne. 162 00:07:30,230 --> 00:07:32,010 >> Wszystko w porządku. 163 00:07:32,010 --> 00:07:37,270 Wszelkie pytania do tej pory około Kohana w ogóle? 164 00:07:37,270 --> 00:07:39,200 Świetnie. 165 00:07:39,200 --> 00:07:42,300 Teraz jedziemy do nurkowania w żywej sesji kodowania, 166 00:07:42,300 --> 00:07:48,050 i mam nadzieję, że wszystko pójdzie dobrze. 167 00:07:57,200 --> 00:08:00,050 Mam zamiar w zasadzie budować tę stronę 168 00:08:00,050 --> 00:08:03,910 na jednym z moich serwerów zdalnych i ten sposób, że chłopaki mogą również 169 00:08:03,910 --> 00:08:06,310 zobacz stronę internetową i dostęp do strony internetowej, 170 00:08:06,310 --> 00:08:10,990 a także środowisko jest lepiej skonfigurowany niż mój zdalnej maszyny, 171 00:08:10,990 --> 00:08:14,580 ponieważ jest systemem Linux zamiast OS X. 172 00:08:14,580 --> 00:08:16,260 Jesteśmy dosłownie zaczynać. 173 00:08:16,260 --> 00:08:18,110 KohanaFramework.org. 174 00:08:18,110 --> 00:08:21,350 Zamierzam pobrać kod ze strony internetowej. 175 00:08:21,350 --> 00:08:24,610 Mam zamiar skopiować adres łącza, 176 00:08:24,610 --> 00:08:29,770 iść do mojego serwera, pobierz go, 177 00:08:29,770 --> 00:08:33,000 i mam zamiar go rozpakować. 178 00:08:38,330 --> 00:08:45,710 >> [Student] Co jest największym możesz tekst? 179 00:08:45,710 --> 00:08:47,330 [Brandon Liu] Czy tak jest lepiej? 180 00:08:47,330 --> 00:08:50,070 [Student] Czy to wykonalne? >> [Brandon Liu] Tak, to jest w porządku. 181 00:08:50,070 --> 00:08:54,500 Ściągnąłem plik ZIP i rozpakować, że do katalogu o nazwie Kohana, 182 00:08:54,500 --> 00:08:58,820 i mamy zamiar zmienić nazwę tego CS50-Kohana, 183 00:08:58,820 --> 00:09:01,140 i idziemy w. 184 00:09:01,140 --> 00:09:03,610 Niesamowite. 185 00:09:03,610 --> 00:09:06,870 Tutaj można zobaczyć kilka różnych plików. 186 00:09:06,870 --> 00:09:10,140 Większość z was może zignorować - ale jesteśmy nie zamierza przejść przez każdego pliku, który znajduje się tutaj 187 00:09:10,140 --> 00:09:13,130 z powodu naszych ograniczeń czasowych, 188 00:09:13,130 --> 00:09:16,310 ale generalnie po zainstalowaniu Kohana, pierwszą rzeczą, możesz zrobić 189 00:09:16,310 --> 00:09:23,210 jest udać się do katalogu, 190 00:09:23,210 --> 00:09:26,050 a ty po prostu zrobić kilka badań środowiskowych i etażerka 191 00:09:26,050 --> 00:09:28,640 aby upewnić się, że środowisko jest prawidłowo ustawiony, aby uruchomić Kohana 192 00:09:28,640 --> 00:09:31,450 i upewnić się, że wszystko jest w porządku. 193 00:09:31,450 --> 00:09:35,510 Można zobaczyć większość rzeczy przeszedł, ale generalnie zawsze uruchomić w tym 1 błąd 194 00:09:35,510 --> 00:09:38,180 w którym skarży się, że niektórzy nie ma prawa zapisu w katalogu, 195 00:09:38,180 --> 00:09:40,410 a to dlatego, że z pewnych uprawnień. 196 00:09:40,410 --> 00:09:43,080 Nie wiem, ile wam dowiedzieliśmy się o uprawnienia do plików w CS50, 197 00:09:43,080 --> 00:09:47,920 ale jeśli nie tworzenie stron internetowych, masz zamiar uruchomić w tej kwestii dużo. 198 00:09:47,920 --> 00:09:58,340 Mam zamiar zrobić to zapisu 199 00:09:58,340 --> 00:10:03,390 i myślę, że mam również - tam idziemy. 200 00:10:03,390 --> 00:10:07,040 >> Ok, więc teraz można zobaczyć wszystko, co przeszedł, 201 00:10:07,040 --> 00:10:10,000 i teraz powie to, aby zmienić nazwę pliku install.php. 202 00:10:10,000 --> 00:10:15,630 Zamierzam przenieść plik install.php do installed.php, 203 00:10:15,630 --> 00:10:19,610 i teraz, jeśli ja odświeżyć, 204 00:10:19,610 --> 00:10:22,810 to daje mi jakiś błąd, i to, gdzie jest cala debugowania 205 00:10:22,810 --> 00:10:25,610 To jest, gdzie można zobaczyć, co faktycznie się stanie. 206 00:10:25,610 --> 00:10:28,460 Jest to domyślnie zakłada, że ​​Kohana 207 00:10:28,460 --> 00:10:31,480 Twój projekt jest w katalogu głównym domeny, 208 00:10:31,480 --> 00:10:35,920 więc spodziewa się pan w demo.brandonkliu.com. 209 00:10:35,920 --> 00:10:37,540 Musimy powiedzieć, że jest to rzeczywiście w podfolderze. 210 00:10:37,540 --> 00:10:39,820 To w podfolderze o nazwie CS50 Kohana. 211 00:10:39,820 --> 00:10:42,640 Chodzi o to, że jest źle interpretują CS50-Kohana 212 00:10:42,640 --> 00:10:45,680 jako coś innego, co wytłumaczę wam w sekundę. 213 00:10:45,680 --> 00:10:49,910 Ale powinienem powiedzieć, że jest coś, co należy się spodziewać. 214 00:10:49,910 --> 00:10:53,700 Co mamy zamiar zrobić, to będziemy go w tym folderze o nazwie Bootstrap.php, 215 00:10:53,700 --> 00:10:59,260 który to folder konfiguracji, gdzie wiele różnych rzeczy są ustawione. 216 00:10:59,260 --> 00:11:01,570 Otworzyć to. 217 00:11:01,570 --> 00:11:09,790 To może jedna z pierwszych rzeczy, zrobię to zmienić strefę czasową. 218 00:11:09,790 --> 00:11:13,910 >> A potem zobaczymy. 219 00:11:13,910 --> 00:11:15,180 Aha! Tutaj. 220 00:11:15,180 --> 00:11:18,690 Istnieje kilka różnych powiedzeń konfiguracyjnych w tutaj, 221 00:11:18,690 --> 00:11:21,700 ale jeden szukam jest ta rzecz zwana baza URL, 222 00:11:21,700 --> 00:11:24,570 i domyślnie mam ustawione na Kohana, 223 00:11:24,570 --> 00:11:29,020 ale mam zamiar to zmienić do CS50-Kohana, 224 00:11:29,020 --> 00:11:32,880 i myślę, że powinien to naprawić. 225 00:11:32,880 --> 00:11:34,150 Tak, to świetnie. 226 00:11:34,150 --> 00:11:39,530 Domyślnie, aby zobaczyć, że to działa, to mówi: "Hello World". 227 00:11:39,530 --> 00:11:42,930 Skąd to się wzięło? Jak dostać się do Hello World? 228 00:11:42,930 --> 00:11:47,640 Gdzie dokładnie jest to kod, który faktycznie napisał, że? 229 00:11:47,640 --> 00:11:50,240 Do zrozumienia, że ​​będę wprowadzać tę koncepcję o nazwie routingu. 230 00:11:50,240 --> 00:11:52,590 Prawie wszystkie ramy sieci web mają pojęcie o nazwie trasy, 231 00:11:52,590 --> 00:11:57,230 który jest kawałek oprogramowania, które będzie mapa jakiegoś URL 232 00:11:57,230 --> 00:12:01,550 do pewnego fragmentu kodu w ramach swojej struktury. 233 00:12:01,550 --> 00:12:07,510 Na przykład, jeśli masz jakiś adres URL i udać się do jakiegoś URL jak foo.com / blog / wszystko 234 00:12:07,510 --> 00:12:11,170 to co ramy zrobi - a przynajmniej to, co Kohana zrobi - 235 00:12:11,170 --> 00:12:15,540 jest to będzie znaleźć klasy o nazwie Kontroler blog 236 00:12:15,540 --> 00:12:18,720 i to się dzieje, aby uruchomić funkcję o nazwie działania wszystkich. 237 00:12:18,720 --> 00:12:20,160 Wiem, że mówię o klasie i funkcji, 238 00:12:20,160 --> 00:12:23,860 i wiem, że wy nie objęły klasy i funkcje 239 00:12:23,860 --> 00:12:26,470 jeszcze CS50, ale teraz, 240 00:12:26,470 --> 00:12:29,800 można myśleć o klasach tylko grupy funkcji, 241 00:12:29,800 --> 00:12:32,900 sposób grupowania funkcji razem. 242 00:12:32,900 --> 00:12:37,690 To naprawdę wszystko, co musisz wiedzieć. 243 00:12:37,690 --> 00:12:43,120 >> Teraz, jeśli spojrzymy na nasze struktury folderów, 244 00:12:43,120 --> 00:12:47,110 wewnątrz folderu aplikacji jest inny folder o nazwie klasy, 245 00:12:47,110 --> 00:12:49,200 i inne foldery o nazwie kontrolera i modelu. 246 00:12:49,200 --> 00:12:52,530 Jeśli spojrzeć w folderze sterownika, 247 00:12:52,530 --> 00:12:56,330 widzimy, że istnieje plik o nazwie Witamy, 248 00:12:56,330 --> 00:13:00,370 i można zobaczyć tutaj jest klasa o nazwie Kontroler Witamy, 249 00:13:00,370 --> 00:13:02,340 i tam jest funkcja o nazwie Akcja Główna, 250 00:13:02,340 --> 00:13:06,360 i co robi to ustawia ciało swojej odpowiedzi na Hello World. 251 00:13:06,360 --> 00:13:08,730 To miejsce, gdzie kod jest napisany. 252 00:13:08,730 --> 00:13:11,610 Inne pytanie jest, dobrze, że nie poszedł do 253 00:13:11,610 --> 00:13:13,680 bla, bla, bla, / welcome / index. 254 00:13:13,680 --> 00:13:16,250 Jak się tu znalazłem? 255 00:13:16,250 --> 00:13:20,410 Cóż, to tylko dlatego, 256 00:13:20,410 --> 00:13:22,410 tu na dole pliku uruchamiającego naszego 257 00:13:22,410 --> 00:13:24,550 w którym możemy ustawić nasze drogi 258 00:13:24,550 --> 00:13:26,570 widać, że ustawione są jakieś domyślne dla Ciebie. 259 00:13:26,570 --> 00:13:28,990 Domyślny sterownik jest mile widziane. Domyślną akcją jest indeks. 260 00:13:28,990 --> 00:13:31,600 Dlatego, gdy kładziemy nic tam automatycznie poszedł do kontrolera powitalnej 261 00:13:31,600 --> 00:13:33,940 i akcji index. 262 00:13:33,940 --> 00:13:37,460 >> Wszystko sensu tak daleko? 263 00:13:37,460 --> 00:13:40,850 Teraz możesz zrobić więcej niż tylko iść do kontrolera 264 00:13:40,850 --> 00:13:43,670 i konkretne działania. 265 00:13:43,670 --> 00:13:48,480 Możesz także przekazać w parametrach do kontrolera. 266 00:13:48,480 --> 00:13:56,390 Tylko jako przykład 267 00:13:56,390 --> 00:14:04,070 Mam zamiar dodać kolejne działania w tym kontrolerze pokazać. 268 00:14:04,070 --> 00:14:09,130 Nazwijmy tę akcję Echo, bo to będzie powiedzieć cokolwiek dać, 269 00:14:09,130 --> 00:14:17,510 a więc jestem w zasadzie zamiar chwycić 270 00:14:17,510 --> 00:14:20,960 parametr, który będzie wysłany przeze mnie do programu routingu, 271 00:14:20,960 --> 00:14:24,440 i jak widać tutaj, 272 00:14:24,440 --> 00:14:28,440 ta linia tutaj, można zobaczyć, że 273 00:14:28,440 --> 00:14:31,270 to w zasadzie oznacza, że ​​masz kontroler i masz /, 274 00:14:31,270 --> 00:14:33,480 i masz działanie, i masz inny /, 275 00:14:33,480 --> 00:14:39,140 i że będzie to parametry, a ponieważ mamy tę nazwę ID 276 00:14:39,140 --> 00:14:42,450 w nawiasach kątowych, co oznacza, że ​​mamy do nazywania tego parametru ID. 277 00:14:42,450 --> 00:14:45,490 Później w kodzie kontrolera, jeśli chcę pobrać trzymać tego parametru, 278 00:14:45,490 --> 00:14:51,790 Mogę użyć kodu napisałem, znajdź parametr o nazwie ID. 279 00:14:51,790 --> 00:14:59,290 To, co zrobiłem tutaj, i mam zamiar wrócić i powiedzieć, 280 00:14:59,290 --> 00:15:07,090 "Mówiłeś, że". 281 00:15:07,090 --> 00:15:10,760 A więc teraz, jeśli pójdę na naszej stronie internetowej, 282 00:15:10,760 --> 00:15:19,550 Idę do cs50-kohana/welcome/echo/Helloooo-- 283 00:15:19,550 --> 00:15:21,420 Och, to prawda. 284 00:15:21,420 --> 00:15:23,930 Jest 1 krokiem wyszedłem na zewnątrz. 285 00:15:23,930 --> 00:15:27,020 Jest to część żywej idei kodującej. 286 00:15:27,020 --> 00:15:36,100 >> Tu jest 1 rzecz. Zobaczmy. 287 00:15:36,100 --> 00:15:38,870 Więc zwykle domyślnie z dużo tych aplikacji internetowych 288 00:15:38,870 --> 00:15:42,820 trzeba włączyć tę index.php rzeczy w adresie URL, 289 00:15:42,820 --> 00:15:46,410 bo pomysł jest index.php jest rodzajem punktu wejścia 290 00:15:46,410 --> 00:15:48,250 z aplikacji, ale oczywiście, 291 00:15:48,250 --> 00:15:50,110 to jest rodzaj irytujące mieć. 292 00:15:50,110 --> 00:15:53,790 Nie chcesz mieć index.php pojawia się w adresie URL, 293 00:15:53,790 --> 00:15:56,080 i prawie każdy ramy internetowej z pudełka 294 00:15:56,080 --> 00:15:58,440 ma ten problem index.php, 295 00:15:58,440 --> 00:16:03,370 i tak musisz podjąć pewne działania, aby być w stanie usunąć tego. 296 00:16:03,370 --> 00:16:07,540 I tak w tym przypadku, 297 00:16:07,540 --> 00:16:11,450 to, co mamy zamiar zrobić, to będziemy korzystać z pliku o nazwie. htaccess, 298 00:16:11,450 --> 00:16:13,900 i to jest coś, co jest specyficzne dla serwera WWW Apache, 299 00:16:13,900 --> 00:16:16,290 i może robić takie rzeczy jak przepisać adresy URL 300 00:16:16,290 --> 00:16:19,350 i przekierować adresy i tak dalej, i tak dalej, 301 00:16:19,350 --> 00:16:24,280 i Kohana jest na tyle miły, aby zapewnić szablon. plik htaccess, które możemy wykorzystać. 302 00:16:24,280 --> 00:16:28,300 >> Jak widać, jest tam plik o nazwie example.htaccess, 303 00:16:28,300 --> 00:16:33,410 i mamy zamiar skopiować, że do. htaccess. 304 00:16:33,410 --> 00:16:36,950 Zamierzam otworzyć i edytować ten, 305 00:16:36,950 --> 00:16:40,840 i zasadniczo robi kilka różnych rzeczy. 306 00:16:40,840 --> 00:16:45,320 Klawisz linii, może chcesz spojrzeć na to tutaj. 307 00:16:45,320 --> 00:16:49,840 Chodzi o to, że ten ustanawia zasadę, która mówi, 308 00:16:49,840 --> 00:16:56,400 "Dobrze, cokolwiek wpiszesz, prepend index.php do tego." 309 00:16:56,400 --> 00:16:58,710 Widać, że. 310 00:16:58,710 --> 00:17:00,370 . * Stoi na wszystko, dopasować wszystko, 311 00:17:00,370 --> 00:17:03,300 a następnie drugą część index.php / $ 0, 312 00:17:03,300 --> 00:17:07,410 i $ 0 odnosi się, co zostało dopasowane wcześniej. 313 00:17:07,410 --> 00:17:09,500 Czy to ma sens? 314 00:17:09,500 --> 00:17:12,190 Ale naprawdę kluczem, co chcę zmienić to zmienić tę zasadę przepisywania, 315 00:17:12,190 --> 00:17:14,300 który jest podstawą URL. 316 00:17:14,300 --> 00:17:17,780 To rodzaj zakłada gdzie pracujesz od. 317 00:17:17,780 --> 00:17:22,560 Mam zamiar dodać CS50 Kohana temu 318 00:17:22,560 --> 00:17:26,530 i w ten sposób teraz, jeśli mogę usunąć index.php, 319 00:17:26,530 --> 00:17:32,110 powinien działać, i mam zamiar dodać kilka liczb 320 00:17:32,110 --> 00:17:36,380 , aby pokazać, że rzeczywiście nie działa. 321 00:17:36,380 --> 00:17:38,130 Brzmi dobrze. 322 00:17:38,130 --> 00:17:40,260 >> Wszelkie pytania do tej pory? 323 00:17:40,260 --> 00:17:42,300 [Student] Jak to wiedzieć, aby 123? 324 00:17:42,300 --> 00:17:44,120 Jest to, że argumentem? 325 00:17:44,120 --> 00:17:46,560 Dokładnie. Możesz myśleć o tym, jak argument. 326 00:17:46,560 --> 00:17:52,410 Ale dziwne jest jednak to, że nie sposób go Kohana 327 00:17:52,410 --> 00:17:54,910 Nie jest to dokładnie tak, jak to zrobić argument. 328 00:17:54,910 --> 00:17:56,930 Trzeba złapać to tak. 329 00:17:56,930 --> 00:18:01,030 Musisz chwycić obiekt żądania i poprosić o to, że parametr o nazwie ID, 330 00:18:01,030 --> 00:18:03,240 Identyfikator i nazwa pochodzi od tego pliku uruchamiającego 331 00:18:03,240 --> 00:18:06,990 że pokazałem wcześniej, a nazwa ID było w tych kątowników, 332 00:18:06,990 --> 00:18:11,580 i to, jak można chwycić te parametry. 333 00:18:11,580 --> 00:18:14,010 Niesamowite. 334 00:18:14,010 --> 00:18:17,550 Wszelkie inne pytania? 335 00:18:17,550 --> 00:18:20,500 Tak jak mówiłem, kontrolery, obsługiwać ich logikę aplikacji, 336 00:18:20,500 --> 00:18:22,980 tak, to jest 1 przypadek, w którym można zobaczyć that's - 337 00:18:22,980 --> 00:18:24,830 to jest bardzo proste, ale jest to nadal logiki aplikacji, 338 00:18:24,830 --> 00:18:27,980 Pomysł chwycił parametr i tworzenia nowego łańcucha 339 00:18:27,980 --> 00:18:31,920 który mówi: "Powiedziałeś, bla", a następnie wypluwając że z powrotem do Ciebie. 340 00:18:31,920 --> 00:18:34,030 I ogólnie to, co musisz zrobić, to tworzyć różne kontrolery. 341 00:18:34,030 --> 00:18:36,450 Utworzyć oddzielne sterowniki dla różnych części witryny. 342 00:18:36,450 --> 00:18:38,160 >> Dziś idziemy do bardzo prostej strony internetowej, 343 00:18:38,160 --> 00:18:40,420 i to będzie bardzo proste blogu. 344 00:18:40,420 --> 00:18:43,780 Jedziemy do nowego kontrolera tylko dla stanowisk w blogu. 345 00:18:43,780 --> 00:18:47,060 Ale gdybym miał także dodawać komentarze do blogu, 346 00:18:47,060 --> 00:18:50,140 wtedy prawdopodobnie chcesz, aby nowy kontroler do tych uwag. 347 00:18:50,140 --> 00:18:53,380 Gdybym chciał, aby dodać użytkowników, to pewnie dodać nowy kontroler dla tych użytkowników, 348 00:18:53,380 --> 00:18:57,000 i ogólnie, chodzi o to, że gdy masz nowy model, 349 00:18:57,000 --> 00:18:59,630 Nowy obiekt danych, który ma się do czynienia, 350 00:18:59,630 --> 00:19:02,970 masz jednego kontrolera na tym obiekcie danych. 351 00:19:02,970 --> 00:19:04,370 Dziś mamy tylko zamiar pracować z 1 obiektu danych, 352 00:19:04,370 --> 00:19:06,250 i że będzie postów, 353 00:19:06,250 --> 00:19:08,710 a także można myśleć obiektów danych jako odpowiadające tabele. 354 00:19:08,710 --> 00:19:12,160 Generalnie każda tabela odpowiada 1 typ obiektu danych, 355 00:19:12,160 --> 00:19:15,160 tak, będzie musiał po tabeli 1 post modelu, 356 00:19:15,160 --> 00:19:18,230 który będzie miał 1 kontroler postu odpowiadający, 357 00:19:18,230 --> 00:19:22,190 oraz samo uwagi, sama dla użytkowników, i tak dalej, i tak dalej. 358 00:19:22,190 --> 00:19:24,070 I to jest ogólna zasada. 359 00:19:24,070 --> 00:19:27,460 Nie będą szczególne przypadki, w których może się różnić od tego, 360 00:19:27,460 --> 00:19:29,300 ale 90% czasu to, co masz zamiar robić, 361 00:19:29,300 --> 00:19:32,810 i pokażę ci, że to, co będziemy dziś robić. 362 00:19:32,810 --> 00:19:35,490 1 więcej pojęcie, zanim zagłębimy powrotem do kodu, 363 00:19:35,490 --> 00:19:37,710 ten pomysł obiektu relacyjnego mapowania. 364 00:19:37,710 --> 00:19:41,200 >> Wy już zrobił pset tworzenie stron internetowych, 365 00:19:41,200 --> 00:19:43,820 i widziałem, że można zrobić zapytanie SQL, 366 00:19:43,820 --> 00:19:46,510 i co wraca do ciebie są wiersze. 367 00:19:46,510 --> 00:19:50,040 Masz te wiersze, a wskaźnik ich pośrednictwem nazwy, 368 00:19:50,040 --> 00:19:55,480 nazwa kolumny i stołu 369 00:19:55,480 --> 00:19:57,630 i to, w jaki sposób z nim pracować, 370 00:19:57,630 --> 00:19:59,290 i może być nieco kłopotliwe. 371 00:19:59,290 --> 00:20:01,810 Ale co więcej, jeśli masz relacje w bazie danych, 372 00:20:01,810 --> 00:20:05,280 jak na przykład, jeśli mam komentarze i posty, 373 00:20:05,280 --> 00:20:11,240 to może chcę złapać stanowiska nadrzędnego komentarza. 374 00:20:11,240 --> 00:20:14,350 Jeśli mogę użyć tylko wierszy w SQL, a następnie wszystko, co mogę dostać jest ID 375 00:20:14,350 --> 00:20:19,310 słupka dominującej i nie samą wiadomość. 376 00:20:19,310 --> 00:20:21,680 Ale kiedy jesteśmy kodowania, co tak naprawdę chcę, to rzeczywiście chwycić 377 00:20:21,680 --> 00:20:23,550  rodzic zakładać się czasami. 378 00:20:23,550 --> 00:20:25,730 , Co czyni obiekt jest mapowanie relacyjnych 379 00:20:25,730 --> 00:20:29,480 Wystarczy wyniki kwerendy bazy danych 380 00:20:29,480 --> 00:20:32,420 i umieszcza je w obiekty dla Ciebie, które są o wiele ładniejsze pracować 381 00:20:32,420 --> 00:20:34,770 niż zwykłych tablic i wierszy. 382 00:20:34,770 --> 00:20:37,550 >> Na przykład teraz, gdy mam komentarz może, 383 00:20:37,550 --> 00:20:40,900 i chcę, aby pobrać jego rodzica stanowisko, 384 00:20:40,900 --> 00:20:43,440 i nie może komentować strzałki stanowisko, 385 00:20:43,440 --> 00:20:45,230 to będzie naprawdę mi obiekt wiadomości 386 00:20:45,230 --> 00:20:47,940 odpowiadająca faktycznemu postu dominującej, a nie tylko niektóre ID, 387 00:20:47,940 --> 00:20:52,210 które chciałbym inaczej użyć i dokonać innego zapytania SQL, aby pobrać w słupek, 388 00:20:52,210 --> 00:20:57,430 który jest kłopotliwy i niepotrzebne. 389 00:20:57,430 --> 00:21:01,840 Co więcej, przez odwzorowywanie wszystkie te wiersze danych w obiektach 390 00:21:01,840 --> 00:21:03,760 można również dołączyć więcej funkcji do obiektów, 391 00:21:03,760 --> 00:21:09,700 tak, na przykład, rozmawiałem o tym, jak zajęcia są zasadniczo ugrupowaniami funkcji. 392 00:21:09,700 --> 00:21:11,620 Można myśleć o tym w ten sposób. 393 00:21:11,620 --> 00:21:15,290 Na przykład, może mam ten post obiekt, 394 00:21:15,290 --> 00:21:17,830 a może chciałbym mieć jakieś funkcje z nim związane 395 00:21:17,830 --> 00:21:20,300 mówi mi, że w zasadzie to napisał niedawno był? 396 00:21:20,300 --> 00:21:23,570 Został wysłany w ciągu ostatniego tygodnia, prawda czy fałsz? 397 00:21:23,570 --> 00:21:27,320 I to jest funkcja można dołączyć na tym obiekcie, 398 00:21:27,320 --> 00:21:31,300 i jest to bardzo wygodne, aby mieć go w tym samym miejscu, 399 00:21:31,300 --> 00:21:33,820 i istnieje wiele różnych funkcji, można tworzyć 400 00:21:33,820 --> 00:21:37,990 dla tych obiektów, i to naprawdę miło być w stanie dołączyć go do klasy, 401 00:21:37,990 --> 00:21:41,700 do obiektu, natomiast jeśli tylko miał wierszy pochodzących z bazy danych, 402 00:21:41,700 --> 00:21:43,790 to naprawdę nie można dołączyć żadnej funkcji do tego. 403 00:21:43,790 --> 00:21:47,850 Jest to dosłownie tylko dane. 404 00:21:47,850 --> 00:21:50,550 Wszelkie pytania na temat tego w ogóle? 405 00:21:50,550 --> 00:21:52,710 ORMs są bardzo częste tworzenie stron internetowych, 406 00:21:52,710 --> 00:21:56,330 i istnieje wiele różnych typów ORMs, 407 00:21:56,330 --> 00:21:58,450 i Kohana ma własny ORM. 408 00:21:58,450 --> 00:22:05,050 Jest to bardzo proste, ale można poczuć, jak to wygląda. 409 00:22:05,050 --> 00:22:08,780 >> Stwórzmy model dla naszych blogach, 410 00:22:08,780 --> 00:22:12,350 i oczywiście pierwsza rzecz, którą musisz zrobić, to stworzyć rzeczywistą tabeli 411 00:22:12,350 --> 00:22:16,680 w naszej bazie danych, aby właściwie przechowywać nasze dane dla tych stanowisk. 412 00:22:16,680 --> 00:22:19,260 Pierwszą rzeczą, jaką mam zamiar zrobić, to udać się do phpMyAdmin. 413 00:22:19,260 --> 00:22:21,410 Czy chłopaki używane phpMyAdmin przed? 414 00:22:21,410 --> 00:22:23,400 Ok, super, tak, wy już wiecie, co to jest, 415 00:22:23,400 --> 00:22:32,200 i mam zamiar utworzyć nową tabelę o nazwie Kohana postów, 416 00:22:32,200 --> 00:22:37,820 i to będzie bardzo proste. 417 00:22:37,820 --> 00:22:40,190 Muszę ponowne zalogowanie 418 00:23:02,620 --> 00:23:04,640 Wszystko będziemy robić dziś mają autora i ciało, 419 00:23:04,640 --> 00:23:11,930 just keep it simple. 420 00:23:11,930 --> 00:23:15,620 Mam zamiar stworzyć tę tabelę, 421 00:23:15,620 --> 00:23:19,620 i teraz musimy tylko tabelę przedstawiającą nasze posty 422 00:23:19,620 --> 00:23:23,370 z 2 polami dla naszego autora i naszego ciała. 423 00:23:23,370 --> 00:23:26,290 Inna sprawa, mam zamiar teraz zrobić, to 424 00:23:26,290 --> 00:23:29,820 skonfigurować mojej aplikacji sieci web, więc wie, jak połączyć się z bazą danych, 425 00:23:29,820 --> 00:23:31,950 i to znowu jest coś, co musisz zrobić z wszystkich aplikacji internetowych. 426 00:23:31,950 --> 00:23:34,790 Trzeba powiedzieć, że nazwę użytkownika i hasło 427 00:23:34,790 --> 00:23:36,990 i nazwa bazy danych, i tak dalej i tak dalej 428 00:23:36,990 --> 00:23:40,000 aby dowiedzieć się, jak właściwie łączyć się z bazą danych. 429 00:23:40,000 --> 00:23:58,710 >> W Kohana, mamy coś, co nazywa moduł bazy danych, 430 00:23:58,710 --> 00:24:02,690 w folderze konfiguracyjnym mamy ten folder o nazwie bazy danych, 431 00:24:02,690 --> 00:24:07,330 i jak widać, istnieje kilka ustawień, które należy ustawić tutaj 432 00:24:07,330 --> 00:24:09,860 powiedzieć to, co jest nazwa użytkownika i hasło 433 00:24:09,860 --> 00:24:13,110 do bazy danych, więc można rzeczywiście do niej podłączyć. 434 00:24:13,110 --> 00:24:15,010 A ponieważ nie chcę, żebyście naprawdę wiedzą 435 00:24:15,010 --> 00:24:17,190 Nazwa użytkownika i hasło z mojej bazy danych, 436 00:24:17,190 --> 00:24:23,840 Mam plik w którym mam już ustawione to wszystko, i mam zamiar skopiować i wkleić go. 437 00:24:33,080 --> 00:24:36,870 Niesamowite. 438 00:24:36,870 --> 00:24:39,880 Ok. Myślę, że wszystko jest konfiguracja muszę zrobić, 439 00:24:39,880 --> 00:24:41,070 ale zobaczymy. 440 00:24:41,070 --> 00:24:43,720 Będziemy pracować w nim, a jeśli coś wywala, 441 00:24:43,720 --> 00:24:47,490 wtedy będziemy go naprawić. 442 00:24:47,490 --> 00:24:51,830 Teraz to, co mam zamiar zrobić, to mam zamiar stworzyć nowy kontroler. 443 00:24:51,830 --> 00:24:53,190 Albo faktycznie, przepraszam. 444 00:24:53,190 --> 00:24:55,080 Najpierw trzeba utworzyć nowy model. 445 00:24:55,080 --> 00:25:01,620 Będę tworzyć nowy model o nazwie Post.php, 446 00:25:01,620 --> 00:25:12,440 i to, co zamierzamy zrobić, to będziemy go nazywać klasy Model_Post. 447 00:25:12,440 --> 00:25:15,390 Trochę podświetlanie składni na, 448 00:25:15,390 --> 00:25:19,750 i tak, gdy mówię, "rozciąga ORM, że" w zasadzie 449 00:25:19,750 --> 00:25:21,210 kilka programowania obiektowego, 450 00:25:21,210 --> 00:25:23,340 niestety chłopaki nie nauczyli w CS50 jeszcze, 451 00:25:23,340 --> 00:25:25,290 , ale jest to dość łatwe do pobrania. 452 00:25:25,290 --> 00:25:27,950 Daje mi to wszystko dodatkową funkcjonalność, która pochodzi z tego pakietu ORM, 453 00:25:27,950 --> 00:25:31,120 i tak mam kilka dodatkowych funkcji i etażerka za darmo, 454 00:25:31,120 --> 00:25:34,810 które można zobaczyć trochę w drugim. 455 00:25:34,810 --> 00:25:37,670 >> Teraz właściwie wszystko, co musisz zrobić, to stworzyć tę klasę. 456 00:25:37,670 --> 00:25:39,160 I nawet nie trzeba robić żadnych funkcji ani nic, 457 00:25:39,160 --> 00:25:41,770 ale utworzeniu klasy, która reprezentuje tabelę, 458 00:25:41,770 --> 00:25:44,140 a ponieważ mam rozszerzony tej klasy ORM, 459 00:25:44,140 --> 00:25:51,080 Mam kilka rzeczy za darmo, więc na razie nie ma nic więcej do ustawienia w górę. 460 00:25:51,080 --> 00:25:53,530 A teraz to, co mam zamiar zrobić, to mam zamiar stworzyć nowy kontroler, 461 00:25:53,530 --> 00:25:58,480 które mam zamiar wymienić blog.php, 462 00:25:58,480 --> 00:26:04,350 i mam zamiar skopiować sterownika powitalnej 463 00:26:04,350 --> 00:26:11,950 więc nie trzeba ponownie wpisywać pewne rzeczy, 464 00:26:11,950 --> 00:26:20,720 i teraz muszę zmienić nazwę tego. 465 00:26:20,720 --> 00:26:24,710 Teraz to, co mam zamiar zrobić, aby przetestować, aby upewnić się, że wszystko pracuje, 466 00:26:24,710 --> 00:26:27,820 Zamierzam złapać pierwszy post z mojej bazy danych 467 00:26:27,820 --> 00:26:32,680 i wydrukować treści postu na ekranie. 468 00:26:32,680 --> 00:26:37,920 Aby zrobić to, co mam zamiar zrobić pierwszy mam zamiar zapisać posty 469 00:26:37,920 --> 00:26:48,770 do zmiennej tak, co zamierzamy zrobić, to - 470 00:26:48,770 --> 00:26:52,090 w Kohana, co musisz zrobić, to złapać obiekt wiadomości 471 00:26:52,090 --> 00:26:55,380 to trochę kłopotliwe, ale trzeba zrobić coś, co nazywa ORM :: factory, 472 00:26:55,380 --> 00:26:57,750 a następnie przechodzą w nazwie modelu chcesz, 473 00:26:57,750 --> 00:27:00,490 i zwraca obiekt ORM, który reprezentuje ten model. 474 00:27:00,490 --> 00:27:04,860 A potem, jak już mówiłem, kiedy rozszerzyć obiekt ORM, 475 00:27:04,860 --> 00:27:07,320 mamy wszystkie te metody za darmo, więc na przykład, 476 00:27:07,320 --> 00:27:09,200 mamy to nowa funkcja o nazwie "Znajdź wszystkie" 477 00:27:09,200 --> 00:27:12,160 który automatycznie powraca każdego posta w bazie danych, 478 00:27:12,160 --> 00:27:14,850 co jest dość wygodne. 479 00:27:14,850 --> 00:27:17,480 >> I teraz w ciele mam zamiar wrócić 480 00:27:17,480 --> 00:27:24,860 pierwszy post i zwraca jego ciało. 481 00:27:24,860 --> 00:27:27,930 I oczywiście, trzeba utworzyć stanowisko, 482 00:27:27,930 --> 00:27:31,880 więc niech wstawić nowy post. 483 00:27:31,880 --> 00:27:37,870 Powiem, "Brandon, mój pierwszy wpis." 484 00:27:37,870 --> 00:27:40,010 Niesamowite. 485 00:27:40,010 --> 00:27:45,910 A teraz mamy zamiar udać się do blogów 486 00:27:45,910 --> 00:27:50,960 i jeśli wszystko dobrze działa - och, to znowu inna rzecz, głupi zgody plik. 487 00:27:50,960 --> 00:27:56,090 Trzymaj się 1 sekundę. To trochę absurdalne. 488 00:28:06,700 --> 00:28:08,490 Nie idziemy. Ok. 489 00:28:08,490 --> 00:28:10,040 Naprawiłem ten problem uprawnień. 490 00:28:10,040 --> 00:28:12,040 To próbuje stworzyć kilka plików i trochę dziennik, 491 00:28:12,040 --> 00:28:15,400 i uprawnienia, ponownie, nie były ustawione prawidłowo, więc zrobiłem to 492 00:28:15,400 --> 00:28:18,320 więc te pliki były zapisywalne i wykonywalne 493 00:28:18,320 --> 00:28:21,090 więc może rzeczywiście zaloguj się do rzeczy. 494 00:28:21,090 --> 00:28:24,220 Teraz daje mi kolejny powiedzenie wyjątek klasy ORM, "nie znaleziono" 495 00:28:24,220 --> 00:28:26,960 a to dlatego, że zapomniał kolejny krok. 496 00:28:26,960 --> 00:28:37,010 Szkoda. 497 00:28:37,010 --> 00:28:40,270 W pliku folderów bootstrap, moduły te nie są tutaj, 498 00:28:40,270 --> 00:28:42,480 które można włączyć lub wyłączyć. 499 00:28:42,480 --> 00:28:44,340 Są to kilka różnych funkcji, które można wybrać, aby użyć 500 00:28:44,340 --> 00:28:46,180 w ciągu Kohana, który jest swego rodzaju miłe. 501 00:28:46,180 --> 00:28:49,090 >> Na przykład mają one moduł uwierzytelniania 502 00:28:49,090 --> 00:28:51,170 które można użyć do uwierzytelniania użytkowników. 503 00:28:51,170 --> 00:28:53,390 Mają moduł buforowania, jeśli chcesz wprowadzić 504 00:28:53,390 --> 00:28:57,870 jakieś buforowanie powrotem koniec, aby szybciej działa aplikacja i etażerka. 505 00:28:57,870 --> 00:29:02,140 Musimy włączyć bazę danych i moduł ORM, 506 00:29:02,140 --> 00:29:04,280 bo jak powiedziałem, jesteśmy przy użyciu bazy danych, oczywiście, 507 00:29:04,280 --> 00:29:08,200 i trzeba też włączyć moduł ORM, 508 00:29:08,200 --> 00:29:12,220 bo chcielibyśmy mieć dodatkowe funkcje, które jest miło mieć. 509 00:29:12,220 --> 00:29:14,240 Wszystko, co musisz zrobić, to odkomentuj te 2 linie, 510 00:29:14,240 --> 00:29:18,760 i teraz, jeśli ja odświeżyć, to dał mi kolejny błąd. 511 00:29:18,760 --> 00:29:22,100 Mówi: "Nie znaleziono klasy Model_Post." 512 00:29:22,100 --> 00:29:30,210 Teraz jest dobry problem mieć. 513 00:29:30,210 --> 00:29:37,660 Zobaczmy. 514 00:29:37,660 --> 00:29:42,200 Ich upublicznienie. 515 00:29:42,200 --> 00:29:46,450 Nie Czekaj. 516 00:30:11,610 --> 00:30:13,160 Och, kochanie. 517 00:30:13,160 --> 00:30:18,590 Nie wiem, dlaczego to nie jest w stanie stwierdzić, że. 518 00:30:18,590 --> 00:30:21,030 To jest naprawdę dziwne. 519 00:30:21,030 --> 00:30:23,820 Mam tej klasy tutaj. 520 00:30:23,820 --> 00:30:28,650 Chyba będę musiał - oh. 521 00:30:28,650 --> 00:30:32,010 Jestem tak głupi. Zapomniałem dodać tag PHP. 522 00:30:32,010 --> 00:30:34,670 Dlatego. 523 00:30:34,670 --> 00:30:41,260 Teraz muszę cofnąć, że 1 zmiana właśnie zrobiłem. 524 00:30:41,260 --> 00:30:44,270 >> Ok. Nie idziemy. 525 00:30:44,270 --> 00:30:47,500 To było naprawdę głupie. Nie miałem tag PHP otwarcia. 526 00:30:47,500 --> 00:30:49,900 Ale jak widać, teraz działa poprawnie, prawda? 527 00:30:49,900 --> 00:30:51,240 Mamy 1 słupek. 528 00:30:51,240 --> 00:30:54,730 Złapaliśmy pierwszy post, a teraz wydrukować swoje ciało. 529 00:30:54,730 --> 00:30:58,010 Świetnie. Fantastyczne. 530 00:30:58,010 --> 00:31:01,470 Wszelkie pytania do tej pory? 531 00:31:01,470 --> 00:31:04,100 Nope? Masz pytanie? 532 00:31:04,100 --> 00:31:08,340 Ok, więc po prostu stworzony model postu, bardzo podstawowe, 533 00:31:08,340 --> 00:31:10,930 i mamy zamiar dodać kilka funkcji w przyszłości. 534 00:31:10,930 --> 00:31:13,600 Możemy dodać walidacje i filtrowanie. 535 00:31:13,600 --> 00:31:15,650 Walidacja to jedna z rzeczy, 536 00:31:15,650 --> 00:31:18,150 że ramy rozwiązania dla Ciebie bardzo, bardzo dobrze, 537 00:31:18,150 --> 00:31:21,310 i nie sądzę, chłopaki mieli to zrobić dla swojej CS50 pset, 538 00:31:21,310 --> 00:31:24,000 ale jeśli nie tworzenie stron internetowych dla końcowego projektu, 539 00:31:24,000 --> 00:31:26,280 najprawdopodobniej będzie chciał zrobić jakieś walidacji, 540 00:31:26,280 --> 00:31:28,290 jak nie mając puste nazwy użytkowników, 541 00:31:28,290 --> 00:31:31,950 może o hasło z przynajmniej niektórych długości, takie rzeczy. 542 00:31:31,950 --> 00:31:34,750 I to jest naprawdę trudne w realizacji tych rzeczy przez siebie, 543 00:31:34,750 --> 00:31:37,390 i prawie każdy ramy internetowa zrobi to za Ciebie 544 00:31:37,390 --> 00:31:41,140 i pozwala to zrobić w bardzo czysty sposób. 545 00:31:41,140 --> 00:31:44,340 I model, w którym na ogół wyrażają te reguły sprawdzania poprawności, 546 00:31:44,340 --> 00:31:48,790 ponieważ jest sprawdzanie, czy model jest poprawny, czy nie. 547 00:31:48,790 --> 00:31:51,350 >> Ale teraz mamy zamiar umieścić, że dopiero później, 548 00:31:51,350 --> 00:31:53,520 a teraz idziemy do pracy w innej części, 549 00:31:53,520 --> 00:31:55,400 i mamy zamiar spróbować i nowy widok 550 00:31:55,400 --> 00:31:59,580 że zawiera wszystkie posty. 551 00:31:59,580 --> 00:32:02,490 Etapy tworzenia nowego działania na aukcji wszystkie posty 552 00:32:02,490 --> 00:32:04,810 jest złapać listę wszystkich stanowisk 553 00:32:04,810 --> 00:32:11,990 a następnie uczynić listę wszystkich postów poprzez widzenia. 554 00:32:11,990 --> 00:32:16,420 Tutaj, na szczęście, już złapał wszystkie posty 555 00:32:16,420 --> 00:32:20,310 za pomocą tej pierwszej linii, znaleźć wszystkie funkcje, 556 00:32:20,310 --> 00:32:22,520 a teraz co mamy zamiar zrobić to tak daleko 557 00:32:22,520 --> 00:32:25,350 Byłem bezpośrednio ustawiając ciało odpowiedzi 558 00:32:25,350 --> 00:32:29,090 przekazując ciąg, ale teraz chcę użyć widoku, 559 00:32:29,090 --> 00:32:31,870 a różnica między myślą i właśnie to robi 560 00:32:31,870 --> 00:32:35,330 jest z myślą mogę mieć ładny, duży szablon HTML, 561 00:32:35,330 --> 00:32:37,710 i co mogę zrobić, to przekazać je pewnych zmiennych 562 00:32:37,710 --> 00:32:42,200 a następnie automatycznie się wypełnić swój widok szablonu 563 00:32:42,200 --> 00:32:44,690 za pomocą tych zmiennych. 564 00:32:44,690 --> 00:32:50,780 Co zrobię, to będę utworzyć nowy widok, 565 00:32:50,780 --> 00:32:55,940 a ja nazwać widok coś w stylu "blog / index" 566 00:32:55,940 --> 00:33:08,480 i mam zamiar po prostu powiązać to - och, co piszę? 567 00:33:08,480 --> 00:33:12,910 Mój mózg jest gdzieś indziej. 568 00:33:12,910 --> 00:33:16,600 Idę do powiązać posty zmiennych do widoku, 569 00:33:16,600 --> 00:33:19,950 więc w ten sposób, że widok ma dostęp do tej zmiennej postu. 570 00:33:19,950 --> 00:33:26,140 >> A więc teraz trzeba utworzyć ten widok, 571 00:33:26,140 --> 00:33:28,500 więc tutaj mamy ten folder o nazwie "poglądy" 572 00:33:28,500 --> 00:33:32,150 i po raz pierwszy, mam zamiar utworzyć nowy folder o nazwie "pod tym blogu." 573 00:33:32,150 --> 00:33:35,810 To jest ładne. W ten sposób możemy mieć ładny hierarchię dla naszych poglądów. 574 00:33:35,810 --> 00:33:43,910 A potem mam zamiar utworzyć inny plik nie nazwie "index.php". 575 00:33:43,910 --> 00:33:45,780 Niesamowite. 576 00:33:45,780 --> 00:33:52,930 Rzeczywiście, niech mają je zarówno tutaj. 577 00:33:52,930 --> 00:33:56,760 Dokonanie plik widoku jest chyba najprostszym częścią tego wszystkiego, 578 00:33:56,760 --> 00:33:59,090 i to chyba wszystko już jesteś zaznajomiony. 579 00:33:59,090 --> 00:34:01,240 Mamy zamiar zrobić coś naprawdę prostego, 580 00:34:01,240 --> 00:34:05,360 zacząć, mówiąc: "Moja lista blogu." 581 00:34:05,360 --> 00:34:14,860 Następnie możemy przejść, 582 00:34:14,860 --> 00:34:17,920 i możemy iteracji tablicy posty, 583 00:34:17,920 --> 00:34:21,760 chwycić każdego posta i powiedzieć coś w stylu - 584 00:34:21,760 --> 00:34:25,290 może dodać linię 585 00:34:25,290 --> 00:34:42,460 a następnie wydrukować autora i ciało. 586 00:34:42,460 --> 00:34:44,480 Że sens tej pory? 587 00:34:44,480 --> 00:34:50,870 I zobaczymy, czy to działa. 588 00:34:50,870 --> 00:34:53,489 Nic się nie stało. 589 00:34:53,489 --> 00:34:55,090 Zastanawiam się, dlaczego. 590 00:34:55,090 --> 00:34:58,760 Och, brakowało mi 1 krok. Bardzo głupie z mojej strony. 591 00:34:58,760 --> 00:35:01,640 I stworzył widok, ale nie ustawić widok za odpowiedzi, 592 00:35:01,640 --> 00:35:03,190 więc trzeba zrobić 1 rzecz. 593 00:35:03,190 --> 00:35:12,610 Musisz to zrobić "to ciało odpowiedzi" i ustawić go jako widok. 594 00:35:12,610 --> 00:35:14,760 Nie idziemy. 595 00:35:14,760 --> 00:35:17,200 Mamy nagłówek, a następnie mamy post, 596 00:35:17,200 --> 00:35:20,500 i tylko dla zabawy, niech wstawić inne stanowisko 597 00:35:20,500 --> 00:35:23,390 więc możemy zobaczyć listę. 598 00:35:31,800 --> 00:35:36,650 I wstawić te 2 posty, 599 00:35:36,650 --> 00:35:39,500 i teraz, jeśli odświeżyć stronę, 600 00:35:39,500 --> 00:35:42,060 widzimy te wszystkie posty tutaj. 601 00:35:42,060 --> 00:35:44,250 >> Czy to ma sens tak daleko? 602 00:35:44,250 --> 00:35:46,400 Tak, pytanie? Och, w porządku. 603 00:35:46,400 --> 00:35:51,440 Jak widać, udało nam się oddzielić te wszystkie kody z 604 00:35:51,440 --> 00:35:53,920 na różne sekcje, a następnie można zobaczyć, że to najbardziej oczywiste z kodem widzenia. 605 00:35:53,920 --> 00:35:57,810 Plik ten tutaj, który reprezentuje pogląd, 606 00:35:57,810 --> 00:36:01,220 że dba tylko o reprezentowanie danych, wyświetlania danych. 607 00:36:01,220 --> 00:36:04,310 One przekazywane jakieś dane, a wszystko, co robi jest po prostu pokazać je do Ciebie. 608 00:36:04,310 --> 00:36:07,660 We wszystkich innych części kodu, nie będzie musiał martwić się o nic z tego, 609 00:36:07,660 --> 00:36:10,480 i podobnie, kod widok nie musisz się martwić o nic 610 00:36:10,480 --> 00:36:13,390 sposób uzyskiwania dostępu do bazy danych, i tak dalej, i tak dalej, 611 00:36:13,390 --> 00:36:19,950 który jest naprawdę dobry i sprawia, że ​​o wiele więcej kodu w utrzymaniu. 612 00:36:19,950 --> 00:36:23,390 Tak jak powiedziałem, widoki, są dynamiczne, które 613 00:36:23,390 --> 00:36:27,080 to jest 1 plik, ale to generuje różne widoki 614 00:36:27,080 --> 00:36:29,940 na podstawie zmiennych faktycznie przechodzą w, 615 00:36:29,940 --> 00:36:32,370 a ponadto, istnieje wiele różnych funkcji pomocniczych 616 00:36:32,370 --> 00:36:34,230 że można użyć, aby pomóc Ci napisać kod szybciej, 617 00:36:34,230 --> 00:36:36,320 które pokażę, w ciągu sekundy. 618 00:36:36,320 --> 00:36:38,050 Tak. 619 00:36:38,050 --> 00:36:42,490 >> [Student] Więc to $ 0 kontroler, prawda? 620 00:36:42,490 --> 00:36:44,000 Że druga sprawa. 621 00:36:44,000 --> 00:36:46,090 Pytanie jest równa 0 zł kontroler? 622 00:36:46,090 --> 00:36:48,610 0 dolarów jest zmienna stworzyłem tutaj. 623 00:36:48,610 --> 00:36:51,320 I stworzył pierwszy widok. I przypisany do jakiejś zmiennej. 624 00:36:51,320 --> 00:36:54,960 Wtedy zdałem go w tej funkcji, należy ustawić go jako ciało odpowiedzi. 625 00:36:54,960 --> 00:36:57,260 Czy to ma sens? 626 00:36:57,260 --> 00:37:02,200 [Student] Więc jest widok :: fabryka, to zobacz jak klasy 627 00:37:02,200 --> 00:37:06,610 lub biblioteki [niesłyszalne] Funkcja fabryka? 628 00:37:06,610 --> 00:37:10,640 Pytanie o funkcji Widok :: fabryki, 629 00:37:10,640 --> 00:37:14,020 iw zasadzie jest to trochę więcej programowania obiektowego w istocie. 630 00:37:14,020 --> 00:37:18,000 Zobacz widok jest klasa, a to ma metodę o nazwie "Fabryka" 631 00:37:18,000 --> 00:37:24,170 i to jest sposób, aby pobrać obiekt, który jest nazwany "blog / index." 632 00:37:24,170 --> 00:37:27,140 I to jest trochę więcej programowania obiektowego rzeczy 633 00:37:27,140 --> 00:37:33,010 , że nie mam zamiaru iść do tego zbyt wiele. 634 00:37:33,010 --> 00:37:36,400 Teraz oczywiście, chcemy tworzyć nowe wiadomości, 635 00:37:36,400 --> 00:37:38,790 ale nie chcemy, aby zrobić to poprzez bazy danych, 636 00:37:38,790 --> 00:37:41,280 więc mamy zamiar utworzyć nową akcję za stworzenie nowego stanowiska, 637 00:37:41,280 --> 00:37:43,050 i tam jest wiele rzeczy musimy zrobić. 638 00:37:43,050 --> 00:37:45,910 >> Pierwsza rzecz, którą zamierzamy zrobić - Zajmijmy tych rzeczy jedna po drugiej. 639 00:37:45,910 --> 00:37:48,320 Pierwszą rzeczą, którą możemy zrobić, to musimy utworzyć formularz 640 00:37:48,320 --> 00:37:54,460 do wkładania nowy post, 641 00:37:54,460 --> 00:37:57,360 ale mam też zamiar dodać pierwszą nową akcję, 642 00:37:57,360 --> 00:38:01,050 więc dodanie nowego działania jest równie łatwe, jak 643 00:38:01,050 --> 00:38:03,490 dodanie nowej funkcji do kontrolera, 644 00:38:03,490 --> 00:38:13,710 i teraz mam zamiar zrobić coś bardzo podstawowego, 645 00:38:13,710 --> 00:38:20,850 wystarczy chwycić ten pogląd i pisać, po prostu wyświetlić go dla Ciebie. 646 00:38:20,850 --> 00:38:26,220 I to teraz mam zamiar utworzyć nowy plik widoku, 647 00:38:26,220 --> 00:38:33,690 i mam zamiar zacząć pisać pewne rzeczy. 648 00:38:33,690 --> 00:38:36,540 Co jest ładne o Kohana jest, że zapewniają one wiele różnych funkcji pomocniczych 649 00:38:36,540 --> 00:38:38,790 , aby łatwiej napisać widoku kodu, 650 00:38:38,790 --> 00:38:41,970 i 1 z tych funkcji pomocniczych lub modułów pomocniczych 651 00:38:41,970 --> 00:38:45,860 jest wokół piśmie formy. 652 00:38:45,860 --> 00:38:49,460 Do pisania formy, tak naprawdę nie trzeba pisać kodu HTML bezpośrednio sobie. 653 00:38:49,460 --> 00:38:51,100 Macie napisane formularzy HTML. 654 00:38:51,100 --> 00:38:54,850 Wiesz, jak to może być naprawdę bolesne i kłopotliwe do napisania formy. 655 00:38:54,850 --> 00:38:59,970 To nie jest zabawa, więc na szczęście, 656 00:38:59,970 --> 00:39:04,860 można w zasadzie napisać Kohana jest za pomocą formularza 657 00:39:04,860 --> 00:39:11,190 utworzenia funkcji pomocniczych zrobić to za nas. 658 00:39:11,190 --> 00:39:17,340 Zamierzamy w zasadzie mają pola na każdej rzeczy mamy, 659 00:39:17,340 --> 00:39:23,160 więc jeden dla autorów i jeden dla organów. 660 00:39:23,160 --> 00:39:27,090 Zamierzamy mieć etykietę, a my będziemy mieć wejście. 661 00:39:37,450 --> 00:39:41,360 >> I wtedy wreszcie będziemy mieć przedstawienie. 662 00:39:49,350 --> 00:39:52,230 I jak widać, to jest znacznie czystsze napisać 663 00:39:52,230 --> 00:39:58,150 niż cały ten bałagan HTML, który jest miłe. 664 00:39:58,150 --> 00:40:00,930 To prawda, że ​​istnieją inne ramy sieci web, które mają jeszcze czystsze niż to, 665 00:40:00,930 --> 00:40:04,440 ale przynajmniej jest to lepsze niż pisanie kodu HTML pod. 666 00:40:09,400 --> 00:40:11,130 Niesamowite, więc to, co widzisz. 667 00:40:11,130 --> 00:40:13,530 To trochę brudny, 668 00:40:13,530 --> 00:40:19,720 więc mam zamiar dodać tam podział wiersza 669 00:40:19,720 --> 00:40:21,180 aby to wyglądać trochę ładniej. 670 00:40:21,180 --> 00:40:23,330 Cóż, oczywiście, nadal wygląda naprawdę, naprawdę zły, ale my po prostu koncentruje 671 00:40:23,330 --> 00:40:26,050 na funkcjonalność do teraz, a nie na estetyce. 672 00:40:26,050 --> 00:40:28,010 Nie ma czasu, aby zrobić wszystko. 673 00:40:28,010 --> 00:40:30,600 I jak widać, teraz mamy bardzo podstawową formę, 674 00:40:30,600 --> 00:40:32,080 co jest miłe. 675 00:40:32,080 --> 00:40:36,730 Ten kod powiedziałbym jest czystsze niż próbuje napisać HTML tworzą się, 676 00:40:36,730 --> 00:40:40,290 tak, to jest miły. 677 00:40:40,290 --> 00:40:42,030 Co dalej? 678 00:40:42,030 --> 00:40:49,260 Teraz musimy robić rzeczy, z akcją. 679 00:40:49,260 --> 00:40:51,240 Zwykle, gdy piszesz formularzy HTML, 680 00:40:51,240 --> 00:40:54,070 trzeba powiedzieć to, gdzie to będzie przesłać formularz do. 681 00:40:54,070 --> 00:40:56,050 Domyślnie w większości ram internetowych, 682 00:40:56,050 --> 00:40:58,200 twierdzi ona do tej samej zawartości, więc chodzi o to, 683 00:40:58,200 --> 00:41:01,310 jeśli wysłać żądanie GET do / blog / nowe, 684 00:41:01,310 --> 00:41:03,240 powinno wyświetlić Ci formularz, 685 00:41:03,240 --> 00:41:06,810 ale jeśli wysłać żądanie POST do / blog / nowe z danymi, 686 00:41:06,810 --> 00:41:10,000 powinno to faktycznie spróbuj zapisać to stanowisko 687 00:41:10,000 --> 00:41:13,300 i coś z tym zrobić. 688 00:41:20,630 --> 00:41:22,180 >> Co zamierzamy zrobić, to 689 00:41:22,180 --> 00:41:25,320 w zasadzie wszystko, co musimy zrobić, by sprawdzić, czy jest to wniosek pocztą lub żądanie GET 690 00:41:25,320 --> 00:41:29,350 jest sprawdzenie, jakie są zmienne pocztowych, które można ustawić. 691 00:41:29,350 --> 00:41:34,560 A jeśli zmienna postu jest ustawiony, to będziemy próbować tworzyć nowy post. 692 00:41:34,560 --> 00:41:38,440 Ponownie, po prostu to zrobić, 693 00:41:38,440 --> 00:41:41,090 i że tworzy nowy post, a my dosłownie będzie 694 00:41:41,090 --> 00:41:51,150 ustawić jego pola, na przykład tego, 695 00:41:51,150 --> 00:41:55,640 a następnie będziemy go zapisać. 696 00:41:55,640 --> 00:41:59,200 A potem idę do przekierowania 697 00:41:59,200 --> 00:42:07,660 do strony głównej, aby mogli zobaczyć naszą listę stanowisk ponownie. 698 00:42:07,660 --> 00:42:09,620 Spróbujmy tego. 699 00:42:09,620 --> 00:42:15,160 Powiem, "Brandon" 700 00:42:15,160 --> 00:42:18,140 a następnie przesłać wiadomość, a jeśli wszystko pójdzie dobrze, 701 00:42:18,140 --> 00:42:21,390 jak widać, to przekierowanie mnie do strony indeksu, 702 00:42:21,390 --> 00:42:24,140 i gdybym przewiń do dołu, mamy nowo wstawiony słupek. 703 00:42:24,140 --> 00:42:26,430 Yay! 704 00:42:26,430 --> 00:42:28,430 Tak, pytanie. 705 00:42:28,430 --> 00:42:31,760 >> [Student] Co jeśli wszedł dokładnie to samo 706 00:42:31,760 --> 00:42:33,380 wprowadzony wcześniej? 707 00:42:33,380 --> 00:42:36,950 To upewnij się, że nie powiela 708 00:42:36,950 --> 00:42:38,810 samo składanie? 709 00:42:38,810 --> 00:42:41,660 Być domyślna, nie, ponieważ domyślnie - 710 00:42:41,660 --> 00:42:46,470 Przepraszam, pytanie brzmi, czy należy wprowadzić w dokładnie tym samym danych w formie 711 00:42:46,470 --> 00:42:50,180 i twierdzą, że to pozwala wstawić duplikat obiektu, 712 00:42:50,180 --> 00:42:52,550 Duplicate entry, zasadniczo? 713 00:42:52,550 --> 00:42:54,070 Teraz, tak, pozwoli Ci to zrobić, 714 00:42:54,070 --> 00:42:58,860 bo w bazach danych jest całkowicie poprawny mieć całkowicie zduplikowane wiersze, 715 00:42:58,860 --> 00:43:02,260 ale jeśli to jest problem, można dodać walidację, na przykład, 716 00:43:02,260 --> 00:43:06,430 aby upewnić się, że jeśli to jest dokładnie taki sam, jak coś, co już istnieje, 717 00:43:06,430 --> 00:43:08,720 to powiedzieć, że to nieważne, obiekt, 718 00:43:08,720 --> 00:43:11,200 i wtedy można nawet określić komunikat o błędzie 719 00:43:11,200 --> 00:43:14,390 i powiedzieć: "nieważne, ponieważ ten już istnieje", czy coś w tym stylu. 720 00:43:14,390 --> 00:43:22,420 Ale w tym przypadku, może po prostu stworzyć coś duplikat. 721 00:43:22,420 --> 00:43:26,010 Spróbujmy teraz dodać kilka walidacji. 722 00:43:26,010 --> 00:43:30,400 Problem z tym jest to, że teraz 723 00:43:30,400 --> 00:43:34,220 Mogłem dosłownie złożyć całkowicie pusty post. 724 00:43:34,220 --> 00:43:37,500 Mogę kliknąć ten przycisk, teraz, i tam idziemy. 725 00:43:37,500 --> 00:43:40,290 Naprawdę nie można go zobaczyć, ale ta dodatkowa linia tutaj 726 00:43:40,290 --> 00:43:43,830 wskazuje, że dosłownie nowy post. 727 00:43:43,830 --> 00:43:46,050 To po prostu ma puste autora i puste ciało, 728 00:43:46,050 --> 00:43:48,630 i nie chcemy, aby ludzie, aby to zrobić. 729 00:43:48,630 --> 00:43:52,550 To gdzie jest walidacja w. 730 00:43:52,550 --> 00:43:57,540 >> Mogę iść do mojego modelu obiektu, 731 00:43:57,540 --> 00:43:59,530 i teraz mogę dodać nową funkcję, która określa 732 00:43:59,530 --> 00:44:02,000 co zatwierdzanie zasad należy dodać do tego modelu 733 00:44:02,000 --> 00:44:06,840 aby upewnić się, że jest to ważne, czy określić co to znaczy być ważna wiadomość? 734 00:44:06,840 --> 00:44:10,210 I chcę powiedzieć, że jest tylko ważna wiadomość, jeśli zarówno autor i ciało 735 00:44:10,210 --> 00:44:15,150 nie są puste, a to jest, jak to zrobić w Kohana. 736 00:44:15,150 --> 00:44:18,750 Utworzyć nową funkcję o nazwie "," Zasady 737 00:44:18,750 --> 00:44:20,210 a potem po prostu wrócić tablicę asocjacyjną 738 00:44:20,210 --> 00:44:24,230 , które określa zasady sprawdzania poprawności dla tego obiektu. 739 00:44:24,230 --> 00:44:27,530 Zamierzamy zwrócić tablicę, a następnie to, co zamierzamy zrobić, to 740 00:44:27,530 --> 00:44:32,820 powiedzieć "autor", to idzie do tablicy, 741 00:44:32,820 --> 00:44:37,720 który idzie do innej tablicy o nazwie "nie jest pusta". 742 00:44:37,720 --> 00:44:41,480 A potem mam zamiar powiedzieć "ciało". 743 00:44:50,980 --> 00:44:54,120 Ok, a składnia to i na to struktura 744 00:44:54,120 --> 00:44:56,530 może wyglądać trochę uciążliwe i mało skomplikowane. 745 00:44:56,530 --> 00:44:59,330 Jeśli czytać dokumentację, to całkiem proste, aby dowiedzieć się, 746 00:44:59,330 --> 00:45:02,500 Ale w zasadzie to, co trzeba zrobić, aby określić 747 00:45:02,500 --> 00:45:04,130 niektóre zasady walidacji i istnieje wiele różnych przepisów 748 00:45:04,130 --> 00:45:06,810 że Kohana da ci za darmo, jak można dodać reguły do ​​powiedzenia 749 00:45:06,810 --> 00:45:08,410 musi to być co najmniej ta długość. 750 00:45:08,410 --> 00:45:11,800 Może to musi być numeryczny. Może to ma być alfa numeryczny. 751 00:45:11,800 --> 00:45:14,410 Może to musi wynosić co najwyżej długość ta, tak dalej, i tak dalej. 752 00:45:14,410 --> 00:45:17,730 Istnieje wiele różnych przepisów, które Kohana udostępnia dla Ciebie, 753 00:45:17,730 --> 00:45:19,610 i można przejść na ich stronę, spójrz na dokumentację, 754 00:45:19,610 --> 00:45:23,150 i można zobaczyć wszystkie inne rzeczy, które można zrobić. 755 00:45:23,150 --> 00:45:25,650 >> Ale to jest wszystko, co mam robić, 756 00:45:25,650 --> 00:45:30,490 i teraz zobaczymy, co się stanie, 757 00:45:30,490 --> 00:45:34,060 jeśli przedstawi pusty post. 758 00:45:34,060 --> 00:45:36,960 Co się stanie? Och, nie, pojawia się błąd. 759 00:45:36,960 --> 00:45:39,440 Otrzymuję wyjątek sprawdzania poprawności. 760 00:45:39,440 --> 00:45:41,070 No, to jest dobre. 761 00:45:41,070 --> 00:45:43,200 Powiedział mi, że mój model jest nieważne, 762 00:45:43,200 --> 00:45:45,780 ale nie chcę, aby wyświetlić wyjątek 763 00:45:45,780 --> 00:45:48,720 do moich użytkowników podczas próby do przedstawienia coś nieprawidłowego, prawda? 764 00:45:48,720 --> 00:45:51,560 Chcę dać im jakiś przyjazny komunikat o błędzie 765 00:45:51,560 --> 00:45:53,610 gdy coś pójdzie nie tak. 766 00:45:53,610 --> 00:46:01,830 Co mamy zamiar zrobić, to będziemy 767 00:46:01,830 --> 00:46:04,490 zawijać wszystko w pętli try catch. 768 00:46:04,490 --> 00:46:06,750 Właściwie, myślę, że jest to również coś, czego jeszcze nie dowiedział 769 00:46:06,750 --> 00:46:10,820 w CS50, ponieważ C, język programowania C, 770 00:46:10,820 --> 00:46:14,000 nie ma wyjątków, ale prawie każdy inny język 771 00:46:14,000 --> 00:46:16,700 ma wyjątki, tak bardzo, bardzo krótko, 772 00:46:16,700 --> 00:46:19,430 Wyjątkiem jest coś, co może kawałek kodu 773 00:46:19,430 --> 00:46:21,430 wyjątek, gdy coś pójdzie nie tak, 774 00:46:21,430 --> 00:46:23,410 ale to może jakiś inny kawałek kodu wyżej 775 00:46:23,410 --> 00:46:25,810 może złapać ten wyjątek i coś z tym zrobić. 776 00:46:25,810 --> 00:46:27,710 >> Na przykład, w tym przypadku, 777 00:46:27,710 --> 00:46:29,940 kawałek kodu, który próbuje zapisać model, 778 00:46:29,940 --> 00:46:33,170 to potwierdza model, a jeśli mówi: "Dobra, model ten jest nieważny," 779 00:46:33,170 --> 00:46:36,150 to będzie wyjątek, i to jest rodzaj równoważny 780 00:46:36,150 --> 00:46:39,870 w C można powrócić -1 lub coś w tym stylu. 781 00:46:39,870 --> 00:46:42,320 I wtedy dla mnie, ta funkcja, mój kod 782 00:46:42,320 --> 00:46:46,310 na wyższym poziomie, można spróbować złapać ten wyjątek 783 00:46:46,310 --> 00:46:49,330 i w zasadzie powiedzieć, "Ok, jeśli złapać wyjątek, co ja mam zrobić?" 784 00:46:49,330 --> 00:46:51,570 Czy mogę wybrać, aby nie złapać ten wyjątek i niech ktoś wyżej 785 00:46:51,570 --> 00:46:54,400 złapać wyjątek lub jeśli nikt go łapie, 786 00:46:54,400 --> 00:46:56,820 Następnie cały program wywala i mówi, 787 00:46:56,820 --> 00:46:59,170 "Coś poszło nie tak, i nie mogłem sobie z tym poradzić." 788 00:46:59,170 --> 00:47:04,490 >> Ale co możemy zrobić, to zawinąć kawałek kodu w bloku try, 789 00:47:04,490 --> 00:47:09,030 a następnie również dodać coś o nazwie blok catch, 790 00:47:09,030 --> 00:47:17,300 który jest rodzajem kodu, który będzie starał się złapać wyjątki, które mogą wystąpić. 791 00:47:17,300 --> 00:47:20,430 I tak, jeśli złapię tego szczególnego wyjątku 792 00:47:20,430 --> 00:47:23,110 lub wyjątek unieważnienie, to, co mam zamiar zrobić, to 793 00:47:23,110 --> 00:47:31,210 Mam zamiar ustawić błędy - Myślę, że to, jak to zrobić - 794 00:47:31,210 --> 00:47:35,370 i mam zamiar ustawić błędów do jakiegoś przedmiotu. 795 00:47:35,370 --> 00:47:40,920 A następnie, co mam zamiar zrobić, to jeśli trafi na ten wyjątek, 796 00:47:40,920 --> 00:47:43,090 to nie będzie przekierować, a jeśli to nie przekierowywać 797 00:47:43,090 --> 00:47:46,160 to wyjdzie na razie blogu 798 00:47:46,160 --> 00:47:49,920 i uderzył ten blog / nowy, który chce chcę zrobić. 799 00:47:49,920 --> 00:47:53,190 Jeśli jest błąd, to ja chcę wrócić do formy 800 00:47:53,190 --> 00:47:55,100 i wyświetlać te błędy. 801 00:47:55,100 --> 00:48:00,780 Teraz to, co chcę zrobić, to chcę przekazać w tych błędów 802 00:48:00,780 --> 00:48:07,010 w widoku. 803 00:48:07,010 --> 00:48:10,360 Dobra, myślę, że mam pogląd, tutaj, 804 00:48:10,360 --> 00:48:14,660 i zasadniczo chcę wyświetlić te błędy, jeśli takie istnieją. 805 00:48:14,660 --> 00:48:19,740 Przed piszę na to HTML, będę bardzo szybko 806 00:48:19,740 --> 00:48:21,720 pokazać, co struktura tego błędu zmiennej wygląda, 807 00:48:21,720 --> 00:48:23,080 i to jest dobra praktyka w ogóle. 808 00:48:23,080 --> 00:48:25,070 Wiele razy można dostać coś w zamian od jakiegoś sposobu, 809 00:48:25,070 --> 00:48:27,250 niektórych funkcji w ramach strony internetowej, 810 00:48:27,250 --> 00:48:29,410 a ty nie wiesz, co wygląda na to zmienna, 811 00:48:29,410 --> 00:48:31,210 więc nie wiem, jak z nim pracować. 812 00:48:31,210 --> 00:48:37,790 Zamierzam użyć metody drukowania r, w zasadzie go wydrukować. 813 00:48:37,790 --> 00:48:41,100 >> I jak widać, to mówi mi, że to kojarzy tablica, 814 00:48:41,100 --> 00:48:44,880 i masz klucz, autor wskazuje na tym ciągu, 815 00:48:44,880 --> 00:48:47,050 Autor nie musi być pusty, a drugi klucz, ciało, 816 00:48:47,050 --> 00:48:49,680 wskazuje na inny ciąg, ciało nie musi być pusty. 817 00:48:49,680 --> 00:48:52,130 Jestem jak, dobrze, fajnie. 818 00:48:52,130 --> 00:48:56,230 Wtedy mogę iterację tablicy i wydrukować każdą wiadomość. 819 00:48:56,230 --> 00:49:02,150 Jest to w zasadzie jak tablicy asocjacyjnej z bandą wiadomości. 820 00:49:02,150 --> 00:49:13,500 Co mam zamiar zrobić, to "jeśli błędy" 821 00:49:13,500 --> 00:49:17,140 i mam zamiar utworzyć listę nieuporządkowaną, 822 00:49:17,140 --> 00:49:20,860 i idę do iteracji wszystkich błędów. 823 00:49:33,730 --> 00:49:38,710 I to, i teraz mam zamiar spróbować ponownie złożenie tego, 824 00:49:38,710 --> 00:49:41,200 i zobaczmy, co mamy. 825 00:49:41,200 --> 00:49:45,370 Teraz mamy ten miły listę błędów, 826 00:49:45,370 --> 00:49:48,630 i to jest nadal dość brzydki, ale to oczywiście można sformatować ładnie wyglądać, 827 00:49:48,630 --> 00:49:51,620 ale idea jest tylko kilka linii kodu, 828 00:49:51,620 --> 00:49:53,720 byliśmy w stanie zweryfikować nasz model, 829 00:49:53,720 --> 00:49:56,510 upewnić się, że niektóre pola nie były puste, 830 00:49:56,510 --> 00:49:59,740 i jeśli coś poszło nie tak, a następnie powrót jakiś komunikat o błędzie 831 00:49:59,740 --> 00:50:01,760 Mógłbym wtedy przedstawić z powrotem do użytkownika. 832 00:50:01,760 --> 00:50:03,910 Można również dostosować walidacji 833 00:50:03,910 --> 00:50:07,590 tak, że można rzeczywiście się komunikat o błędzie 834 00:50:07,590 --> 00:50:09,620 że jest bardziej specyficzne dla danej aplikacji lub coś w tym stylu. 835 00:50:09,620 --> 00:50:14,600 Wszystko, co jest ogólnie konfigurowalny. 836 00:50:14,600 --> 00:50:17,150 >> Niestety, kończy nam się czas, 837 00:50:17,150 --> 00:50:20,040 więc będę musiał odciąć żywo sesji kodowania tutaj. 838 00:50:20,040 --> 00:50:22,980 Istnieje kilka innych funkcji, które chcę wykazać dla Ciebie 839 00:50:22,980 --> 00:50:25,650 w tym przykładzie. 840 00:50:25,650 --> 00:50:27,620 Na przykład, można dodać szablony do witryny, 841 00:50:27,620 --> 00:50:31,110 więc może jest jakiś kod HTML, który chcesz zastosować 842 00:50:31,110 --> 00:50:35,190 do każdej strony w witrynie, i że zamiast wklejania 843 00:50:35,190 --> 00:50:40,630 w każdym pliku widoku masz, co oczywiście byłoby złe praktyki, 844 00:50:40,630 --> 00:50:43,020 można w zasadzie określić te szablony, 845 00:50:43,020 --> 00:50:46,660 a następnie w kontroler powiedzieć: "Ok, używam tego szablonu." 846 00:50:46,660 --> 00:50:50,130 "Czy wszystkie moje poglądy użyć tego szablonu." 847 00:50:50,130 --> 00:50:52,470 I jeszcze jedno chcę pokazać, jak dobrze 848 00:50:52,470 --> 00:50:57,800 że nie mamy czasu na to cross-site scripting, 849 00:50:57,800 --> 00:51:01,430 iw zasadzie myślę, że wy prawdopodobnie zobaczyć w CS50 - 850 00:51:01,430 --> 00:51:03,770 Myślę, że David Malan zapewne rozmawiali o tym, jak zwykle można wstrzyknąć 851 00:51:03,770 --> 00:51:08,040 Kod JavaScript do - nie mówił pan o tym? 852 00:51:08,040 --> 00:51:10,220 Może? Może nie? 853 00:51:10,220 --> 00:51:12,670 >> Ale wiele razy można wstrzyknąć złośliwy kod JavaScript 854 00:51:12,670 --> 00:51:15,630 do czyjegoś bazy danych, a jeśli nie uciec, że poprawnie, 855 00:51:15,630 --> 00:51:18,280 a gdy stanowią one, że dane do użytkownika, 856 00:51:18,280 --> 00:51:21,310 to może uruchomić jakąś losową kodu JavaScript nie chcesz się zdarzyć, 857 00:51:21,310 --> 00:51:23,050 i miałem zamiar pokazać, jak chcesz to zrobić w ciągu Kohana. 858 00:51:23,050 --> 00:51:25,380 To naprawdę bardzo, bardzo proste. 859 00:51:25,380 --> 00:51:31,920 Mógłbym zrobić to teraz w ciągu 2 sekund dosłownie. 860 00:51:31,920 --> 00:51:34,560 Wszystko co musisz zrobić, to po prostu zawinąć te rzeczy 861 00:51:34,560 --> 00:51:46,920 w tym rzecz, nazywa encje. 862 00:51:46,920 --> 00:51:51,180 I że automatycznie ucieczki wszystkie znaki poprawnie 863 00:51:51,180 --> 00:51:54,730 i upewnij się, że nie rozumiem tego problemu. 864 00:51:54,730 --> 00:51:57,220 [Student] Ty wpisany pierwszy test nieprawidłowo. 865 00:51:57,220 --> 00:52:01,030 [Brandon Liu] Och, ups. 866 00:52:01,030 --> 00:52:06,420 >> Dobrze, że to wszystko, co musiałem podzielić się z wami dzisiaj. 867 00:52:06,420 --> 00:52:09,930 Slajdy te zostaną wysłane, ale są to na ogół 868 00:52:09,930 --> 00:52:13,900 tylko zasoby należy naprawdę trzeba zacząć z Kohana. 869 00:52:13,900 --> 00:52:16,770 Możesz przejść do strony internetowej. Mają instrukcji obsługi, i mają też odkrywcą API. 870 00:52:16,770 --> 00:52:20,630 Możemy badać wszystkie inne funkcje i funkcji pomocniczych mają one dla ciebie. 871 00:52:20,630 --> 00:52:22,070 Na ogół mają wystarczająco dużo informacji na stronie internetowej 872 00:52:22,070 --> 00:52:25,310 że można użyć, aby zacząć i zacząć zabawę z Kohana. 873 00:52:25,310 --> 00:52:30,840 Nie ma, że ​​wiele tutoriali, jak sądzę, dla Kohana, poza 874 00:52:30,840 --> 00:52:33,880 co mają na stronie internetowej tutaj, więc jest to prawdopodobnie najlepiej. 875 00:52:33,880 --> 00:52:35,600 Ale jeśli chcesz iść z ram internetowej 876 00:52:35,600 --> 00:52:37,120 i nie chcesz, aby odebrać nowy język, 877 00:52:37,120 --> 00:52:39,780 i chcesz coś, co jest stosunkowo lekki i ma łatwy krzywej uczenia się, 878 00:52:39,780 --> 00:52:41,570 Zdecydowanie sugerują Kohana. 879 00:52:41,570 --> 00:52:44,040 To chyba najlepszy oferowania do tego. 880 00:52:44,040 --> 00:52:46,830 Najśmieszniejsze jest jednak to, czy używaliśmy Ruby on Rails, 881 00:52:46,830 --> 00:52:48,550 mogliśmy replikowane, co właśnie zrobiłem 882 00:52:48,550 --> 00:52:51,430 i prawdopodobnie więcej w ciągu 3 minut. 883 00:52:51,430 --> 00:52:54,710 Nie żart, ale nauki Ruby on Rails trwa o wiele dłużej 884 00:52:54,710 --> 00:52:56,780 niż to by się uczyć Kohana. 885 00:52:56,780 --> 00:52:58,840 Jest to w zasadzie wybór tego, co chcesz wybrać, aby dowiedzieć się, 886 00:52:58,840 --> 00:53:01,260 ale jeśli chcesz dostać się i działa szybko, 887 00:53:01,260 --> 00:53:03,870 Kohana jest na pewno bardzo dobry wybór. 888 00:53:03,870 --> 00:53:06,730 >> Jakieś ostatnie pytania, zanim skończy? Tak. 889 00:53:06,730 --> 00:53:08,020 [Student] Jak zintegrować że 890 00:53:08,020 --> 00:53:13,120 w ramach CSS jak uzywasz kiedy się pouczając? 891 00:53:13,120 --> 00:53:16,700 Pytanie brzmi: jak chcemy zintegrować to z ram CSS? 892 00:53:16,700 --> 00:53:18,740 Co to prawdopodobnie nie jest to prawdopodobnie należą 893 00:53:18,740 --> 00:53:21,090 nowy folder, w którym chcemy zrzucić wszystkie pliki CSS, 894 00:53:21,090 --> 00:53:23,010 i my również dodać nowy szablon. 895 00:53:23,010 --> 00:53:26,090 W szablonie my obejmują te pliki CSS 896 00:53:26,090 --> 00:53:28,410 aby upewnić się oni odwoływać się na każdej stronie, 897 00:53:28,410 --> 00:53:32,220 i wtedy, gdy faktycznie pisania kodu HTML, 898 00:53:32,220 --> 00:53:34,010 wystarczy dodać odpowiednie klasy i etażerka, 899 00:53:34,010 --> 00:53:36,100 i na przykład, gdy używasz coś jak postaci 900 00:53:36,100 --> 00:53:40,710 Funkcja pomocnika, można później dodać więcej parametrów 901 00:53:40,710 --> 00:53:42,830 określić, jakie zajęcia chcesz być dołączone do różnych rzeczy 902 00:53:42,830 --> 00:53:47,820 aby mogli go styl prawidłowo, i to jest w zasadzie jak chcesz iść. 903 00:53:47,820 --> 00:53:50,100 >> Jakieś pytania? 904 00:53:50,100 --> 00:53:52,090 Niesamowite. 905 00:53:52,090 --> 00:53:58,540 Dziękujemy za poświęcony czas i dziękuję za przybycie. 906 00:53:58,540 --> 00:54:05,170 Nie chciałem, aby dodać bardzo wiele innych, 907 00:54:05,170 --> 00:54:08,560 ale 1 bardzo szybko, co jest, że nie mamy link 908 00:54:08,560 --> 00:54:12,590 do formy. 909 00:54:12,590 --> 00:54:14,310 Naprawdę głupi. 910 00:54:14,310 --> 00:54:20,110 Dodajmy - w rzeczywistości w świetle, blog, indeks, 911 00:54:20,110 --> 00:54:23,890 niech naprawdę szybko dodać link, który idzie do nowej strony, 912 00:54:23,890 --> 00:54:26,770 Strona gdzie można wstawić nowy post. 913 00:54:26,770 --> 00:54:29,950 Mamy zamiar to zrobić. 914 00:54:29,950 --> 00:54:34,020 Co miłe jest nie jest to cała grupa HTML funkcji pomocniczych 915 00:54:34,020 --> 00:54:37,090 który robić różne rzeczy dla Ciebie, więc już widziałem podmioty 916 00:54:37,090 --> 00:54:41,980 funkcjonować tutaj, ale także funkcję o nazwie "kotwica" 917 00:54:41,980 --> 00:54:45,400 które można wpisać w blogu / nowy 918 00:54:45,400 --> 00:54:49,550 i powiedzieć: "Napisz nowy blog." 919 00:54:49,550 --> 00:54:51,850 I spowodowałoby, że link do Ciebie, 920 00:54:51,850 --> 00:54:54,120 i to wydaje się bardzo trywialne do zrobienia, ale to jest miłe, 921 00:54:54,120 --> 00:54:58,720 bo przypuszczam, że przenosisz swoją stronę z 1 domeny do innej. 922 00:54:58,720 --> 00:55:01,390 A jeśli po prostu wypisał sobie adresów URL, 923 00:55:01,390 --> 00:55:04,350 wtedy trzeba by zmienić wszystkie adresy URL. 924 00:55:04,350 --> 00:55:06,850 A może przenieść go od 1 podkatalogu do innego podkatalogu. 925 00:55:06,850 --> 00:55:08,790 Trzeba by zmienić te wszystkie adresy URL się, 926 00:55:08,790 --> 00:55:12,180 i to nie jest zabawa. 927 00:55:12,180 --> 00:55:14,510 Możesz skorzystać z tej kotwicy tutaj, 928 00:55:14,510 --> 00:55:18,950 i można zmienić domenę lub prefiks podfolder 929 00:55:18,950 --> 00:55:20,640 w pliku konfiguracyjnego raz 930 00:55:20,640 --> 00:55:22,980 i to, że stosuje się wszędzie, to znów 931 00:55:22,980 --> 00:55:26,930 doskonałym przykładem nie powtarzaj się, suszenie kodu z. 932 00:55:26,930 --> 00:55:30,370 Gdziekolwiek jesteś, powtarzając sobie, spróbuj wyodrębnić w jakimś pliku konfiguracyjnym 933 00:55:30,370 --> 00:55:34,160 lub do innej funkcji i nie radzi sobie, że dla Ciebie. 934 00:55:34,160 --> 00:55:42,930 >> I ostatnia rzecz, że bardzo chciałam pokazać, była 935 00:55:42,930 --> 00:55:50,250 załóżmy, że jesteśmy z powrotem na ten post, a ja w składzie kilka naprawdę długi esej, 936 00:55:50,250 --> 00:55:52,670 ale zapomniałem włączyć mojego autora. 937 00:55:52,670 --> 00:55:55,210 Teraz po kliknięciu "Wyślij Post" 938 00:55:55,210 --> 00:55:57,270 Właśnie stracił wszystko. 939 00:55:57,270 --> 00:56:00,000 Nie! Naprawdę smutne. 940 00:56:00,000 --> 00:56:03,870 Jak więc sobie z tym poradzić? 941 00:56:03,870 --> 00:56:06,070 To jest to, co robimy. 942 00:56:06,070 --> 00:56:09,340 Co możemy zrobić, to tutaj dla tych funkcji wejściowych i obszaru tekstu, 943 00:56:09,340 --> 00:56:12,700 jeśli znajduje się drugi parametr, wówczas wartość tego drugiego parametru 944 00:56:12,700 --> 00:56:16,620 będzie co pole ma być początkowo wypełniane. 945 00:56:16,620 --> 00:56:23,570 Co mogliśmy zrobić, to w naszym kontrolerze bloga, 946 00:56:23,570 --> 00:56:25,360 możemy wiązać innej zmiennej. 947 00:56:25,360 --> 00:56:27,050 Nazywamy to "wartości" być może. 948 00:56:27,050 --> 00:56:30,620 I przekazać w tablicy postu, dosłownie. 949 00:56:30,620 --> 00:56:32,620 To oznacza, że ​​jeśli weryfikacja nie powiodła się, 950 00:56:32,620 --> 00:56:36,570 przekazać mi tablicę postu, że przekazywane z ostatniego wniosku, 951 00:56:36,570 --> 00:56:38,420 i w ten sposób można korzystać z wartości z mojego ostatniego przedłożenia 952 00:56:38,420 --> 00:56:44,540 repopulate pola. 953 00:56:44,540 --> 00:56:49,600 Teraz mogę zrobić coś jak wartości autora 954 00:56:49,600 --> 00:56:55,180 i wartości ciała i w ten sposób teraz, jeśli mam jakieś losowe rzeczy 955 00:56:55,180 --> 00:57:01,490 i kliknij przycisk "Prześlij postem", to pozostaje tam. 956 00:57:01,490 --> 00:57:03,830 Ale mamy zamiar uruchomić na innym problemie. 957 00:57:03,830 --> 00:57:07,670 Że działa, ale jeśli pójdę do strony za pierwszym razem, 958 00:57:07,670 --> 00:57:09,720 to będzie katastrofy, a to dlatego, że po raz pierwszy 959 00:57:09,720 --> 00:57:13,730 możemy przejść do strony, zmienna ta wiadomość nie została jeszcze zdefiniowana. 960 00:57:13,730 --> 00:57:18,170 To jest wartość null. Nie ma. 961 00:57:18,170 --> 00:57:21,630 >> A to, co chcemy powiedzieć, czy ten klucz istnieje, 962 00:57:21,630 --> 00:57:27,750 następnie zwraca wartość z tej tablicy, 963 00:57:27,750 --> 00:57:30,450 ale jeśli klucz nie istnieje, a następnie powrócić pusty ciąg. 964 00:57:30,450 --> 00:57:32,150 To funkcjonalność chcemy tutaj. 965 00:57:32,150 --> 00:57:34,690 Chcemy sprawdzić, czy klucz istnieje przed próbą dostępu do tablicy, 966 00:57:34,690 --> 00:57:36,580 i na szczęście, 967 00:57:36,580 --> 00:57:38,570 Kohana daje nam również funkcję pomocniczą względem. 968 00:57:38,570 --> 00:57:41,040 Mają cały ten zestaw funkcji 969 00:57:41,040 --> 00:57:43,660 pod nazwą ARR, skrót od tablicy, 970 00:57:43,660 --> 00:57:45,800 i mają 1 funkcji o nazwie "dostać" 971 00:57:45,800 --> 00:57:48,690 i można przejść w tablicy, 972 00:57:48,690 --> 00:57:50,740 i można przejść w nazwie klucza. 973 00:57:50,740 --> 00:57:54,330 Potem w zasadzie to, co będzie to zrobić, to będzie starał się uzyskać ten klucz, 974 00:57:54,330 --> 00:57:56,470 ale czy ten klucz nie istnieje w tablicy, 975 00:57:56,470 --> 00:58:00,900 to wróci puste, lub możemy także określić domyślny, wierzę, 976 00:58:00,900 --> 00:58:03,500 co jest miłe. 977 00:58:09,740 --> 00:58:13,150 Teraz, jeśli znowu to samo, 978 00:58:13,150 --> 00:58:15,970 to teraz widzisz to działa za pierwszym razem, 979 00:58:15,970 --> 00:58:18,080 i ponownie, jeśli w jakimś losowym typu rzeczy 980 00:58:18,080 --> 00:58:23,210 i spróbować złożyć, to pozostaje tam. 981 00:58:23,210 --> 00:58:31,640 >> I chyba mogę też pokazać, jak bardzo szybko dodać szablon. 982 00:58:31,640 --> 00:58:36,140 Co możemy zrobić, Pierwszy to możemy dodać nowy widok o nazwie "template.php" 983 00:58:36,140 --> 00:58:38,890 w folderze Widoki 984 00:58:38,890 --> 00:58:44,730 i co mam zamiar zrobić, to mam zamiar wydrukować coś o nazwie "Zawartość" 985 00:58:44,730 --> 00:58:49,130 które będzie moim głównym treści. 986 00:58:49,130 --> 00:58:51,380 A może i na samym dole mam zamiar dodać, powiedzmy, 987 00:58:51,380 --> 00:58:53,340 praw autorskich. 988 00:58:53,340 --> 00:58:56,150 [Niesłyszalne uczeń pytanie] 989 00:58:56,150 --> 00:58:58,050 [Brandon Liu] Może to jest bardzo podstawowy szablon chcę używać. 990 00:58:58,050 --> 00:59:02,840 Chcę mieć folder z moim autorskim na każdej stronie, 991 00:59:02,840 --> 00:59:05,560 i teraz to, co mam zamiar zrobić w moim kontrolera 992 00:59:05,560 --> 00:59:07,740 jest teraz zamiast mówić, "rozciąga Controller" 993 00:59:07,740 --> 00:59:11,870 Mam zamiar powiedzieć "rozciąga Controller_Template" 994 00:59:11,870 --> 00:59:15,890 i teraz zamiast mówić: "ciało odpowiedź jest równa tym widoku" 995 00:59:15,890 --> 00:59:24,110 Mam zamiar powiedzieć: "to jest szablon treści -" 996 00:59:24,110 --> 00:59:27,690 i myślę, że - mogę postawić znak równości? 997 00:59:27,690 --> 00:59:32,710 Zapomnę. Tak, tak myślałem. 998 00:59:32,710 --> 00:59:37,710 A teraz ustawić, że ta zawartość równa widok. 999 00:59:37,710 --> 00:59:40,960 Mogę tu sama. 1000 00:59:49,620 --> 00:59:57,170 A teraz, jeśli ja odświeżyć, widać teraz to copyright dodaje tam, 1001 00:59:57,170 --> 01:00:00,350 i po prostu zrobić kilka losowych stanowisko, 1002 01:00:00,350 --> 01:00:06,760 a następnie, ponownie, należy zauważyć, że prawo autorskie jest na samym dole strony. 1003 01:00:06,760 --> 01:00:10,730 >> Wielki. To wszystko, co chciałem pokazać wam. 1004 01:00:10,730 --> 01:00:14,970 [Oklaski] 1005 01:00:14,970 --> 01:00:18,950 Masz pytanie? 1006 01:00:18,950 --> 01:00:21,000 [CS50.TV]