>> [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]