[Seminar] [Kohana: Kevyt PHP Framework] [Brandon Liu] [Harvardin yliopisto] [Tämä on CS50.] [CS50.TV] Hi everyone. Nimeni on Brandon. Olen junior täällä college tekemässä tietojenkäsittelytiede, ja tänään aiomme puhua Kohana, joka on PHP kehityksen puitteissa. Tänään tulee olemaan live koodaus seminaari, joten olen periaatteessa aikoo viettää 5-10 minuuttia selittää mitä Kohana on, ja sitten olen kirjaimellisesti aikoo rakentaa super yksinkertainen blogi sinulle täällä kirjaimellisesti tyhjästä. Aiomme ladata koodia Kohana verkkosivuilla, ja aiomme alkaa rakentaa blogin, ja toivottavasti se tulee olemaan hyvin opettavainen, koska näet ehkä saatan tehdä joitakin virheitä, ja näet minut toipua niistä, tai näet minun ajattelua kuin minä rakentaa läpi tämän blogin, ja sillä välin, voit myös tutustua kehys itsessään. Toivottavasti se tulee olemaan hyvin opettavainen harjoitus. Ensinnäkin, mitä on puitteet? Jos olet ollut ottaen CS50 toistaiseksi, et ole todella toimi minkään puitteiden vielä, ja asia on tämä. Olet varmaan tehnyt 1 web-kehitys PSET jo, ja sanokaamme olet edelleen rakentaa verkkosivustoja ja pitää rakentaa verkkosivustoja. Voit alkaa huomata muutamia asioita. Ensimmäinen asia, jonka huomaat, että olet todennäköisesti tehdä samoja asioita uudestaan ​​ja uudestaan ​​koko ajan, asioita, kuten siivous käyttäjä syöttää tietoja, asioita, kuten järjestää tiedostot tietyllä tavalla. Toinen asia voit myös todennäköisesti huomaat, on, että koodi voi alkaa tulla hyvin, hyvin sotkuinen, ja voit jättää sen sotkuinen ja on vain hyvin vaikea ylläpitää sitä, tai voit alkaa jäsentää koodia ja tehdä siitä modulaarinen tietyllä tavalla, jotta se olisi ylläpidettävissä. Tämä on web puitteet pohjimmiltaan tuli sisään Nämä ihmiset, jotka olivat rakentaneet paljon sivustoja, he sanoivat, "Meidän ei tarvitse tehdä uudelleen tämän joka ikinen kerta kun rakentaa verkkosivuilla." "Miksi emme vain tehdä paketti, joka tekee kaikki nämä asiat sinulle joka ikinen kerta haluat rakentaa verkkosivuilla? " Ja niin, että kun teet uuden verkkosivuston, voit vain keskittyä mitä tämä erityisesti verkkosivuilla on kyse. Sinun ei tarvitse toistaa kaikkia eri kokoonpano ja erottaminen tunnuksia ja kirjoittamasta koodia että sinulla on usein tehdä, kun teet verkkosivuilla. Ajatuksena on, että kehys voit kirjoittaa korkeamman tason koodia ilman huolta alemman tason yksityiskohdat. Alemman tason yksityiskohta voi olla esimerkiksi käsittelevät puhdistus käyttäjä syöttää tietoja. Se on jotain, että sinun ei pitäisi todellakaan tarvitse murehtia. Sinun pitäisi keskittyä siihen, mitä web-jako on oikeastaan ​​kyse. Se eliminoi paljon boilerplate koodin. Se on arkkitehtuuri projektin. Suosituin olisi Model-View-Controller, jonka aion puhua toisessa. Ja paljon kertaa nämä kehykset ilmentävät joukko menettelyjä, sääntöjä ja parhaita käytäntöjä voit käyttää niin, että kun joku ottaa web puitteet sinun täytyy kirjoittaa koodia tietyllä tavalla, ja se on yleisesti sovittu periaatteet jonka yhteisö, joka on yleisesti hyväksytty olevan hyvä tapa kirjoittaa koodia. Se tekee koodin enemmän huollettavia, käyttökelpoisempia, niin edelleen ja niin edelleen. Ja lopuksi, mitä haluan korostaa noin puitteita vs. kirjastoissa on tämä ajatus noin käännellen ohjaus, ja asia on tämä. Ero kirjasto ja puitteet on, että kirjaston olet vielä kirjallisesti pääohjelma, ja olet tavallaan vedoten kirjaston ja kehotetaan kirjaston tehdä jotain. Ero kirjasto ja puitteet on, että kehys lähtee liikkeelle ohjaus, ja se vetoaa koodin, joten voit ajatella sitä - siksi sitä kutsutaan puitteet - kehys tarjoaa tähän kehykseen ja rakenne koodia, ja täytät reikiä, ja tämä käyvät paremmin ilmi toisessa kun näet minut alkaa kirjoittaa koodia puitteissa puitteissa. Huomaat, että olen täyttämällä aukkoja, ja puitteet on tavallaan hallitsemaan kaikki liikkuvat osat, ja minun täytyy laittaa palaset oikeissa paikoissa. Tänään aiomme puhua Kohana, joka on yksi monista PHP kehykset. On web puitteet, ja on niitä lähes joka yhdellä kielellä, ja olen poiminta Kohana koska Kohana on kiistatta ja yleisesti tunnustettu helpoin PHP puitteet poimia. Se on kevein. On muitakin niitä siellä, jotka tulevat monia, monia muita ominaisuuksia, mutta ne ovat yleensä vaikea poimia. Ja lopuksi, Kohana käyttää MVC arkkitehtuuri. Se on kevyt riitä, että voimme kirjaimellisesti rakentaa hankkeen täällä aivan silmiesi edessä, ja voit melko paljon seurata pitkin melko helposti. Mikä on MVC arkkitehtuuri? Se tarkoittaa Model-View-Controller, ja ehkä jos ajattelee koodin olet kirjoittanut tähän mennessä joidenkin web-kehitys psets voit ehkä nähdä tämän, mutta yleensä kun aloitat kirjallisesti monimutkaisempi web-sovellus, jako näiden 3 segmenttien tulee yhä ilmeisemmäksi. Makasin ulos MVC tässä tavallaan kuin pino, ja usein kuulet puhuttavan pinot web-kehitys, ja tämä on havainnollistaa ajatusta, että jokainen kerros, kunkin komponentin todella yrittää vain kommunikoida välillä 2 muita komponentteja. Joku sisäänkäyntien sivuston asiakkaana tai selain. He toimivat ohjelman kautta näkymä koodi. View koodi vuorovaikutuksessa säätimen. Ohjain vuorovaikutuksessa mallin, ja malli vuorovaikutuksessa SQL-tietokannan. Eikä ole hyppii välillä, jos kirjoitat koodin oikein. Mitä nämä asiat eivät? Malli pohjimmiltaan on koodinpätkä, joka käsittelee tietoja. Jotain, joka käsittelee tietokannan kanssa esineitä, jotka voit tallentaa, tai hakevat niitä tietokannan objektit, joka on kaikki hoitaa mallin. Ehkä sinulla on objekteja tietokantaan. Aiomme luoda malli ottaa tekemistä virkaa, niin viesti saattaa olla joitakin ominaisuuksia siihen. Saatat olla tehtäviä ympäri tallentaa nämä viestit tai hakevat virkaa tai suodattamalla viestit ja niin edelleen ja niin edelleen, ja siinä kaikki koodi, joka on hoitaa mallin. Ohjain on eräänlainen sovelluksesta, ja paljon erilaisia ​​asioita voi mennä sovelluksesta. Jos puhut eri API, jotka voivat olla missä olet tekemisissä sovelluksen logiikkaa. Jos yrität olla tarpeen tuoda tietoja useista eri malleja ja on yhdistää niitä jollakin tavalla, että usein voidaan käsitellä ohjain. Esimerkiksi Facebookissa, jos ystävä joku, niin ehkä, että teko todetaan, että suhde voidaan tehdä ohjain. Ja lopuksi, näkymä on koodi, joka on tuottaa mitä itse nähdä. Paljon kertaa Uskon CS50 psets ne eivät todellakaan rohkaista teitä erottaa näitä 3 asiat. Luultavasti on tämä iso, pitkä, jossa yläosassa teet joitakin SQL-kysely ja ehkä tehdä joitakin käsittely tietoihin sinut haetaan tietokannasta, ja sitten sinulla on kaikki HTML alareunassa. Ja saatat huomata, että kun luot enemmän ja enemmän sivuja että olet menossa on joitakin koodi toistoa, ja myös, asia on tiedoston saa todella iso ja pitkä ja työskentely ruuhkautuu hallita. Syy miksi MVC on niin hyvin pitää on useita syitä. Ensimmäinen asia on jotain kutsutaan erottaminen huolenaiheita joka on ajatus, että kun on - ihanteellisesti 1 koodinpätkä pitäisi tehdä 1 asia ja tehdä se todella hyvin, ja sinun ei pitäisi yhdistää paloja koodia, jotka eivät erilaisia ​​asioita. Esimerkiksi tarkastella koodi ja malli koodin, he eivät oikeastaan ​​tarvitse liittyä. Niiden ei tarvitse olla samat tiedostot, joten kun voit, erota ne joten se on helppo ylläpitää. Toinen asia on koodin uudelleenkäyttö. Saatat löytää itsesi kirjallisesti samaan SQL-kyselyn tai tekee vastaavia kyselyitä, jotka voitaisiin otetun osaksi 1-toiminto, ja se idea malleja ja ohjaimet, ottaa sitä erillisenä toimintona että voit käyttää uudelleen eri paikoissa projektin. Ja lopuksi, joka on sidottu kuivaus koodia, tai ei toistamalla itseäsi, älä toista itseäsi. Tämä on hyvin ymmärrettävää kehitteillä. Aina voit, et halua toistaa itseäsi, koska jos toista itseäsi,  se on paljon kalliimpaa ylläpitää. Jos haluat muuttaa 1 asia, sinun täytyy muuttaa sitä kaikkialla, ja joka johtaa bugeja, ja se on kamalaa. Selvä. Kysyttävää tähän mennessä noin Kohana ollenkaan? Suuri. Nyt aiomme sukeltaa live koodaus istunnon ja toivottavasti kaikki menee hyvin. Aion periaatteessa rakentaa tällä sivustolla yksi minun etäpalvelinten, ja näin te voi myös katso verkkosivuilla ja käyttää verkkosivuilla, ja myös ympäristö on parempi konfiguroitu kuin minun kauko kone, koska se on käynnissä Linux sijaan OS X. Me kirjaimellisesti aio aloittaa. KohanaFramework.org. Aion ladata koodia verkkosivuilla. Aion kopioi linkin osoite, mene minun palvelimelle, lataa se, ja aion purkaa sitä. [Opiskelija] Mikä on suurin voit tehdä tekstin? [Brandon Liu] Onko nyt parempi? [Opiskelija] Onko se toteutettavissa? [Brandon Liu] Joo, se käy hyvin. Latasin zip-tiedosto ja purkaa sen osaksi hakemiston nimeltä Kohana, ja aiomme nimetä että CS50-Kohana, ja mennään sisään Mahtava. Täällä näet joukko erilaisia ​​tiedostoja. Useimmat teistä voi sivuuttaa - Emme ole menossa läpi jokaisen tiedoston, joka on täällä koska meidän ajanpuutteen mutta yleensä kun asennat Kohana, ensimmäinen asia, et on menet hakemistoon, ja voit periaatteessa tehdä joitakin ympäristön testejä ja vaikka mitä varmista, että ympäristö on oikein asetettu toimimaan Kohana ja varmista, että kaikki on kunnossa. Näet useimmat asiat kulunut, mutta yleensä aina törmätä tähän 1 ongelma jossa se väittää, että jotkut ei voi kirjoittaa, ja se johtuu joidenkin käyttöoikeudet. En tiedä kuinka paljon te oppinut tiedoston käyttöoikeuksia CS50, mutta jos et web-kehitys, aiot törmätä tätä asiaa paljon. Aion tehdä sen kirjoitettavan ja mielestäni on myös - siellä mennään. Okei, joten nyt näet kaiken kulunut, ja nyt se kertoo nimetä install.php tiedoston. Aion siirtyä install.php tiedoston installed.php, ja jos nyt virkistää, se antaa minulle virhe, ja tämä on silloin virheenkorjaus tulee sisään Tämä on, jos voit nähdä, mitä todella tapahtuu. Asia on oletusarvoisesti Kohana olettaa, että projekti on juurihakemistoon verkkotunnuksen, niin se odottaa sinua olevan demo.brandonkliu.com. Meidän on kerrottava se, että se on todella alikansioon. Se on alikansio nimeltä CS50 Kohana. Asia on, se tulkitaan väärin CS50-Kohana jotain muuta, joka selitän sinulle toisen. Mutta haluan kertoa teille, että on jotain, joka on odotettavissa. Mitä aiomme tehdä, on aiomme mennä tähän kansio nimeltä bootstrap.php, joka on kokoonpanon kansio, johon paljon erilaisia ​​asioita on perustettu. Avaan tuon. Sitten ehkä yksi ensimmäisistä asioista teen on vaihtaa aikavyöhykettä. Ja sitten Katsotaanpa. Ahaa! Täällä. On olemassa joukko eri kokoonpano sanontoja täällä, mutta yksi etsin on tämä asia sanottu perus-URL, ja oletuksena saan sen asetettu Kohana, mutta aion vaihtaa sen CS50-Kohana, ja mielestäni pitäisi korjata. Kyllä, hienoa. Oletuksena nähdä, että se toimii, se sanoo, "Hello World". Mistä se tuli? Miten pääsemme Hello World? Missä tarkalleen on koodi, joka itse kirjoitti, että? Ymmärtää, että minä esitellä tätä käsitettä kutsutaan reititys. Melkeinpä kaikki web puitteita on käsite nimeltä reititys, joka on pala ohjelmisto, joka kartoittaa tietyn URL tietty koodinpätkä omassa puitteissa. Esimerkiksi, jos sinulla on joitakin URL ja menet joitakin URL kuten foo.com / blog / kaikki niin mitä puitteita aikoo tehdä - tai ainakin mitä Kohana aikoo tehdä - on se tulee löytää luokan nimeltä ohjain blogi, ja se tulee suorittaa funktion nimeltä toimintaa kaikille. Tiedän, puhun luokan ja toimintoja, ja tiedän te ne ole koskeneet luokat ja toiminnot in CS50 vielä, mutta nyt voit ajatella luokkiin vain joukko toimintoja, tapa kokoamalla toimintoja yhteen. Se on oikeastaan ​​kaikki mitä tarvitsee tietää. Nyt jos katsomme meidän kansiorakennetta sisällä hakemuksen kansio on toinen kansio nimeltä luokat, ja muut kansiot kutsutaan Controller ja malli. Jos katsot sisälle Controller-kansioon, näemme, että siellä on tiedosto nimeltä Tervetuloa, ja näet tästä on luokan nimeltä Controller Tervetuloa, ja siellä on toiminto nimeltään Action-indeksi, ja mitä se tekee on se asettaa body vastaus Hello World. Se kun koodi on kirjoitettu. Toinen kysymys on, no, en mene blaa, blaa, blaa, / welcome / index. Miten päädyin tänne? No, se on yksinkertaisesti siksi täällä alareunassa meidän bootstrap-tiedoston jos asetamme reittejä voit nähdä, että he asettaa joitakin oletusarvot sinulle. Oletuksena ohjain on tervetullut. Oletuksena toiminta on päävalikko. Siksi kun laitamme mitään siellä se automaattisesti meni Tervetuloa ohjain ja indeksin Action. Kaikki järkeä tähän mennessä? Nyt voit tehdä enemmän kuin vain mennä Controller ja erityisiä toimia. Voit myös kulkea parametrit säätimeen. Aivan kuten esimerkiksi Aion lisätä toisen toimia tämän ohjaimen näyttämään. Kutsukaamme tätä toimintaa Echo, koska se tulee kertoa sinulle mitä annat sitä, ja niin olen periaatteessa menossa napata parametri, joka aiotaan lähettää minun kauttani reititys ohjelma, ja kuten voitte nähdä täällä, tämä linja täällä, voit nähdä, että Tämä tarkoittaa käytännössä sitä, sinulla on ohjain, ja sinulla on /, ja sinulla on toimintaa, ja sinulla on toinen /, ja että tulee olemaan parametrit, ja koska meillä on tämä nimi ID sisällä kiinnityskulmat, se tarkoittaa, että olemme nimeäminen tämän parametrin tunnus. Myöhemmin minun ohjain koodi jos haluan napata kiinni, että parametrin, Voin käyttää koodia kirjoitin, löytää parametri nimeltä tunnus. Se mitä tein täällä, ja aion palata ja sanoa, "Sanoit, että". Ja nyt jos menen sivuillamme, Menen cs50-kohana/welcome/echo/Helloooo-- Voi, että on oikeassa. On 1 askel lähdin ulos. Tämä on osa live koodaus idea. Tässä on 1 asia. Katsotaanpa. Joten yleensä oletuksena paljon näitä web-sovelluksia sinun täytyy sisällyttää tämän index.php asia URL, koska idea on index.php on tavallaan aloituskohta hakemuksesi, mutta tietenkin, se on tavallaan ärsyttävää on. Et halua olla index.php näkyvän URL, ja melko paljon joka web puitteet kättelyssä on tämä index.php ongelma, ja niin sinun täytyy ottaa joitakin toimenpiteitä pystyä poistamaan se. Ja niin tässä tapauksessa mitä aiomme tehdä, on aiomme käyttää tiedosto nimeltä. htaccess, ja tämä on jotain, joka on nimenomaan Apache www-palvelin, ja se voi tehdä asioita, kuten kirjoittaa URL ja ohjata URL-osoitteet ja niin edelleen ja niin edelleen, ja Kohana on mukava riittää antamaan malliin. htaccess-tiedosto, joita voimme käyttää. Kuten näette, siellä on tiedosto on nimeltään example.htaccess, ja aiomme kopioida että. htaccess. Aion avata tämän ja muokata sitä, ja pohjimmiltaan se joukko eri asioita. Avainministeriöiden haluat ehkä tarkastella on täällä. Ajatuksena on, että tämä luodaan sääntö, joka sanoo, "Okei, mitä kirjoitat, prepend index.php siihen." Voit nähdä, että. . * Tarkoittaa mitään, täsmää kaikkeen, ja sitten toinen osa on index.php / $ 0, ja 0 dollaria viittaa mitä oli sovitettu aiemmin. Onko järkeä? Mutta todella keskeinen asia, jonka haluan muuttaa on muuttaa tämän uudelleenkirjoitus pohja, , joka on URL-osoitteen perusta. Se tavallaan oletetaan, jossa olet työskennellyt alkaen. Aion lisätä CS50 Kohana siihen, ja näin nyt jos voin poistaa index.php, sen pitäisi toimia, ja aion lisätä joitakin numeroita näyttää, että se todellakin teki työtä. Kuulostaa hyvältä. Kaikki kysymykset tähän mennessä? [Opiskelija] Miten se tietää tehdä 123? Onko tämä väite? Täsmälleen. Voit ajatella sitä aivan kuin argumentti. Mutta outo juttu on kuitenkin se, että tapa Kohana tekee sen ei he eivät tee sitä aivan kuin argumentti. Sinun täytyy napata se näin. Sinun täytyy napata pyynnön kohde ja pyytää parametri, joka on nimetty ID, ja jos nimi ID tulee, että bootstrap tiedosto että näytin aikaisemmin, ja nimi ID Näissä kulmasulje ja se miten napata niitä parametreja. Mahtava. Muuta kysyttävää? Kuten sanoin, ohjaimet, ne käsittelevät sovelluksesta, niin se on 1 esimerkiksi, jossa voit nähdä that - se on hyvin yksinkertainen, mutta se on silti sovelluksesta, ajatus tarttumalla parametrin ja luoda uusi merkkijono joka sanoo: "Sinä sanoit blah", ja sitten sylkeminen että takaisin sinulle. Ja yleensä mitä teet on sinun luoda erilaisia ​​ohjaimia. Voit luoda erilliset säätimet eri puolilla sivuston. Tänään aiomme tehdä hyvin yksinkertainen sivusto, ja se tulee olemaan hyvin yksinkertainen blogi. Aiomme tehdä uusi ohjain vain virkaa blogissa. Mutta sitten jos olisin myös lisätä kommentteja blogi, niin olisin varmaan tehdä uusi ohjain niille kommentteja. Jos haluaisin lisätä käyttäjiä, olisin varmaan lisätä uuden ohjaimen niille käyttäjille, ja yleensä, ajatus on, että aina kun on uusi malli, uudet tiedot objekti että olet tekemisissä, sinulla on yksi ohjain, että tieto-objekti. Tänään olemme vain menossa työskennellä 1 dataobjekti, ja että tulee olemaan virkaa, ja myös voit ajatella dataobjekteja kuin vastaavat taulukot. Yleensä jokainen pöytä vastaa 1 tyyppistä tietoa objektin, niin post pöytä on 1 viesti malli, joka on 1 viesti ohjain, joka vastaa, ja sama kommentteja, sama käyttäjille, ja niin edelleen ja niin edelleen. Ja se Nyrkkisääntönä. Siellä aiotaan erityistapauksissa, joissa voi poiketa, mutta 90% ajasta se mitä aiot tehdä, ja minä näytän teille, että me aiomme tehdä tänään. 1 enemmän käsite ennen kuin sukeltaa takaisin koodia, tämä ajatus objektin relaatio kartoitus. Olette jo tehnyt web-kehitys PSET, ja olet nähnyt, että teet SQL-kysely, ja mitä se palaa olet rivejä. Saat näitä rivejä, ja indeksoida niitä jonkin nimen, sarakkeen nimi ja taulukon ja se miten työskennellä sen kanssa, ja se voi olla vähän hankalaa. Mutta lisäksi, jos sinulla on sisäisiä suhteita tietokannan Kuten esimerkiksi, jos minulla on kommentteja ja viestejä, niin ehkä haluan napata vanhemman virkaan kommentti. Jos käytän vain rivien SQL, niin kaikki saan on tunnus Emoyhtiön postitse eikä varsinaisen postitoiminnan itse. Mutta kun olemme koodausta, mitä me oikeastaan ​​haluamme todella napata  vanhempi lähettää itse joskus. Mikä esine relaatio kartoitus tekee on se vie tulokset tietokantakyselyn ja laittaa sen esineitä teille, jotka ovat paljon mukavampi työskennellä kuin tavallinen taulukot ja rivit. Esimerkiksi nyt kun minulla on kommentti ehkä ja haluan napata sen emoyhtiön postitse ja en ehkä kommentoida nuoli postitse niin se todella antaa minulle viesti esine vastaa todellista vanhempi viesti, ei vain joidenkin ID, jota en olisi muutoin käyttää ja tehdä toinen SQL-kysely napata postitse joka on hankala ja tarpeeton. Ja lisäksi, kartoittamalla kaikki nämä tiedot rivejä esineitä, Voit myös liittää enemmän toimintoja esineisiin, joten esimerkiksi puhuin kuinka luokat ovat pääosin ryhmittymiä toimintoja. Voit ajatella sitä niin. Esimerkiksi, ehkä minulla on tämä viesti esine, ja ehkä haluaisin olla jonkinlainen toiminto kiinnitetty siihen että pohjimmiltaan kertoo minulle on se julkaisi hiljattain? Oliko se postitoimistoon viime viikolla, totta vai tarua? Ja se funktio voin liittää kiinni, että esine, ja se on todella mukava olla se samassa paikassa, ja on olemassa monia eri toimintoja voit luoda näitä esineitä, ja se on todella mukavaa pystyä liittää sen luokan, esineeseen, kun taas jos vain oli rivit tulevat tietokannasta, niin et voi oikeastaan ​​kiinnitä mitään toimintoja siihen. Se on kirjaimellisesti vain tietoja. Kysyttävää lainkaan? Orms ovat hyvin yleisiä web-kehitys, ja siellä on paljon erilaisia ​​Orms, ja Kohana on oma ORM. Se on hyvin yksinkertainen, mutta saat maistaa miltä se näyttää. Luodaan malli meidän blogikirjoitusta, ja ensimmäinen asia, joka meidän täytyy tietenkin tehdä, on luoda todellinen pöytä meidän tietokanta todella tallentaa myös tietoja niitä virkoja. Ensimmäinen asia, aion tehdä, on mennä phpMyAdmin. Oletteko käyttää phpMyAdmin ennen? Okei, mahtava, joten te jo tiedä mikä se on, ja aion luoda uuden taulukon nimeltä Kohana Viestit, ja se tulee olemaan todella yksinkertainen. Minun täytyy takaisin sisään Kaikki aiomme tehdä tänään, on olla kirjailija ja ruumiin, vain pitää asiat yksinkertaisina. Aion luoda, että taulukon ja nyt meidän on vain taulun meidän viestiä 2 kentät kirjailijaesittelyjen ja kehomme. Toinen asia aion tehdä nyt määritän web-sovellus, joten se tietää miten yhteys tietokantaan, ja tämä taas on jotain, sinun täytyy tehdä kaikkien web-sovellukset. Sinun täytyy kertoa se käyttäjätunnus ja salasana ja tietokannan nimi ja niin edelleen ja niin edelleen selvittää, miten itse yhteyden tietokantaan. Vuonna Kohana, meillä on jotain kutsutaan tietokantamoduli, ja kokoonpanon kansiossa meillä on tämä kansio nimeltä Database, ja kuten näette, on olemassa joukko asetuksia, sinun täytyy antaa tässä kertoa se, mitä on käyttäjätunnus ja salasana tietokannan joten en voi itse muodostaa siihen. Ja koska en halua te todella tietää käyttäjänimi ja salasana tietokannasta, Minulla on tiedosto, jossa olen jo asettaa sen kaiken, ja aion kopioida ja liittää sen yli. Mahtava. Okei. Luulen, että kaikki asetukset minun pitää tehdä, mutta katsotaan. Me jatkamme työskentelyä siinä, ja jos jotain kaatuu, sitten me korjata sen. Nyt mitä aion tehdä, on Aion luoda uuden ohjaimen. Tai oikeastaan, sorry. Ensimmäiseksi täytyy luoda uusi malli. Tulen luoda uusi malli nimeltään Post.php, ja mitä aiomme tehdä, on aiomme kutsua sitä luokkaa Model_Post. Hanki joitakin syntaksin korostus, ja niin kun sanon, "ulottuu ORM," se on pohjimmiltaan hieman olio-ohjelmointi, joka valitettavasti te ole oppinut CS50 vielä, mutta se on melko helppo poimia. Se antaa minulle kaiken tämän lisätoimintoja, joka tulee tässä ORM-paketti, ja niin saan kasan lisätoimintoja ja vaikka mitä ilmaiseksi, jonka näet hieman toisessa. Juuri nyt oikeastaan ​​kaikki mitä tarvitsee tehdä on luoda tähän luokkaan. En edes tarvitse tehdä mitään toimintoa tai mitään, mutta olen luonut luokan, joka edustaa pöytä, ja koska olen jatkanut tämän ORM luokka, Saan nippu asioita ilmaiseksi, joten nyt sinun ei tarvitse määrittää mitään paremmin ajan. Ja nyt, mitä aion tehdä, on Aion luoda uuden ohjaimen, jonka aion nimetä blog.php, ja aion kopioida Tervetuloa ohjain joten minun ei tarvitse kirjoittaa uudelleen joitakin juttuja, ja nyt minun täytyy nimetä tätä. Nyt mitä aion tehdä testata varmistaa, että kaikki toimii ulos, Aion napata ensimmäinen viesti minun tietokannasta ja tulostaa elin viesti ruudulla. Voit tehdä, että mitä aion tehdä ensin on aion tallentaa viestit muuttujaan niin mitä aiomme tehdä, on - vuonna Kohana mitä tehdä, on napata post kohde se on aika hankalaa, mutta sinun täytyy tehdä tämä asia sanottu ORM :: tehdas, ja sitten ohitat nimissä mallin haluat, ja se palaa ORM esine, joka edustaa tätä mallia. Ja sitten, kuten sanoin, kun laajennamme ORM esine, saamme kaikki nämä menetelmät ilmaiseksi, joten esimerkiksi saamme tämän uuden toiminnon nimeltään "löytää kaikki" joka palautuu automaattisesti jokaista virkaa tietokannasta, joka on melko kätevä. Ja nyt kehon aion palata ensimmäinen viesti ja palauttaa sen elin. Ja tietenkin, minun täytyy luoda postitse, joten katsotaanpa lisätä uusi viesti. Sanon, "Brandon, minun ensimmäinen viesti." Mahtava. Ja nyt me aiomme mennä blogit ja jos kaikki toimii hyvin - Voi, tämä on jokin muu tyhmä tiedosto lupaa asia uudelleen. Odota 1 sekunti. Se on tavallaan absurdia. Siellä mennään. Okei. Korjasin että lupa ongelma. Se yrittää luoda joitakin tiedostoja ja joitakin loki, ja käyttöoikeudet, jälleen, eivät oikein asetettu, joten tein sen joten kyseiset tiedostot olivat kirjoitettava ja suoritettavan joten se voisi todella loki asioita. Nyt se antaa minulle toinen poikkeus sanonta, "class ORM ei löydy," ja se on koska unohdin toinen askel. Se on liian huono. Vuonna bootstrap kansion tiedosto on olemassa näitä moduuleja täällä, joista voit valita käyttöön tai pois käytöstä. Nämä ovat joukko erilaisia ​​ominaisuuksia, joita voit halutessasi käyttää kuluessa Kohana, joka on tavallaan mukavaa. Esimerkiksi ne ovat autentikointimoduuli jota voit käyttää käyttäjien todentamiseen. Heillä on välimuistia moduuli jos haluat toteuttaa jonkinlainen välimuistin loppupäätä tehdä hakemus nopeuttaa työtä ja vaikka mitä. Meidän tulee aktivoida tietokantaan ja ORM-moduuli, koska kuten sanoin, käytämme tietokanta, tietenkin, ja meidän on oltava käytössä ORM-moduuli, koska haluamme olla lisätoimintoja, joka on mukava olla. Kaikki minun täytyy tehdä, on seur. ne 2 riviä, ja jos nyt päivittää, se antoi minulle toisen virheen. Siinä sanotaan, "luokka Model_Post ei löydy." Nyt tämä on hyvä ongelma on. Katsotaanpa. Sen julkistamisesta. No Odota. Voi, rakas. En tiedä, miksi se ei voi todeta, että. Se on todella outoa. Minulla on tässä luokassa täällä. Luulen joutua - oh. Olen niin tyhmä. Unohdin lisätä PHP tag. Siksi. Nyt minun täytyy kumota, että 1 muutos tein. Okei. Siellä mennään. Se oli todella typerä. Minulla ei ollut aukko PHP-koodia. Mutta kuten näette, nyt se toimii kunnolla, eikö? Meillä on 1 viesti. Meillä tarttui ensimmäinen viesti, ja nyt me tulostaa sen elin. Suuri. Fantastic. Kysyttävää tähän mennessä? Ehei? Kaikki kysymykset? Okei, joten olemme juuri luonut viesti malli, hyvin yksinkertainen, ja aiomme lisätä joitakin toimintoja myöhemmin. Voimme lisätä vahvistusten ja suodatus. Vahvistukset ovat yksi niistä asioista, että puitteet ratkaista sinulle todella, todella hyvin, ja en usko te piti tehdä tämä teidän CS50 PSET, mutta jos teet Web-kehityksen lopullisessa projektissa, olet todennäköisesti menossa halua tehdä jonkinlainen validointi, kuten ei ole tyhjä käyttäjätunnuksia, ehkä ottaa salasanaa, jossa on ainakin jonkin verran pituutta, tuollaista. Ja se on todella hankalaksi toteuttaa näitä asioita itse, ja melko paljon joka ikinen web kehys tekee sen puolestasi ja voit tehdä sen erittäin puhdas tapa. Ja malli on, jos yleensä ilmaista nämä tarkistussäännöt koska se validointi onko malli on voimassa vai ei. Mutta nyt aiomme laittaa että vasta myöhemmin, ja nyt olemme menossa töihin toiseen osaan, ja aiomme yrittää tehdä uuden näkymän joka listaa kaikki viestit. Vaiheet mukana tekemässä uuden kanteen, jossa luetellaan kaikki viestit on napata listan kaikista viestit ja sitten tehdä luettelo kaikista virkaa mieltä. Juuri täällä, onneksi tarpeeksi, olemme jo tarttui kaikki viestit tällä ensimmäisellä rivillä, löytää kaikki toiminta, Ja nyt, mitä aiomme tehdä, on toistaiseksi Olen suoraan asettamalla rungon vasteen johtamalla merkkijono, mutta nyt haluan käyttää näkymän, ja ero näkymä ja juuri tekemässä tätä on, jotta voin olla mukava, iso HTML-malli, ja mitä voin tehdä, on läpäistävä sen tiettyjä muuttujia ja sitten ovat sitä mieltä automaattisesti kansoittavat sen malli käyttää näitä muuttujia. Mitä minä teen on minä luon uuden näkymän, ja minä nimetä mielestä jotain "blog / index" ja aion periaatteessa sitoa tähän - oh, mitä minä kirjoitan? Omat aivot on jossain muualla. Aion sitoa virkaa muuttuja mielestä joten näin näkymä on pääsy tähän tehtävään muuttuja. Ja nyt minun täytyy luoda tätä näkemystä, joten tässä meillä on tämä kansio nimeltä "Näkymät" ja ensimmäinen, aion luoda uuden kansion, joka kutsui "blogi". Tämä on mukavaa. Näin voimme olla mukava hierarkia Suomen näkemyksiä. Ja sitten aion luoda toisen tiedoston siellä nimeltään "index.php." Mahtava. Tai oikeastaan ​​ne molemmat täällä. Making näkymä tiedosto on luultavasti yksinkertaisin osa tätä kokonaisuutta, ja nämä ovat todennäköisesti asioita olet jo tuttu. Me aiomme tehdä jotain todella yksinkertaista, aloittaa sanomalla: "Minun lista blogikirjoituksia." Sitten voimme mennä läpi, ja voimme kerrata läpi virkaa array, napata jokaista virkaa ja sanoa jotain - ehkä lisätä rivi ja sitten tulostaa kirjailija ja kehon. Että järkeä tähän mennessä? Ja katsotaan, jos se toimii. Mitään ei tapahtunut. Ihmettelen, miksi. Voi, kaipasin 1. askel. Erittäin typerä minua. Loin mieltä, mutta en ole asettanut näkymän vastausta, joten sinun täytyy tehdä 1 juttu. Sinun täytyy tehdä "tämän vastauksen elin" ja asettaa sen olevan näkymän. Siellä mennään. Meillä on otsikko, ja sitten meillä on viesti, ja ihan vain huvin vuoksi, nyt laita toinen viesti jotta voimme nähdä listan. Ja lisätä nämä 2 virkaa, ja nyt jos en päivitä sivu näemme kaikki nämä viestit täällä. Onko järkeä tähän mennessä? Joo, kysymys? Selvä. Kuten näette, olemme pystyneet erottamaan kaikki nämä koodit ulos eri osiin, ja voit nähdä sen kaikkein selkein näkemykseen koodi. Tämä tiedosto täällä joka edustaa näkemys, se vain välittää edustavat tietojen näyttämistä varten. Se saa siirtää jonkinlaista tietoa, ja kaikki se on vain näyttää sen sinulle. Kaikissa muissa osissa koodin, sinun ei tarvitse murehtia mitään siitä, ja samoin mieltä koodia ei tarvitse huolehtia mitään miten käyttää tietokantaa ja niin edelleen ja niin edelleen, joka on todella hyvä ja tekee koodi paljon enemmän huollettavia. Kuten sanoin, näkemyksiä, he ovat dynaamisia, että se on 1 tiedosto, mutta se tuottaa erilaisia ​​näkemyksiä muuttujiin perustuvien olet itse kulkea, ja lisäksi on olemassa paljon erilaisia ​​auttaja-toimintoja että voit käyttää auttaa sinua kirjoittaa koodia nopeammin, jonka minä näytän sinulle vain toisen. Joo. [Opiskelija] Niin 0dollari on ohjain, eikö? Tämä toinen asia. Kysymys on on 0 dollaria ohjain? 0 dollaria on vaihteleva olen luonut täällä. Loin mieltä ensin. Olen valittu sen johonkin muuttujaan. Sitten ohitin sen tätä toimintoa, aseta se elin vastausta. Onko järkeä? [Opiskelija] Niin on näkymä :: tehdas, on näkymä kuin luokan tai kirjastossa [kuultavissa] tehdastoiminto? Kysymys on näkymä :: tehdastoiminto, ja periaatteessa tämä on hieman olio-ohjelmoinnin oleellisesti. Näkymä on näkymä luokka, ja se on menetelmä nimeltä "Factory" ja se tapa napata esine, joka on nimetty "blog / index." Ja se on hieman olio-ohjelmointi kamaa että en aio mennä täällä liikaa. Nyt ilmeisesti, haluamme luoda uusia viestejä, mutta emme halua tarvitse tehdä sitä kautta tietokantaan, joten aiomme luoda uuden toiminnan luomiseen uusi viesti, ja siellä on paljon tavaraa meidän on tehtävä. Ensimmäinen asia, aiomme tehdä - katsotaanpa puuttua nämä asiat yksi kerrallaan. Ensimmäinen asia teemme on meidän täytyy luoda lomakkeen asettamiseksi uusi viesti, mutta olen myös menossa lisätä uusia toimia ensin, joten lisäämällä uusia toimia yhtä helppoa kuin lisäämällä uusi toiminto ohjaimen, ja nyt aion tehdä jotain hyvin yksinkertainen, vain napata tämän näkemyksen ja lähettää sen, vain näyttää sen sinulle. Ja sitten nyt aion luoda uuden näkymän tiedoston, ja aion alkaa kirjoittaa joitakin juttuja. Mikä on mukavaa noin Kohana on, että ne tarjoavat paljon erilaisia ​​auttajatoiminnot voit kirjoittaa katso koodia helpommin, ja 1 niistä auttajatoiminnot tai auttaja moduulit on noin kirjallisesti lomakkeita. Kirjoittamiseen muotoja, en todellakaan tarvitse suoraan kirjoittaa mitään HTML itseäni. Olette kirjoitettu HTML muotoja. Te tiedätte, miten se voi olla todella, todella kivulias ja hankala kirjoittaa muotoja. Se ei ole hauskaa, niin onneksi Voimme periaatteessa kirjoittaa muodossa käyttäen Kohana n muodostavat auttajatoimintoja tekee sen puolestamme. Aiomme pohjimmiltaan on kenttiä joka ikinen asia meillä on, joten yksi tekijöille ja yksi elimissä. Aiomme olla tarra, ja me aiomme olla tuloon. Ja sitten lopuksi, me aiomme olla jättämisestä. Ja kuten näette, tämä on paljon puhtaampaa kirjoittaa kuin kaikki sotkuinen HTML, joka on tavallaan mukavaa. Myönnettäköön, on olemassa muita web puitteet, joilla se jopa puhtaampaa kuin, että mutta ainakin tämä on parempi kuin kirjallisesti HTML itse. Mahtava, joten tämä on mitä näet. Se on aika sotkuinen, joten aion lisätä rivinvaihdon siellä tehdä, että näyttää hieman mukavampaa. No, tietysti, se näyttää silti todella, todella huono, mutta me vain keskittyneet toiminnallisuuteen nyt eikä estetiikkaa. Ei ole aikaa tehdä kaikkea. Ja kuten näette, nyt meillä on erittäin perusmuoto, joka on tavallaan mukavaa. Tämä koodi Sanoisin on puhtaampaa kuin yrittää kirjoittaa HTML-lomakkeen itse, niin se on mukavaa. Mitä seuraavaksi? Nyt meidän täytyy tehdä asioita toimintaa. Normaalisti kun kirjoitat HTML-lomakkeita, sinun täytyy kertoa se mihin se on menossa toimittamaan lomake. Oletuksena useimmissa web puitteet, se esittää täsmälleen sama URL, joten asia on, jos lähetät GET pyynnön / blog / uusi, se pitäisi näyttää sinulle muodossa, mutta jos lähetät postitse pyyntö / blog / uudet tietojen kanssa, että se todella yrittää pelastaa kyseiseen virkaan ja tehdä jotain sen kanssa. Mitä aiomme tehdä, on periaatteessa kaikki meidän täytyy tehdä tarkistaa, onko se postitse pyynnöstä tai GET-pyynnön on tarkistaa, mitkä ovat post muuttujat voit asettaa. Ja jos viesti muuttuja on asetettu, niin aiomme yrittää luoda uusi viesti. Jälleen me vain tehdä tämän, ja joka luo uusi viesti, ja me kirjaimellisesti menossa asettaa sen aloilla, kuten tämä, ja sitten me aiomme pelastaa sen. Ja sitten aion suunnata hakemistosivulle jotta he voivat nähdä lista viestiä uudelleen. Kokeillaan sitä. Sanon, "Brandon" ja sitten antaa viesti, ja jos kaikki menee hyvin, kuten näette, se ohjataan minut etusivulle, ja jos en siirry pohjaan, meillä on viety uusi viesti. Jee! Joo, kysymys. [Opiskelija] Mitä jos olisit kirjoittanut täsmälleen sama asia annoit ennen? Onko varmista et ole päällekkäisiä Samassa lausunnossa? Olla oletuksena, ei, koska oletuksena - Anteeksi, kysymys on, jos annat täsmälleen saman datan muodossa ja väittävät, että se avulla voit lisätä kahtena objekti, kaksoiskappale, lähinnä? Juuri nyt, kyllä, se antaa sinun tehdä niin, koska tietokantoihin se on täysin voimassa olevan täysin päällekkäisiä rivejä, mutta jos se on huoli, voit lisätä vahvistukset, esimerkiksi varmistaa, että jos se on täsmälleen sama kuin jotain, joka on jo olemassa, sitten sanoa, että se on virheellinen esine, ja sitten voit myös määrittää oman virheilmoituksen ja sanoa, "Virheellinen koska tämä on jo olemassa" tai jotain sellaista. Mutta tässä tapauksessa, voisin vain luoda jotain päällekkäisiä. Kokeillaan ja lisätä joitakin vahvistukset. Ongelmana tässä nyt on, että Voisin kirjaimellisesti esittää täysin tyhjä viesti. Voin napsauttamalla tätä painiketta juuri nyt, ja siellä mennään. Et voi todella nähdä sen, mutta tämä ylimääräinen linja täällä tarkoittaa, että I kirjaimellisesti uusi viesti. Se vain on tyhjä kirjailija ja tyhjä runko, ja emme halua antaa ihmisten tehdä sitä. Tämä on, jos validointi tulee sisään Voin mennä minun malliobjektin, ja nyt voin lisätä uuden toiminnon, joka määrittää mitä kelpoisuussäännöt Lisäisin tähän malliin varmista, että se on voimassa tai täsmentää, mitä se tarkoittaa olla pätevä virkaan? Ja haluan sanoa, että se on vain pätevä virkaan, jos sekä kirjailija ja kehon eivät ole tyhjiä, ja näin teet sen Kohana. Luot uuden toiminnon nimeltään "Säännöt" ja sitten et periaatteessa palaa assosiatiivisia array joka määrittelee validointisääntöjen tämän objektin. Aiomme palata jono, ja sitten mitä aiomme tehdä, on sanoa "kirjailija", se menee array, joka menee toiseen array nimeltään "ole tyhjä." Ja sitten aion sanoa "elin." Okei, ja syntaksi tämän ja rakenne tämän voivat hieman hankalaa ja hieman monimutkainen. Jos luet dokumentaatio, se on melko helppo selvittää, Mutta pohjimmiltaan tämä on mitä sinun tarvitsee tehdä määrittää Joissakin kelpoisuussäännöt, ja siellä on paljon erilaisia ​​sääntöjä että Kohana antaa sinulle ilmaiseksi, kuten voit lisätä sääntöjä sanoa sen täytyy olla vähintään tämä pituus. Ehkä sen on oltava numeerinen. Ehkä sen täytyy olla alfa numeerinen. Ehkä sen on oltava enintään tämä pituus, niin edelleen ja niin edelleen. On olemassa paljon erilaisia ​​sääntöjä, jotka Kohana tarjoaa sinulle, ja voit mennä niiden verkkosivuilla, katso dokumentaatio, ja voit nähdä kaikki eri asioita, joita voit tehdä. Mutta tämä on kaikki minun täytyy tehdä, ja nyt katsotaan, mitä tapahtuu jos jätän tyhjän postitse. Mitä tulee tapahtumaan? Voi ei, saan virheilmoituksen. Saan validointi poikkeus. No, se on hyvä. Se kertoi minulle, että malli ei kelpaa, mutta en halua näyttää poikkeus minun käyttäjille, kun he yrittävät esittää jotain kelpaa, eikö? Haluan antaa heille jonkinlaista ystävällisempi virheilmoituksen kun jotain menee pieleen. Mitä aiomme tehdä, on aiomme kääri kaiken yrittää saalis silmukan. Oikeastaan, mielestäni tämä on myös jotain et ole oppinut vielä vuonna CS50, koska C, ohjelmointikieli C, ei ole poikkeuksia, mutta lähes jokainen muu kieli on poikkeuksia, niin todella, todella lyhyesti, Poikkeuksena on jotain, että koodinpätkä voi heittää poikkeus, kun jotain menee pieleen, mutta sitten ehkä joitakin muita koodinpätkä ylempänä voi saalis että poikkeus ja tehdä jotain sen kanssa. Esimerkiksi tässä tapauksessa koodinpätkä, joka yrittää pelastaa malli, se vahvistaa mallia, ja jos se sanoo: "Okei, tämä malli ei kelpaa" se tulee heittää poikkeus, ja tämä on tavallaan vastaa C saatat palauttaa -1 tai jotain. Ja sitten minulle, tämä toiminto, minun koodi korkeammalla tasolla, voin yrittää ja saalis että poikkeus ja periaatteessa sanoa, "Okei, jos saan kiinni poikkeus, mitä aion tehdä?" Tai voisin jättää kiinni, että poikkeuksen ja antaa jonkun ylempänä saalis poikkeus eli jos kukaan nappaa sen, sitten koko ohjelma kaatuu ja sanoo, "Jokin meni vikaan, ja en voinut käsitellä sitä." Mutta mitä teemme, on käärit koodinpätkä yrittää estää, ja sitten myös lisätä jotain kutsutaan catch, joka on eräänlainen koodi, joka yrittää ja saalis poikkeuksia, joita voi esiintyä. Joten jos saan kiinni tässä poikkeus tai mitättömäksi poikkeus, niin mitä aion tehdä, on Aion asettaa virheitä - Luulen, että se, miten teen sen - ja aion asettaa virheiden jonkun esineen. Ja sitten mitä aion tehdä, on, jos se osuu tämän poikkeuksen, se ei tule ohjata, ja jos se ei ohjaa, se tulee tulemaan ulos, jos blogi ja iski tämän blogin / uusi, joka haluaa haluan tehdä. Jos on virhe, niin haluan mennä takaisin muodossa ja näyttää ne virheet. Nyt mitä haluan tehdä, on haluan niinä virheitä näkymään. Okei, olen mielestäni mieltä täällä, ja periaatteessa haluan näyttää ne virheet, jos niitä on olemassa. Ennen kuin kirjoittaa HTML, että aion todella nopeasti näyttää, mitä rakennetta virheet muuttujan näyttää, ja tämä on hyvä käytäntö yleensä. Paljon kertaa saat jotain takaisin jotain menetelmää, jokin funktio web puitteissa, ja et tiedä mitä muuttuja näyttää, joten et tiedä, miten työskennellä sen kanssa. Aion käyttää tulosta r tapa pohjimmiltaan tulostaa sen. Ja kuten näette, se kertoo minulle se on osakkuusyritys array, ja sinulla on avain, kirjailija, viittaa tähän merkkijono, tekijä ei saa olla tyhjä, ja toinen keskeinen, body, osoittaa jälleen merkkijono, laitos ei saa olla tyhjä. Olen kuin, okei, viileä. Sitten voin kerrata läpi array ja tulostaa jokaisen viestin. Se on pohjimmiltaan kuin assosiatiivisia array nippu viestejä. Mitä aion tehdä, on "jos virheitä" ja aion luoda Järjestämätön lista, ja aion kerrata läpi kaikki virheet. Ja tämä, ja nyt aion yrittää antaa tätä uudelleen, ja katsotaanpa mitä saamme. Nyt saamme tämän mukava lista virheistä, ja tämä on vielä melko ruma, mutta tämä ilmeisesti voidaan muokata hyvältä, mutta perusajatus on vain muutaman rivin koodia, pystyimme vahvistamaan meidän mallimme, varmista, että tietyillä aloilla olleet tyhjiä, ja jos jotain meni pieleen, sitten palata jonkinlainen virheilmoitus Voisin sitten esittää takaisin käyttäjälle. Voit myös muokata validointi niin että voit itse olla virheilmoitus joka on tarkempi hakemukseesi tai jotain. Kaikki tämä on yleensä muokattavissa. Valitettavasti meiltä loppuu aika, joten aion pitää leikata pois live koodaus istunnon täällä. On olemassa joukko muita ominaisuuksia, jotka haluan osoittaa sinulle tässä esimerkissä. Esimerkiksi voit lisätä malleja sivustoon, joten ehkä siellä on jonkinlainen HTML-koodi, jonka haluat hakea jokaiseen sivuston sivuun, ja sen sijaan liittämällä että jokaisessa näyttötiedoston sinulla, joka ilmeisesti olisi huono käytäntö, voit periaatteessa määrittää näitä malleja, ja sitten ohjaimen sanoa, "Okei, olen käyttäen tätä mallia." "Ovatko kaikki näkemykseni käyttää tätä mallia." Ja viimeinen asia, jonka haluan osoittaa teille, samoin että meillä ei ole aikaa on cross-site scripting, ja pohjimmiltaan mielestäni sinun kaverit ovat luultavasti nähneet CS50 - Mielestäni David Malan luultavasti puhui siitä, miten voit yleensä pistää JavaScript-koodinpätkä - Oletko puhunut tästä? Ehkä? Ehkä ei? Mutta paljon kertaa voit pistää haitallisen JavaScript-koodin jonkun tietokantaan, ja jos he eivät pakene, että asianmukaisesti, sitten kun ne esittävät, että tiedot takaisin käyttäjälle, niin se voi ajaa jonkinlainen satunnainen JavaScript-koodia et halua tapahtuvan, ja aioin osoittaa, miten haluat tehdä sen sisällä Kohana. Se on oikeastaan ​​todella, todella helppoa. Voisin tehdä sen nyt 2 sekunnin kirjaimellisesti. Kaikki mitä sinun tarvitsee tehdä on pohjimmiltaan kääri näitä asioita Tässä asia sanottu HTML yhteisöihin. Ja joka automaattisesti paeta kaikki merkit oikein ja varmista, että et saa tätä ongelmaa. [Opiskelija] kirjoitit ensimmäisen testin väärin. [Brandon Liu] Voi, oho. Okei, siinä kaikki minun piti kertoa teille tänään. Nämä diat aiotaan lähetetty, mutta nämä ovat yleensä vain resursseja sinun pitäisi todellakin täytyy päästä alkuun Kohana. Voit mennä verkkosivuilla. Heillä on käyttöohjeet, ja heillä on myös API tutkimusmatkailija. Voimme tutkia kaikkia eri toimintoja ja auttajatoiminnot ne ovat sinulle. Ne on yleensä tarpeeksi tietoa verkkosivuilla että voit päästä alkuun ja lähteä Kohana. Niitä ei ole kovin monia opetusohjelmia, luulen, Kohana ulkopuolella mitä heillä on sivuilla täällä, joten tämä on luultavasti paras vaihtoehto. Mutta jos haluat mennä web puitteet ja et halua olla poimia uuden kielen, ja haluat jotain, joka on suhteellisen kevyt ja siinä on helppo oppimiskäyrä, Haluan ehdottomasti ehdottaa Kohana. Se on luultavasti paras tarjoaminen että. Hassua kuitenkin on, jos käytimme Ruby on Rails, olisimme voineet jäljitellä mitä me vain teimme ja luultavasti enemmän alle 3 minuuttia. Ei vitsi, mutta oppiminen Ruby on Rails vie paljon kauemmin kuin se veisi oppia Kohana. Se on pohjimmiltaan valinta, mitä haluat valita oppia, mutta jos haluat päästä vauhtiin nopeasti, Kohana on varmasti erittäin hyvä valinta. Viimeisiä kysymyksiin ennen päädymme? Kyllä. [Opiskelija] Miten voimme integroida että in CSS puitteet kuin käytit kun olit opastaa? Kysymys kuuluukin, miten voisimme yhdistää, että CSS puitteet? Mitä olisimme luultavasti vain olisimme luultavasti sisältävät uusi kansio, johon me dumpata kaikki CSS-tiedostoja, ja sitten olimme myös lisätä uuden mallin. Vuonna malli olisimme kuuluvat ne CSS-tiedostot varmista, että he viitattu jokaisesta sivusta, ja sitten kun itse kirjoitat HTML, sinun tarvitsee vain lisätä oikeisiin luokkiin ja vaikka mitä, ja esimerkiksi silloin, kun käytät jotain muodossa auttaja-toiminnon avulla voit lisätä parametreja jälkikäteen määritellä, mitä luokkia haluat liittää eri asioita jotta he voisivat tyyli se oikein, ja se on pohjimmiltaan miten menisi. Muita kysymyksiä? Mahtava. Kiitos ajastanne, ja kiitos että tulitte. En aio lisätä paljon muuta, mutta 1 todella nopea asia on meillä ei ole linkki lomakkeeseen. Todella tyhmää. Katsotaanpa lisätä - itse asiassa sitä mieltä, blogi, indeksi, Katsotaanpa todella nopeasti lisätä linkin, joka menee uudelle sivulle, sivulle, jossa voimme lisätä uusi viesti. Me aiomme tehdä tämän. Mitä mukavaa on on tämä koko joukko HTML auttajatoiminnot jotka tekevät erilaisia ​​asioita sinulle, niin olet jo nähnyt yhteisöt tässä tapauksessa toimi, mutta niillä on myös toiminto nimeltään "ankkuri" jonka voit kirjoittaa blog / uusi ja sanoa, "Lähetä uusi blogi." Ja se loisi että linkin sinulle, ja tämä näyttää todella triviaali tehdä, mutta tämä on mukavaa, koska oletetaan, että olet siirtymässä sivuston 1 alueesta toiseen. Ja jos vain kirjoittivat URL-osoitteet itse, niin olisit muuttaa kaikki URL-osoitteet. Tai ehkä siirtänyt sen 1 alikansio toiseen alikansioon. Sinun olisi pitänyt vaihtaa kaikki URL-osoitteet itse, ja se ei ole hauskaa. Voit käyttää tätä ankkuri täällä, ja voit vaihtaa verkkotunnuksen tai alikansio etuliite asetustiedostoon kerran, ja sitten se soveltaa tätä kaikkialla, ja tämä on jälleen hyvä esimerkki älä toista itseäsi, kuivaus koodin ulos. Missä olet toistamalla itse, yrittää poimia jonkinlainen asetustiedosto tai toinen toiminto ja on se hoitaa sen puolestasi. Ja aivan viimeinen asia, jonka halusin näyttää teille oli Oletetaan olemme takaisin tämän jälkeen, ja minulla oli säveltänyt joitakin todella pitkä essee, mutta unohdin kuuluu minun kirjailija. Nyt kun klikkaa "Lähetä viesti" Olen juuri menettänyt kaiken. Ei! Todella surullista. Niin miten voit käsitellä asiaa? Tämä on mitä teemme. Mitä teemme, on täällä näiden tulo-ja teksti-alueen toiminnot, jos mukaan toisen parametrin, niin arvo, että toinen parametri tulee olemaan mitä kenttä aiotaan aluksi asuttuja. Mitä voisimme tehdä, on blogissa ohjain, voisimme sitoa toisen muuttujan. Kutsuvat sitä "arvoja" ehkä. Ja kulkea post array, kirjaimellisesti. Tämä tarkoittaa sitä, että jos vahvistus epäonnistui, pass minulle postitse array, että olen esittänyt viimeisestä pyynnöstä ja näin voin käyttää arvoja minun viimeisen esityksen kansoittamaan kentät. Nyt voin tehdä jotain arvoja tekijä ja arvot elin, ja siten nyt jos teen joitakin satunnaisia ​​juttuja ja klikkaa "Lähetä viesti", niin se pysyy siellä. Mutta aiomme törmätä toiseen ongelmaan. Joka toimii, mutta jos menen sivulle ensimmäistä kertaa, se tulee kaatumaan, ja se johtuu aivan ensimmäistä kertaa menemme sivulle, tämä viesti muuttujaa ei ole vielä määritelty. Se on null. Sitä ei ole olemassa. Ja mitä haluamme sanoa on, jos tämä avain on olemassa, sitten palata arvo tämän array, mutta jos avainta ei ole, palauta tyhjä merkkijono. Se toiminnallisuutta haluamme täällä. Haluamme tarkistaa, jos avain on olemassa, ennen kuin yrittää käyttää array, ja onneksi tarpeeksi, Kohana myös antaa meille auttajatoiminnon että. Heillä on tämä koko sarja toimintoja nimellä ARR, lyhyt jono, ja heillä on 1 toiminto nimeltään "päästä" ja voit kulkea array, ja voit kulkea näppäimen nimi. Sitten pohjimmiltaan mitä se aikoo tehdä, on se yrittää saada, että avain, mutta jos avain ei ole olemassa jono, niin se palaa tyhjä, tai voimme myös määrittää oletusarvoisesti, uskon, mikä on mukavaa. Nyt jos teemme saman uudestaan, sitten näet nyt se toimii ensimmäistä kertaa, ja taas, jos me kirjoittaa joitakin satunnaisia ​​juttuja ja yrittää esittää, niin se pysyy siellä. Ja kai voi myös näyttää, miten lisätä malliin todella nopeasti. Mitä voimme tehdä ensimmäinen on voimme lisätä uuden näkymän nimeltään "template.php" sisällä Näkymät kansion ja mitä aion tehdä, on Aion tulostaa jotain nimeltä "sisältöä" joka tulee olemaan minun tärkein sisältö. Ja ehkä alareunassa aion lisätä vaikkapa tekijänoikeus. [Äänetön opiskelija kysymys] [Brandon Liu] Ehkä tämä on erittäin perus malli haluan käyttää. Haluan olla kansio tekijänoikeudellista jokaisesta sivulla, ja nyt mitä aion tehdä sisällä ohjain on nyt sen sijaan sanoi, "ulottuu Controller" Aion sanoa, "ulottuu Controller_Template" ja nyt sen sijaan sanoi, "vastaus on sama kuin rungon Tämän näkemyksen" Aion sanoa, "tämä malli sisältö on -" ja mielestäni - laitan yhtäläisyysmerkki? Unohdan. Joo, ajattelin niin. Ja nyt minä asetettu, että sisältö muuttujan yhtä suureksi mieltä. Voin tehdä saman täällä. Ja jos nyt virkistää, näet nyt tämä tekijänoikeus lisätään siellä, ja vain tehdä joitakin satunnaisia ​​postitse ja sitten uudelleen, sinun pitäisi nähdä, että tekijänoikeus on aivan sivun alareunassa. Suuri. Siinä kaikki Halusin näyttää teille. [Suosionosoituksia] Kaikki kysymykset? [CS50.TV]