[Mintegia] [Kohana: A Besodun PHP Esparru] [Brandon Liu] [Harvardeko Unibertsitateko] [Hau CS50.] [CS50.TV] Kaixo guztioi. Nire izena Brandon da. Junior bat naiz hemen unibertsitatean egiten informatika, eta gaur egun ari gara konparazioak egiteko Kohana, que a PHP web garapenerako esparrua da. Gaur da zuzeneko kodetze mintegi bat izango da, naiz, beraz, funtsean, 5-10 minutu igaro nahi Kohana zer den azaltzen du, eta ondoren, naiz literalki blog super sinple bat eraikitzeko joan hementxe literalki hutsetik zuretzat. Kodea deskargatzeko Kohana web orritik goaz, eta ari gara blog bat eraikitzen hasteko, eta, zorionez, oso hezigarria izango da, duzu ikusten duelako izango agian, agian akats batzuk egin dut, eta ikusiko duzu berreskuratzeko haiengandik me, edo nire pentsamendu prozesua ikusiko duzu eraikitzeko dut blog honen bidez, eta bestalde, ere lor esparru bera ezagutzen duzu. Zorionez oso hezigarria ariketa bat besterik ez da izango. Lehenik eta behin, zer zehazki esparru bat da? Duzun izan CS50 hartzen bada, orain arte, ez duzu benetan edozein lan egin marko oraindik, eta gauza da hau. Ziurrenik duzun egindako 1 web garapenerako pset dagoeneko, eta demagun webgune eraikitzeko eta eraikin webgune mantentzeko jarraituko duzu. Gauza batzuk nabarituko hasten zara. Nabarituko duzu lehenengo gauza da, seguruenik ari zaren gauza bera egiten behin eta berriz, denbora guztian, erabiltzailearen sarrera datuak garbitzea bezalako gauzak, zure fitxategiak antolatzeko modu jakin batean bezala gauzak. Ere izango duzu ziurrenik nabarituko Beste gauza da zure kodea oso, oso narratsa bihurtu has daitezke, eta utz dezakezu narratsa eta besterik ez dute denbora oso gogorra da mantenduz, edo zure kodea egituratzeko hasteko eta modular making dezakezu zenbait modutan atxikigarria gehiago egin zuen. Hau da, non web esparruak funtsean sartu ziren Duten webgune asko eraiki zuen pertsona horiek, esan dute "Ez dugu behar hau berregin bakoitza denbora webgune bat eraiki dugu." "Zergatik ez egin besterik ez dugu gauza horiek guztiak egiten duzula pakete bat aldi bakoitzean bakarra webgune bat eraiki nahi al duzu? " Web orri berri bat egin duzu, eta beraz, duzu zer zehazki bereziki web honi buruz da ardatz besterik. Ez duzu hainbat konfigurazio guztiak errepikatu behar eta kodeak bereizketa eta berridazketa kodea askotan duten webgune egiten ari zarela egin behar duzu. Ideia da esparru hori maila altuagoko kode bat idazteko aukera ematen du den behe-mailako xehetasunak kezkatu beharrik gabe. Behe-mailako xehetasuna baten antzeko zerbait izan liteke erabiltzailearen sarrera datuak garbiketa aurre. Hori ez luke benetan behar duzula kezkatu zerbait. Zure web esleipena zer da benetan buruz behar duzu arreta. Boilerplate kode handia ekiditen da. Zure proiekturako arkitektura bat da. Inork ezagunena The Model-View-Controller, izango litzateke horretatik dut buruz hitz egiteko bigarren batean joan. Eta asko aldiz esparru horiek prozedurak multzo bat embody, arauak, eta erabiltzen duzun praktika onenak beraz, web esparrua hartzen duzu Zure kodea idatzi modu jakin batean behar duzu, eta, oro har, bat printzipio multzo adostutako oro har onartu da izango komunitateak kodea idazteko modu ona da. Zure kodea gehiago atxikigarria, gehiago erabilgarria egiten du, abar eta abar. Eta, azkenik, zera nahi dut marko buruz azpimarratu liburutegiak versus kontrol inbertsioa buruzko ideia hori da, eta gauza da hau. Liburutegi bat eta marko bat arteko aldea dela liburutegi batekin oraindik ere, programa nagusia idazten ari zarenean, eta ari moduko liburutegia deitu duzun eta zerbait egin behar da zuretzat liburutegia inuocatzen. Liburutegi bat eta marko bat arteko aldea dela markoan hasten kontrol batera, eta zure kodea deitzen da, beraz, uste duzun bezala - hau da, zergatik esparru bat deitu zion - esparruan markoak eta egitura zure kodea eskaintzen du, eta zuloak bete dituzunean, eta honen itxurazko bihurtuko da bigarren batean ere ikusita niri kodea idatzi esparruaren testuinguruan hasteko. Ikusiko duzu hutsuneak dudala betez naiz, eta mota mugituz pieza guztiak mugitzen dituen esparrua, eta piezak jarri eskubidea lekuetan daukat. Gaur goaz Kohana buruz hitz egingo, hau da, PHP esparru ugarietako bat. Badira web-esparruak, eta badira batzuk ia hizkuntza bakoitza, eta biltzeko saioan Kohana Kohana da, dudarik gabe, zeren eta, oro har, PHPren errazena esparru recoger gisa aitortzen. Gehien arina da. Badira asko, ezaugarri gehiago etortzen diren beste batzuk daude, baina recoger zailagoa izan ohi dute. Eta, azkenik, Kohana MVC arkitektura erabiltzen du. Da arin nahikoa dugu literalki proiektu bat eraiki ahal eskuinera zure begien aurrean hementxe, eta nahiko askoz ahal duzun jarraitu batera nahiko erraz. Zer da MVC arkitektura? Model-View-Controller nabarmentzen da, eta agian kodearen uste baduzu Zuk izan, orain arte, idazten zure web garapena psets batzuk horietako batzuk ikusi ahal izango duzu, baina normalean denean idatziz hasten zara Web aplikazio konplexuagoa, 3 segmentu horien arteko zatiketa gero eta gehiago gatazka. Ezarri dut MVC hemen moduko pila bat bezala, eta askotan entzun ahal izango duzu jende pila buruz hitz web garapenean, eta hau da ideia ilustratzeko duten geruza bakoitzean, osagai bakoitza benetan saiatzen da bakarrik komunikatzeko beste 2 osagaien artean. Norbait zure webgunean sartzen bezero edo nabigatzaile baten gisa. Elkarreragin zure programarekin dute ikuspegi kodearen bidez. Ikuspegi kodearen kontroladorea elkarreraginean. Kontroladorea eredua elkarreraginean, eta eredua SQL datu-basea elkarreraginean. Eta han artean saltatzea ez da zure kodea behar bezala idazten baduzu. Zer egin gauza horiek? Eredua funtsean, zure datuak jorratzen kode zati da. Ezer da zure datu-base jorratzen, zuk gordetzen duten objektuak, edo datu-basean objektu horiek berreskuratzen, hori guztia eredu onartzen dituzte. Beharbada zure datu-baseko objektuak duzu. Eredu bati mezu egin beharrik sortzen goaz, beraz, post bat du ezaugarri batzuk izan ditzake. Mezu horiek gordetzeko edo mezu berreskuratzen inguruan funtzio izan ditzake edo mezu eta abar eta abar iragazketa, eta hori dela-eredua onartzen dituzte kodearen guztiek da. Kontroladorea aplikazioaren logika sort da, eta gauza ezberdinak asko ditzake aplikazioaren logika joan. Desberdinak API bat zurekin hitz egiten ari bada, duten non zaren aplikazioaren logika aurre ari izan daiteke. Duzu bertan hainbat eredu desberdinak dira datuak ekarri behar saiatzen ari bazara eta eduki horiek konbinatzeko nolabait, ohi duen kontroladorea maneiatzen ahal izango dira. Esaterako, Facebook-en, duzu laguna bada norbait, gero, agian, harreman hori ezartzeko egintza horretan kontroladorea bidez egin ahal izango dira. Eta azkenik, ikuspegian kodearen hori benetan zer ikusten duzun sortzen da. Aldiz asko uste dut CS50 psets in ez dute benetan animatzen you guys 3 gauza horiek bereizteko. Ziurrenik, fitxategi handi luze hori duzun non goialdean SQL kontsulta batzuk egin dituzu, eta agian prozesatzeko batzuk egin datuen arabera egindakoa berreskuratu basetik duzu, eta, ondoren, zure HTML guztiak duzu behealdean. Eta gero eta gehiago orrialdeak sortzeko duzun bezala aurkitu ahal izango duzu ari zarela kodea errepikapen batzuk izan dugu, eta, gainera, gauza da zure fitxategia lortzen benetan handia eta luzea eta unwieldy kudeatzeko bihurtzen. Zergatik MVC da hain ongi onetsia arrazoi zenbaki bat da. Lehenik eta behin, kezka bereizketa deritzo zerbait horrek ideia noiz behar duzun da - haien 1 kode zati 1 gauza egin behar du eta gauza bera egin, oso ondo, eta ez behar duzu gauza desberdinak egin duten kode zati konbinatzeko. Adibidez, ikusi kodea eta eredu kodea, dute esan, ez dute lotuta egon behar. Ez dute hemen fitxategi bera izan behar du, beraz, ezin duzu, bereizi itzazu beraz, mantentzeko erraza da. Beste gauza kode berrerabilpena da. SQL kontsulta bera idazten zaitez edo egiteko aurkitu ahal izango duzu Antzeko zalantzak duten 1 funtzioa sartu ahal izango dira, abstrakzioa, eta hori da ideia, eredu eta kontrolagailu atzean, izatea aparteko funtzio bat leku desberdinetan duzula berriro erabili ahal izango zure proiektuan. Eta, azkenik, hori zure kodea lehortzeko lotuta, edo ez zeure buruari errepikatuz, ez errepikatu zeure burua. Hau da garapenean oso ulergarria. Betiere, ezin duzu, ez duzu zeure burua errepikatzeko, zeuk errepikatu bada duzulako nahi,  askoz ere garestiak mantentzeko da. 1 gauza aldatu nahi baduzu, nonahi aldatu behar duzu, eta hori bugs eragiten du, eta izugarria da. Guztiak eskubidea. Zalantzaren hain urruti Kohana inguru guztietan? Handia. Orain ari gara hemen zuzeneko kode saioa murgiltzea joan, eta, zorionez, dena ondo. Webgune honetara funtsean eraiki dut nire urruneko zerbitzari bat, eta, era horretan you guys ere can on ikusi webgunea eta webgunean sartu, eta, gainera, ingurumena da nire urruneko makina baino hobeto konfiguratuta, ezazu Linux exekutatzen ari delako ordez OS X. Literalki ari gara hasteko. KohanaFramework.org. Kodea deskargatzeko web orritik noa. Link helbidea kopiatzeko noa, nire zerbitzari joan, deskargatu, eta nik hura ateratzeko noa. [Student] Zer da handiena testua egin dezakezu? [Brandon Liu] hobe dela? [Ikaslea] Is [Brandon Liu] duten doable? Bai, hori da isuna. ZIP artxibo bat deskargatu dut, eta unzipped duten Kohana izeneko direktorio bat sartu, eta, esaten ari gara CS50-Kohana berrizendatu egingo, eta goazen sartu Awesome. Hemen fitxategiak ezberdinak sorta bat ikusiko duzu. Duzun gehienak ez ikusi daiteke - we're ez den fitxategi bakar bakoitza hemen da bidez joan joan gure denbora mugak delako, baina, oro har denean Kohana, egiten duzun lehen gauza instalatzen duzun da joan direktorioa duzu, eta, funtsean, egin dituzu zenbait ingurune probak eta whatnot ziurtatu zure ingurunean behar bezala Kohana exekutatu ezarrita dago eta ziurtatu dena da guztiak ondo. Ikusten duzun gauza gehienak gainditu, baina, oro har, beti 1 arazo hau exekutatu non duten direktorio batzuk ezin da idatzi kexu da, eta hori da, baimenak batzuk delako. Ez dakit asko guys fitxategia CS50 baimenak buruz zenbat ikasi dute, baina egin duzun web garapen bada, ari den gai honetan sartu asko exekutatu zoazen. Noa da idazgarria egiteko eta uste dut nik ere nahi - ez gara joan. Ados, beraz, gaur ikusi ahal izango dituzu, dena gainditu, eta orain esango dizu install.php fitxategia berrizendatu. Install.php fitxategia mugitu behar installed.php noa, eta orain freskatu badut, Akats batzuk me ematen du, eta hau da, non arazketa dator sartu Hau da, non zer benetan gertatuko ikusi ahal izango duzu. Gauza da, berez, Kohana gain hartzen duten Zure proiektuaren erro zure domeinuaren direktorioa da, beraz, nahi duzun demo.brandonkliu.com egotea espero da. Hura kontatzeko hori benetan azpikarpeta bat dugu. CS50 Kohana izeneko azpikarpeta batean. Gauza da, misinterpreting da CS50-Kohana beste zerbait, eta hori duzu azaldu dut segundo bat gisa. Baina Esan behar dut, espero da hori da zerbait. Zer egin goaz izeneko bootstrap.php karpeta honetan sartzen joan goaz, eta hori, non gauza ezberdinak asko sortu dira konfigurazio karpeta da. Duten ireki dut. Ondoren, agian da egin dut lehenengo gauza bat ordu-zona aldatzeko. Eta gero, ikus dezagun. AHA! Hementxe. Ez dago konfigurazio esaera ezberdinak sorta bat daude hemen, baina bat bila nabil base URL izeneko gauza hau da, eta lehenetsita ezarri Kohana bertan lortu dut, baina naiz duten aldatzeko CS50-Kohana joan nintzen, eta uste dut hori konpondu beharko luke. Bai, handia. Berez, da lan egiten duen, dio, ikusteko "Hello World". Non duten etorri? Nola iritsi gara Hello World nahi? Non zehazki kodearen benetan idatzi dela? Duten ulertzeko, routing izeneko kontzeptu hau aurkezten dizut. Nahiko askoz web esparru guztiak routing izeneko kontzeptua dute, diren software pieza zenbait URL baten planoa egingo da kode zati jakin bat zure esparruaren barruan. Adibidez, URL batzuk duzu eta gero joan URL batzuk zu bezalako foo.com / blog / guztiak orduan zer esparruan egingo da - edo gutxienez zer Kohana egingo da - da da da kontroladore blog izeneko klase bat aurkituko du, eta nik izendatu funtzio guztientzako ekintza exekutatu. Klase eta funtzioak buruz ari naiz ezagutzen dut, eta you guys ez dute estalitako klaseak eta funtzioak ezagutzen dut Oraindik CS50, baina oraingoz, klaseak uste dezakezu besterik funtzio talde gisa, funtzio elkartuz modu bat. Hori da benetan jakin behar duzun guztia. Orain begiratu dugu gure karpeta-egitura kontuan hartuz gero, Aplikazio karpeta barruan han eskolak izeneko beste karpeta, da eta beste karpetak Controller eta modeloa deitzen dira. Controller karpeta barruan begiratzen baduzu, ikusten dugu ez dagoela Ongi etorri izeneko fitxategi bat da, eta hemen ikusten Controller Ongi etorri izeneko klase bat da, dezakezu eta han Ekintza Index izeneko funtzio bat da, eta zer egiten da zure erantzuna Hello World nahi gorputzean ezartzen du. Hori da, non kodearen idatzitako du. Beste galdera da, bai, ez nuen joan blah, blah, blah, / welcome / indizea. Nola amaituko dut hemen? Beno, hori da besterik ez delako Hemen gure bootstrap fitxategia behealdean non gure bideak ezarri dugu Ikusten duzun lehenetsiak batzuk ezarri dutela zuretzat. Kontroladore lehenetsia Ongi etorri da. Ekintza lehenetsia Indizea da. Horregatik, ez da ezer jarri dugu ez da automatikoki Ongi controller joan eta indize ekintzan. Everything zentzurik orain arte? Orain, gehiago besterik joan baino Controller egin dezakezu eta ekintza jakin bat. Ere kontroladorea parametro pasa daiteke. Just adibide gisa, Ekintza bat gehitzeko controller honetara erakusteko noa. Dezagun dei ekintza hau Echo, nik dena delakoa ematen dizute esango joan delako, eta beraz, ez dut funtsean har joan parametro bat dela me bidez bidaliko dira bideraketa programaren joan, eta hemen ikusi dezakezu bezala, Lerro hau hemen, hori ikusi ahal izango duzu hau funtsean esan nahi kontroladore behar duzu, eta / bat behar duzu, eta ekintza behar duzu, eta beste bat / duzu, eta hori parametro izango da, eta, izen identifikazio hau dugulako angelu parentesi barruan, horrek esan nahi du identifikazio Parametro honek izendatzen ari gara. Nire kontroladore kodea geroago parametro horren sotoan bat hartu nahi badut, Kodea idatzi nuen erabili ahal izango dut, identifikazio izeneko parametroa aurkitu. Hori da hemen zer egin nuen, eta itzuli eta esan noa, ", Esan duzu" dela. Eta, beraz, orain banoa gure web bada, Joan cs50-kohana/welcome/echo/Helloooo-- nahi dut oh, hori da. Badira 1 urratsa utzi dut. Hau da zuzeneko kodetze ideia zati da. Hona hemen gauza 1. Ikus dezagun. Beraz, normalean, web aplikazio horiek asko lehenetsita index.php gauza hau, besteak beste, zure URL duzu, ideia da index.php delako sarrera den moduko da eskatu, baina, jakina, duten antzeko gogaikarriak behar da. Ez duzu nahi agertuko zure URL in index.php dute, eta nahiko askoz web esparru guztietan koadroan index.php arazo hau dauka, eta, beraz, hori kendu ahal izateko neurri batzuk hartu behar duzu. Eta, beraz, kasu honetan, zer egin goaz. htaccess izeneko fitxategi bat erabili dugu, eta hau hori da, Apache web zerbitzari berariazko zerbait da, eta berridazketa URL bezalako gauzak egin ahal izango da eta redirect URLak eta abar eta abar, eta Kohana atsegina da nahikoa erabili ahal izango dugun txantiloia. htaccess fitxategia bat emateko. Ikusten duzun bezala, ez dago fitxategi batean han example.htaccess deitzen da, eta, esaten ari gara kopiatzeko. htaccess joan. Hau ireki eta editatu noa, eta, funtsean, gauza ezberdinak sorta bat egiten du. Funtsezko line begiratu nahi izango duzu hementxe da. Ideia da hau ezartzen duen arau bat dela dio, "Ongi da, idatzi duzuna, eta itxi index.php horretara." Duten ikusi ahal izango duzu. . * Ezer nabarmentzen, ezer etortzeko, eta, ondoren, bigarren zatian index.php / $ 0 da, eta $ 0 Aurretik edozein dela parekatzen zen aipatzen. Ez duela zentzurik? Baina benetan funtsezko gauza aldatu nahi dut da berridazketa base hau aldatzeko, Horrek URL oinarria da. Sort suposatuko du nondik ari zara lanean. CS50 Kohana gehitzeko duten noa, eta, era horretan, orain index.php kendu badut, lan egin behar dela, eta zenbaki batzuk gehitu noa erakusteko lana, hain zuzen ere egin dela. Soinuak ona. Orain arte zalantzaren bat? [Student] Nola ez 123 Ea ezagutzen? Argudio bat da hori? Zehazki. Zuk pentsatu ahal izango besterik argumentu bezala. Baina gauza arraro, nahiz eta, horrela Kohana du da, ez dute ezer egiten zehazki argumentu bezala. Hura hartu, hau atsegin duzu. Eskaera objektuaren hartzen eta horrek identifikazio izendatzen ari den parametroa eskatu behar duzu, eta izena NAN duten bootstrap fitxategi hori dator lehenago erakutsi dut, eta izena NAN angelu parentesi azaltzea ere, eta hori da parametro horiek nola hartu duzu. Awesome. Beste edozein galdera? Esan dudan bezala, kontrolagailu, aplikazioaren logika kudeatzen dituzte, beraz, 1 instantzia non that ikusi ahal izango duzu - Oso oinarrizkoa da, baina oraindik aplikazioaren logika, parametroa grabbing eta kate berri bat sortzeko ideia dela dio, "blah, esan duzu", eta ondoren, hori tu itzuli. Eta, oro har, zer egiten duzun da kontrolagailu ezberdinak sortzen duzunean. Zure web atal ezberdinak kontrolagailu bereizi sortuko duzu. Gaur gabiltza webgune oso sinple bat egiteko, eta nik oso oinarrizko blog bat izango da joan. Kontroladore berri bat egiteko besterik blog batean mezuak egiteko goaz. Baina gero, iruzkinak ere gehitu blog post banintz, Orduz dut seguruenik iruzkinak dutenentzat kontroladore berri bat egin nahi. Erabiltzaileak gehitzeko nahiko banu, ziurrenik erabiltzaile dutenentzat kontroladore berri bat gehitu nahi nuke, eta, oro har, ideia da, betiere, eredu berri bat behar duzula, datuak objektu berri batekin aurre ari zaren, datuak objektu horrentzat kontroladore bakar bat behar duzu. Gaur bakarrik ari gara 1era datuak objektu batera lanera joan, eta hori mezu izango, eta, gainera, zuk datuak objektuak pentsa dezakezu mahaiak dagokion bezala. Oro har, mahai bakoitzean 1 datu-objektu mota dagokio, beraz post mahai 1 post eredua izango dute, horrek dagokion 1 post kontroladore izango dute, eta iruzkinak, erabiltzaile berdina, eta abar eta abar berdina. Eta hori arau orokor bat da. Badira kasu berezia non hartatik duzun berdinak ez izatea hartuko dute, baina denbora hori zer ari zaren egiten beharreko% 90, eta erakutsi dut hori zer ari gara gaur joan behar egiten. 1 kontzeptu gehiago kodearen atzera murgiltze dugu aurretik, objektu erlazionalak mapping ideia hori. Zaudete dagoeneko egin duten web garapen pset bat, eta ikusi duzun SQL kontsulta bat egin duzula, eta edozein dela ere itzultzen dizu ilaratan daude. Errenkada horiek lortuko duzu, eta duzun indize horiek izen batzuk, zutabean eta mahaiaren izenean, eta hori, nola lan egiten duten, eta pixka bat astuna izan daiteke. Baina horrez gain, zure datu-base barruan harremanak izanez gero, adibidez iruzkinak eta mezu badut, ondoren, agian guraso iruzkin bat kargua hartu nahi dut. SQL errenkada besterik ez erabiltzea badut, gero guztia lortu ahal izango dut izena da guraso post du eta ez da benetako post bera. Baina coding ari gara noiz, zer egia esan nahi dugu benetan grab  gurasoa bidaltzeko bera batzuetan. Zer objektu erlazionalak mapping ez da Datu-basean kontsulta emaitzak hartzen du eta jartzen du zuretzat objektuak, diren askoz ikusgarriago lan egiteko sartu arrayak arrunta eta errenkada baino. Esate baterako, orain, iruzkin bat daukat, agian, eta bere guraso post hartu nahi dut, eta ez, agian komentatu nuen gezi post, orduan benetan egingo dela eman dit zer objektuaren benetako guraso zer dagokion, eta ez bakarrik identifikazio batzuk, Horrek dut bestela nahi erabili eta egiteko SQL kontsulta beste post har, hau da, astuna eta alferrikako. Eta horrez gain, datu horiek guztiak ilaratan kartografiatzeko objektu bitartean, ere funtzio gehiago erantsi ahal izango duzu objektuak, beraz, adibidez, nola klaseak funtzioen talderako funtsean dira buruz hitz egin dut. Zuk pentsatu ahal duten bezala. Adibidez, agian post objektu hau daukat, eta, agian, horri atxikitako funtzio moduko bat izan nahi nuke funtsean esaten dit zen duela gutxi argitaratu da? Zen posted azken aste barruan da, egia edo gezurra? Eta hori ezin dut objektu kalera erantsi funtzio bat, eta benetan komenigarria da egiten dute leku berean, han eta funtzio desberdinak sor dezakezu ostalari daude objektu horiek, eta benetan polita da eransteko klase baten gai izan, objektu bat, izan besterik ez duzu zure datu-base datozen errenkadetan berriz, orduan ezin benetan edozein funtzionalitate erantsi hori. Datuak besterik ez da literalki. Guztiak aldi horri buruzko edozein galdera? ORMs web garapenerako oso arruntak dira, eta han ORMs mota ezberdin asko daude, eta Kohana bere ORM propioa du. Da, oso oinarrizkoa da, baina zer itxura zapore bat lortuko duzu. Sortu dezagun gure blog mezu eredu bat, eta lehenengo gauza jakina behar dugu egin da benetako mahai bat sortzeko gure datu-basearen barruan gure datuak benetan gordetzeko mezu dutenentzat. Lehenengo gauza egin noa da phpMyAdmin joan. Erabili duzu guys phpMyAdmin aurretik? Ados, awesome, beraz, you guys dagoeneko badakizu zer den, eta Kohana Mezuak izeneko taula berri bat sortzerakoan egingo dut, eta benetan sinplea izango. Berriz sartzeko sartu beharko dut Guztiak gaur egin goaz egile bat eta gorputz bat dute, besterik mantentzeko erraza. Mahai hori sortzeko noa, eta, orain, gure mezu ordezkari mahai bat besterik ez dugu 2 gure egile eta gure gorputza eremuak batera. Beste gauza Orain egin dut da konfiguratzeko nire web aplikazioa nola datu-basera konektatu daki beraz, eta hau, berriro ere, hori egiteko web aplikazio guztiekin egin duzu zerbait da. Hura kontatzeko erabiltzailearen izena eta pasahitza aukeratu behar duzu eta datu-basearen izena, eta abar eta abar irudikatu nola benetan zure datu-basera konektatu. Kohana gain, datu-basearen modulu bat izeneko zerbait egin behar dugu, eta konfigurazio karpetan datu-basea izeneko karpeta hau dugu, eta ikusi dezakezu bezala, ez dago ezarpenak mordo bat hemen ezarri behar duzu dira hura kontatzeko zer erabiltzaile-izena eta pasahitza datu-basea, beraz ezin dut benetan bertara konektatzeko. Eta ez dut ez baita nahi baduzu guys benetan ezagutzen erabiltzailearen izena eta nire datu-basearen pasahitza, Non dagoeneko ezarri dut dena fitxategi bat daukat, eta kopiatu eta itsatsi gainean noa. Awesome. Ados. Uste dut konfigurazioa guztia egin behar dut, baina ikus dezagun. Bertan lan egiten jarraituko dugu, eta zerbait hondatzen bada, ondoren, konpondu dugu. Orain zer egin noa da kontroladore berri bat sortu nahi dut. Edo benetan, barkatu. Lehenengo eredu berri bat sortu nahi izan dut. Post.php izeneko modelo berri bat sortu dut, eta zer egin behar dugu da Model_Post klase deitu goaz. Talde sintaxia batzuk nabarmenduz, eta beraz, esango dizut, "hedatzen ORM," hori da, funtsean gehiago objektuetara bideratutako programazioa batzuk, zoritxarrez you guys ez CS50 oraindik ikasi, baina nahiko erraza da jasotzeko. Funtzionalitate estra hau guztia ORM Paketeko dator dizkit, eta beraz, funtzio estra eta doan whatnot mordo bat lortu dut, horrek apur bat ikusiko duzu bigarren batean. Oraintxe benetan egin behar dudan guztia da klase hau sortzeko. Ere ez dut edozein funtzio edo ezer egin behar, baina hori mahai adierazten klase bat sortu dut, eta I ORM klase hau zabaldu egiten delako, Gauza mordo bat eskuratu dut doan, beraz, ez duzu ez oraingoz ezer up gehiago ezartzeko baimenik. Eta orain zer egin behar dut da kontroladore berri bat sortu nahi dut, horrek blog.php izendatzeko noa, eta hemen Ongi kontroladore gainean kopiatu egingo dut beraz, ez dut gauza batzuk berridatzi, eta orain hau izenez aldatu behar dut. Orain zer, dena ziur dago lan egiteko probatzeko egin nahi dut, Nire datubasetik lehenengo post har noa eta pantailan post-gorputza inprimatu. Zer egin nahi dut da naiz mezu salbatzeko joan egin aldagai bat da, beraz, zer egin behar dugu, - Kohana zer egiten duzu zer objektu grab motatako astuna da, baina ORM izeneko gauza hau :: fabrika egin behar duzu, eta, ondoren, nahi duzun eredua izenean pasatzen duzu, eta eredu horretan adierazten ORM objektu itzultzen du. Eta, ondoren, esan nuen ORM objektu zabaltzeko dugun bezala, doan metodo horiek guztiak lortuko dugu, beraz, adibidez, izeneko funtzio berri hau "guztiak aurkitu," lortuko dugu automatikoki datu-basean edozein post bakoitzean bakarra itzultzen, hau da, nahiko erosoa. Eta orain gorputzean naiz itzultzeko joan lehen mezua eta bere gorputza itzultzeko. Eta, jakina, post bat sortu behar dut, beraz dezagun txertatu post berri bat. Esango dut ", Brandon, nire lehen mezua." Awesome. Eta orain goaz blogak joan eta guztiak ondo funtzionatzen badu - oh, hau beste muda fitxategia baimenik gauza batzuk berriro ere. 1 bigarren askatu. Da mota absurdua da. Hor dugu. Ados. Baimen arazo hori konpondu dut. Zenbait fitxategi eta egunkari batzuk sortzen saiatzen zen, eta baimenak, berriz, ez ziren behar bezala ezartzeko, beraz, egin nuen beraz, fitxategi horiek idazgarria eta exekutagarria ziren beraz, izan benetan gauza hasi. Orain beste salbuespen esaera, ematen dit "class ORM ez da aurkitu" eta hori da, beste urrats bat ahaztu dut delako. Hori oso txarra da. Bootstrap karpeta fitxategian, modulu horiek hemen daude, horrek gaitu edo ezgaitzeko aukera dezakezu. Horien ezaugarri ezberdinak sorta bat erabiltzea aukera dezakezu Kohana, moduko den polit barruan. Adibidez, autentifikazio modulu bat dute autentifikatzeko eta zuk erabili dezakezu. Katxeak modulu bat dute ezartzea nahi baduzu back end cachean aplikazio lana azkarrago eta whatnot egiteko nolabaiteko. Datu-basea eta ORM modulua gaitu beharko dugu, atsegin dut, esan delako, datu-basea erabiltzen ari gara, jakina, eta, gainera, ORM modulua gaitu beharko dugu, aparteko funtzionaltasuna, hau da, polita behar izan nahi dugulako. Guztiak egin behar dut-komentatu 2 lerro horiek da, eta orain I freskatu bada, me error bestera eman. Honela dio: "Class Model_Post ez da aurkitu." Orain hau arazo bat ona behar da. Ikus dezagun. Da publikoa. N º Hold on. Oh, maitea. Ez dakit zergatik ez da gai dela aurkitzeko. Hori da benetan arraroa. Klase hau daukat hemen. Oh - agian dut behar uste dut. Naiz hain muda. PHP etiketa bat gehitzeko ahaztu dut. Horregatik. Orain 1 aldaketa besterik ez dut desegin behar dut. Ados. Hor dugu. Hori izan zen benetan silly. Ez nuen bat inaugurazio PHP etiketa dute. Baina ikusi dezakezu bezala, orain bezala lan egiten du, ezta? 1 post dugu. Lehen post harrapatu dugu, eta orain, inprimatutakoak dugu bere gorputza. Handia. Fantastikoak. Edozein galdera, orain arte? Nope? Zalantzaren bat? Ados, beraz, post-eredua sortu besterik ez dugu, oso oinarrizkoa, eta ari gara funtzio batzuk geroago gehitzeko egingo. Baliozkotzeak eta iragazketa erantsi daitezke. Baliozkotzeak gauza bat dira zuretzat marko hori konpontzeko benetan, oso ondo, eta ez dut uste duzu mutil hau egiteko zure CS50 Pset izan, baina egin duzun web garapen badu zure azken proiektua egiteko, litekeena ari zaren balidazio moduko bat egin nahi du, bezalako hutsik erabiltzaile-izenak ez izatea, agian luzera gutxienez batzuekin pasahitz bat edukitzea, horrelako gauzak. Eta benetan astuna da gauza horiek martxan jarri ahal izateko geure burua, eta nahiko askoz web esparru bakoitzean bakarra du zuretzat eta, horri esker egin duzun modua oso garbi bat. Eta eredua da, non, oro har, balidazio-arau horiek adierazteko duzun, Honez balioztatu du eredu baliozko edo ez adierazten duelako. Baina orain, esaten ari gara geroago jarri arte, eta ari gara behar beste zati batean lanera joan oraingoz, eta ari gara saiatu eta ikuspegi berri bat egin joan mezu guztiak zerrendatzen dituen. Ekintza berri bat egiteko mezu guztien zerrenda-parte hartzen duten urratsak da mezu guztien zerrenda bat hartu, eta, ondoren, mezu guztien zerrenda errendatzeko ikuspegi baten bidez. Hementxe, zorionez, nahikoa, mezu guztiak, dagoeneko heldu gara lehen lerro hau erabiliz, aurkitu funtzio guztiak, eta orain, zer egin behar dugu, orain arte Nik zuzenean erantzuna gorputzean ezartzeko katea pasatzen, baina, orain, ikuspegi bat erabili nahi dut arabera, eta ikuspegi bat eta besterik ez, hau egiteko arteko aldea da ikuspegi batekin dut polita, big HTML txantiloi bat izan daiteke, eta zer egin ahal dut pasatuko da aldagai jakin eta ondoren izan ikuspegi automatikoki populatu bere txantiloia aldagai horiek erabiliz. Zer egin dut da ikuspegi berri bat sortu dut, eta ikuspegi antzeko zerbait izendatzeko dut "blog / index" eta naiz, funtsean lotu hau egingo dut - oh, zer ari naiz idazten? Nire burmuina da nonbait. Bidalketen ikuspegira aldagai lotu noa, beraz, modu horretan ikuspegi post aldagai hau sarbidea du. Eta beraz, gaur egun ikuspegi hau sortu behar dut, beraz, hemen deitzen "Views", karpeta hau dugu eta lehen, naiz dela deritzo pean karpeta berri bat sortu nahi dut "Blog". Hau da polita. Horrela gure iritziak hierarkia polit bat izan dezakegu. Eta ondoren, naiz han beste fitxategi batera deitu sortzeko going "index.php". Awesome. Benetan, dezagun biak izan hemen. Ikuspegi fitxategi batean egiten da, ziurrenik, hori neurri errazena, eta horiek ezagutzen Oraindik dagoeneko gauza dira ziurrenik. Oso sinplea zerbait egin behar dugu, Hasteko, esaten "Nire mezu blog zerrenda." Ondoren bidez joan ahal izango dugu, eta mezu array zehar batetik bestera joateko aukera izango dugu, grab post bakarra behin eta esan zerbait - agian lerro bat gehitu eta, ondoren, egileak eta gorputza inprimatu. Duela zentzurik, orain arte? Eta ikus dezagun lan egiten bada. Ez da ezer gertatu. Galdetzen dut zergatik. Oh, 1 urratsa galdu dut. Niri oso tuntuna. Ikuspegi bat sortu dut, baina ez nuen ikuspegi ezar erantzun gisa, beraz, gauza 1 gehiago egin behar duzu. "Erantzun gorputz honek" egin eta ezarri ikuspegian egon behar duzu. Hor dugu. Gure izenburu dugu, eta, ondoren, post bat dugu, eta besterik ez Jaurtiketa, dezagun txertatu post bestera beraz, zerrenda bat ikusi ahal izango dugu. Eta 2 mezu horiek txertatzeko, eta, orain, orria freskatu badut, Mezu horiek guztiak hemen ikusten dugu. Horrek zentzurik ez du orain arte? Bai, galdera bat? Oh, ados. Ikusten duzun bezala, nik atera kode horiek guztiak bereizteko gai izan gara Atal ezberdinetan sartu, eta gero ikusten da gehienek ikuspegi kodea duen argi dezakezu. Fitxategi hau hemen ikuspegi ordezkatzen ditu, Datu ordezkari, datuak erakusteak buruz bakarrik zaintzen. Datuen nolabaiteko gainditu lortzen da, eta guztiak ere ez dago besterik erakutsi duzu. Zure kodea beste toki guztietan, ez duzu nahi duten edozein kezkatu, eta, era berean, zure ikuspegi kodea ez dauka buruz ezer kezkatu datu-basea nola sartu eta abar eta abar, hau da, benetan ona, eta egiten zure kodea askoz gehiago atxikigarria. Esan dudan bezala, aldiz, horretan dinamikoak ari dira 1 fitxategia da, baina ikuspegi ezberdinak sortuko litzateke oinarritutako aldagaiak benetan pasatzen duzu buruzkoa, eta, gainera, ez dira helper funtzio desberdin asko Zure kodea azkarrago idatzi duzun laguntzeko erabili ahal izango dituzu, horrek erakutsi dut bigarren bat besterik ez. Bai. [Student] Beraz $ 0 kontroladore bat da, ezta? Bigarren gauza. Galdera da da $ 0 kontroladore bat? $ 0 hementxe sortu dut aldagai bat da. Ikuspegi bat sortu dut lehen. Horri esleitutako nuen aldagai batzuk. Ondoren, gainditu dut funtzio honetan sartu, erantzuna organo gisa ezarriko da. Ez duela zentzurik? [Student] Beraz ikuspegi :: fabrika da, klase bat bezala ikuspegia da edo liburutegian [inaudible] fabrika funtzio bat? Galderari ikuspegi :: fabrika funtzioaren ingurukoa da, eta, funtsean, hau objektuetara bideratutako programazioa gehiago batzuk funtsean da. Ikuspegi ikuspegi klasekoa da, eta izeneko metodo bat du "Factory" eta hori izendatzen da objektuaren grab modu bat da "blog / index." Eta hori gehiago objektuetara bideratutako programazioa gauza batzuk Ez dut hori hemen sartu gehiegi joango gara. Orain, jakina, mezu berririk sortu nahi dugu, baina ez dugu nahi egin behar den datu-base baten bidez izan, beraz ari gara ekintza berri bat sortzeko post berria sortu du, eta han gauza asko egin behar duguna da. Lehenengo gauza egin dugu - dezagun aurre gauza horiek banan-banan. Egin dugu lehenengo gauza lortu dugu inprimaki bat sortzeko post berri bat txertatzeko, baina ez dut ere ekintza berri bat gehitu nahi lehen joan, beraz, ekintza berri bat gehitzea besterik ez da erraza funtzio berri bat gehituz zure kontroladorea, eta oraingoz ez dut oso oinarrizko zerbait egin behar du, besterik grab ikuspegi hau eta bidali, besterik bistaratzen zuen zuretzat. Eta, ondoren, gaur egun, ez dut ikuspegi fitxategi berri bat sortu bada ere, eta nik gauza batzuk idazten hasiko naiz. Zer da Kohana buruzko nice helper funtzio desberdin asko ematen dute zaren ikuspegi kodea errazago idazten da, eta helper funtzio edo helper modulu horietako 1 da idatziz inguruan inprimakiak. Formak idazteko, ez benetan behar dut zuzenean idaztea edozein HTML neure burua. Zaudete HTML inprimakiak idatzi dute. Nola benetan, oso mingarria eta astuna formak idazteko izan daiteke badakizu. Ez da dibertigarria, beraz, zorionez, funtsean dizugu formulario bat idatzi ahal Kohana en erabiliz helper funtzioak osatzeko egin behar den guretzat. Funtsean eduki eremuetan gauza bakoitza dugu bila goaz, beraz, autore bat eta gorputzak bata. Etiketa bat behar dugu, eta sarrera bat goaz. Eta gero, azkenik, ari gara bidalketa bat izan behar da. Eta ikusi dezakezu bezala, hau da, askoz garbiagoa idatzi HTML narratsa duten guztiak, hau da, mota atsegina baino. Ematen, hori baino are garbiagoa beste web esparruak daude, baina, gutxienez, hau da, HTML idatziz zeure burua baino hobeto. Awesome, beraz, hau da, zer ikusten duzun. Hori da mota narratsa, beraz, ez naiz lerro-jauzi bat gehitzeko Hara joan duten itxura apur bat ikusgarriago egiteko. Beno, noski, oraindik ere ikusten da benetan, oso txarra, baina zu besterik bideratuta dugu orain eta ez egiteko funtzionalitatea estetikaren gainean. Denbora ez guztia egin. Eta ikusi dezakezu bezala, orain super oinarrizko forma bat dugu, hau da, mota polita. Kode hau esango nuke HTML bat idazteko osatzeko zaitez saiatu baino garbiagoa da, beraz, hori da polita. Zer da hurrengoa? Orain gauzak egiteko ekintza batera eman behar dugu. Normalean denean HTML inprimakiak idazterakoan, hura kontatzeko non nik inprimakia aurkeztu behar da joan behar duzu. Web esparru gehienetan Berez, aurkezten da zehatza URL bera eta, beraz, zera da, get eskaera bat bidaliko duzu bada / blog / berria, duzun forma bistaratu beharko luke, baina post-eskaera bat bidali nahi izanez gero to / blog / datuekin berria, benetan saiatu beharko luke zer dela salbatzeko eta zerbait egin berarekin. Zer egin goaz funtsean guztiak post-eskaera bat edo get eskaera bat ote den egiaztatzeko egin behar dugu da zer dira post aldagaiak ezar ditzakezu egiaztatzeko. Eta post aldagaia ezarri bada, orduan ari gara saiatu eta post berri bat sortzen joan. Berriz ere, egiten dugu besterik honetan, eta post berri bat sortzen du, eta horretan ari gara, literalki joan bere honelako eremuak ezarri, eta ondoren gabiltza gorde joan. Eta gero noa redirect joan indizearen orrira beraz, berriro ere gure mezu zerrenda ikusi ahal izango dute. Saiatu dezagun hori. Esango dut ", Brandon," eta ondoren, mezua bidaltzeko, eta dena ongi joanez gero, ikusi dezakezu bezala, niri birbideratuko da indizearen orrira, eta joan nintzen beheraino bada, sartu berri diren post bat behar dugu. Yay! Bai, galdera. [Student] Zer duzu zehatza gauza bera sartu zuen bada aurretik idatzi dela? Duela ziurtatu ez duzu bikoiztu egin behar izan ditu egiaztatzen bidalketa bera? Lehenetsia izatea, ez, zeren lehenetsita - Barkatu, galdera da inprimakia datu bera zehatz batean idazten baduzu eta bidali duten, egingo objektu bat bikoiztuak txertatzeko aukera emango du, Istorio bat bikoiztu, funtsean? Oraintxe, bai, horretarako aukera emango digu, eta, datu-base batean primeran baliozko da errenkada guztiz bikoiztuak izan delako, baina horrek kezka bat bada, ondoren, baliozkotzeak gehi ditzakezu, adibidez, Ziur hori egin hau da hain zuzen ere zerbait hori badago lehendik ere berdina bada, gero esan objektu baliogabe bat dela, eta ondoren duzu zure errore mezua are zehaztu dezakezu eta esan, "baliogabea delako hau dagoeneko existitzen da" edo horrelako zerbait. Baina kasu honetan, izan besterik ez zerbait bikoiztuak sortuko dut. Orain dezagun saiatu eta baliokidetzak batzuk gehitu. Honen arazoa oraintxe dela Literalki izan dut post guztiz zuri bat aurkezteko. Ezkutatu Ezin dut botoi honetan oraintxe bertan, eta hara joaten ginen. Ezin duzu benetan ikusteko, baina aparteko lerro hau hemen adierazten literalki duten post berria dut. Besterik egile hutsik eta gorputz huts bat dauka, eta ez dugu nahi jendeak hori egin ahal izateko. Hau da, non balidazio dator sartu Nire eredua objektu I joan daiteke, eta orain dela zehazten du funtzio berri bat gehitu ahal izango dut zer balidazio-arauak gehitu behar dut eredu hau Ziurtatu baliozko dela egin edo zehaztu zer du baliozko post bat izan esan nahi du? Eta esateko baliozko post bat besterik ez da nahi badut bai egilearen eta gorputza ez daude hutsik, eta hau da, nola egiten duzun Kohana in. "Arauak" izeneko funtzio berri bat sortzen duzunean eta, ondoren, funtsean, elkartze-array bat itzuliko dizu duten baliozkotze objektu honen arauak definitzen du. Array itzultzeko goaz, eta, ondoren, zer egin behar dugu, esan "autorea," doa array bat da, izeneko beste array doa "ez dago hutsik." Eta ondoren, naiz esan du "body." Ados, eta hau sintaxia eta egitura honen astuna pixka bat eta pixka bat konplikatua begiratu daiteke. Dokumentazioa irakurri nahi izanez gero, nahiko erraza da irudikatu, Baina, funtsean, hau da, zer den zehaztu egin behar duzu balidazio-arau batzuk daude, eta arau desberdinak asko Kohana emango dizu doan, bezala arauak gehitu dezakezu esan gutxienez luzera hau izan behar du. Agian zenbakizko izan behar du. Agian alfa zenbakizko izan behar du. Agian gehien egon luzera honetan, beraz, eta abar ditu. Ez dago arau desberdinak asko duten Kohana zuretzat eskaintzen dira, eta bere web orrian joan zaitezke, dokumentazioa begiratu, eta hori egin dezakezu ezberdinak gauza guztiak ikusi ahal izango duzu. Baina hori guztia egin behar dut, eta, orain, ikus dezagun zer gertatzen den post huts bat bidaltzen badut. Zer gertatuko da? Oh, ez, akats bat lortu dut. Balidazio salbuespen bat lortu dut. Beno, ona da. Esan zidan nire eredu baliogabea da, baina ez dut salbuespen bat erakutsi nahi nire erabiltzaileei zerbait baliogabea aurkeztu saiatuko dira, ezta? Horietako atseginagoa errore mezua nolabaiteko eman nahi dut zerbait oker. Zer egin goaz goaz itzulbiratu guztia saiatu harrapatzen begizta batean. Egia esan, uste dut hau ere ez duzu oraindik ikasi zerbait CS50, zeren C, programazio-lengoaia C, ez dute salbuespen, baina ia beste hizkuntza bakarra behin salbuespenak, beraz, benetan, oso laburki ditu, salbuespen bat duten kode zati bat ahal den zerbait da salbuespen bat bota zerbait oker, baina gero, agian, beste kode zati batzuk gorago salbuespen duten harrapatzeko eta zerbait egin berarekin. Adibidez, kasu honetan, Kode zati hori eredu bat gorde nahian, eredua baliozkotzen da, eta esaten bada, "Ongi da, eredu hau baliogabea da," da da salbuespen bat bota du, eta hau da baliokidea moduko C -1 bat edo horrelako zerbait itzultzeko dezakezu. Eta gero, niretzat, funtzio hau, nire kodea goi mailako, ahal saiatzen naiz eta harrapatzeko salbuespen duten eta, funtsean, esan, "Ados, harrapatzen nuen ezik, bada, zer ari naiz egin?" Edo ez da salbuespena horretan harrapatzeko eta norbaitek gorago utzi aukeratzen nezakeen harrapatzeko ezik, edo inork harrapatu bada, ondoren, programa osoa izorratzen eta dioenez, "Zerbait oker joan, eta ezin nuen hura kudeatzeko." Baina, zer egiten dugun da kode zati bat biltzeko duzun saiatu bloke batean, eta, ondoren, harrapaketa bloke bat izeneko zerbait ere gehitzen duzunean, horietatik kodea sort saiatuko da eta harrapatzeko gerta daitezkeen salbuespenak da. Eta, beraz, salbuespen zehatz honetan harrapatzen badut edo Nulidad salbuespena, orduan zer egin noa da Akatsak ezartzeko noa - Uste dut hori, nola egiten dut - eta naiz akatsak ezartzeko objektu batzuk noa. Eta gero, zer egin behar dut da salbuespen hau hits bada, ez da bideratzen joan, eta posible izango ez balitz redirect, nik hemen blog bada atera joan eta hit blog honetan / berria, nahi da egin nahi dut. Han bada akats bat dela, eta gero atzera joan formularioa nahi dut eta akatsak horiek bistaratu. Orain zer egin nahi dut da akatsak horiek gainditu nahi dut ikuspegira. Ongi, uste dut ikuspegi daukat hementxe, eta funtsean akatsak horiek bistaratzeko, edukiz gero nahi dut. Horretarako HTML idatzi aurretik I, naiz benetan azkar joan nintzen erakutsiko dizu zer akatsak honen egituran begiradak aldakorreko gustatzen, eta hau, oro har, praktika ona da. Aldiz asko zerbait metodo batzuk atzera lortuko duzu, web esparruan funtzio batzuk, eta ez dakizu zer aldakorreko itxura, beraz, ez dakizu nola funtzionatzen. R inprimatu metodo bat erabili ahal izateko, funtsean inprimatu noa. Eta ikusten duzunez, niri kontatzen elkartua array bat da, eta gako, egilea, puntu dituzte, kate hau, Egileak ezin du hutsik, eta funtsezko beste, gorputza, beste kate, gorputza puntu da hutsik egon behar du. , Bezalako ados, cool naiz. Ondoren array bidez dezaket batetik bestera joateko eta inprimatu Mezu bakoitzean bakarra. Funtsean da mezuak sorta bat array elkartze bat bezalakoa. Zer egin noa da "akatsak izanez gero," eta orden gabeko zerrenda bat sortzeko noa, eta naiz akatsak guztietan zehar batetik bestera joateko noa. Eta hau, eta orain ez dut hau berriro aurkezteko saiatu, eta ikus dezagun zer lortuko dugu. Orain akatsak zerrenda polit hau lortuko dugu, eta hau da, oraindik nahiko itsusia, baina hori jakina formateatuta daiteke itxura polita, baina oinarrizko ideia besterik kode lerro batzuk bat da, gure eredua balioztatzeko gai izan ginen, ziurtatu Eremu batzuetan ez zeuden hutsik, eta zerbait gaizki joan bada, eta gero, errore-mezu nolabaiteko itzultzeko Ondoren ezin izan dut atzera aurkeztuko erabiltzaileari. Ere zure balidazio pertsonalizatu ahal izango duzu beraz, benetan ahal izango errore-mezu bat duen gehiago zure aplikazioa edo horrelako zerbait jakin. Hori guztia, oro har, pertsonalizagarria. Zoritxarrez, dugun denbora agortzen ari, beraz, ez dut moztu zuzeneko kode saioa hemen izan da. Badira beste ezaugarri mordo bat duela zuretzat frogatu nahi dut adibide honetan. Adibidez, txantiloiak gehitu dezakezu zure webgunean, beraz, agian han HTML kode moduko bat aplikatu nahi duzun da Zure gunearen orri bakar behin, eta horren ordez itsasten dela fitxategia ikusten bakoitza, behar duzun horrek, jakina, praktika txar bat izango litzateke, duzu funtsean defini dezakete txantiloiak horiek, eta, ondoren, zure controller in esan, "Ados, txantiloi hau erabiltzen dut." "Have nire ikuspegi guztiak Txantiloi hau erabili." Eta azken gauza bat baita Zurekin frogatu nahi dut ez dugun gurutze-site scripting da denborarik izan, eta, funtsean, you guys ziurrenik CS50 ikusi uste dut - Nik uste dut, David Malan seguruenik nola normalean injektatu dezakezu buruz hitz egin zuen Sartu kodea Javascript - dute hitz egiten duzu horri buruz? Agian? Agian ez? Baina asko aldiz injektatu dezakezu maltzurren JavaScript kodea norbaiten datu-basean sartu, eta ez badute ihes egin behar bezala, orduan, datu horiek erakusten dute erabiltzaileari atzera, orduan ausazko JavaScript kodea nolabaiteko ez duzu gertatuko nahi exekutatu ahal izango du, eta I zen nola egin duzuna duten Kohana barruan frogatu da joan. Benetan, oso erraza da benetan. Oraintxe egin izan dut 2 segundotan literalki. Guztia egin behar duzun da, funtsean, gauza horiek itzulbiratu HTML entitate izeneko gauza honetan. Eta automatikoki pertsonaia guztiek behar bezala ihes egingo eta ziurtatu ez duzu arazo hau lortzeko. [Ikaslea] lehen proba gaizki idatzita duzu. [Brandon Liu] Oh, trabatzen. Ados, hori da zurekin gaur izan nuen guztia. Diapositibak hauek posted egingo, baina horiek ez dira, oro har, baliabide bakarra, benetan behar duzun adierazi dezakezu Kohana hasteko. Webgunera joan zaitezke. Erabiltzailearen gida bat dute, eta, gainera dute API esploratzailea. Desberdinen funtzio guztiak eta zuretzat dute helper funtzio landuko dira. Oro har, web gunean informazio nahikoa dute erabil ditzakezun Hasteko, eta joan Kohana batera. Ez daude tutoretzak duten askok, nire ustez, Kohana egiteko, kanpo hau zer izan web orrian dute hemen, beraz, izango da ziurrenik zure onena apustua. Baina web-esparru batera joan nahi baduzu eta ez duzu nahi recoger hizkuntza berri bat behar da, eta hori da, nahiko arina da eta ikaskuntza kurba erraz bat dauka zerbait nahi duzun, Dut zalantzarik iradokitzen litzateke Kohana. Hori da, ziurrenik horretarako eskaintza onenak. Bitxiena, ordea, Ruby ginen Rails erabiliz on bada, dugu erreplika izan da, zer egin besterik ez dugu eta seguruenik 3 pean minutu gehiago. Ez da txantxa, baina Ruby ikasteko Rails hartzen asko jada Kohana ikasteko hartuko luke baino. Funtsean da zure aukera zer ikasi aukeratu nahi duzun, baina sortu eta azkar martxan eskuratu nahi izanez gero, Kohana behin betiko aukera oso ona. Dugu amaituko Edozein azken galdera aurretik? Bai. [Student] Nola litzateke integratu dugu denean instructing zinen zu bezala erabiltzen ziren CSS esparru batean? Galdera da nola litzateke integratu dugu CSS marko batekin? Zer dugu seguruenik egingo lukeen da seguruenik genuke, besteak karpeta berri bat non gure CSS fitxategi guztiak irauli genuke, eta, ondoren, txantiloi berri bat ere gehituko genuke. Plantilla en CSS fitxategi horiek honakoak genuke Ziur zaude orri bakoitzean bakarra ari dira erreferentziatutako egiteko, eta orduan, benetan HTML idazten ari zarenean, klaseak egokiak eta whatnot gehitu besterik ez duzu, eta adibidez, formularioan antzeko zerbait erabiltzen ari zaren helper funtzioa, parametro gehiago beranduago gehitu dezakezu zer eskolak hainbat gauza erantsi behar nahi duzun zehazteko beraz, behar bezala estilo izan dute, eta hori da, funtsean, nola joan nahi duzun. Beste zalantzaren bat? Awesome. Eskerrik asko zure denbora, eta eskerrik asko etortzeagatik. Ez nintzen oso bestela gehitzen joan, baina 1 gauza benetan azkarra da, ez dugu lotura bat dute itxurara. Benetan muda. Dezagun gehitu bat - benetan ikuspegian, blog, indize, dezagun benetan azkar duten orri berria doan lotura bat gehitzeko, orriaren non post berri bat sartu ahal izango dugu. Horretarako goaz. Zer da polita da han HTML helper funtzio talde hau osoa da zuretzat gauza desberdinak egin eta horrek, beraz, dagoeneko erakundeen ikusi duzu funtziona hemen, baina baita izeneko funtzio bat dute "aingura", eta horrek blog / berria idatzi dezakezu eta esan, "Post blog berri bat." Eta zuretzat lotura duten sortuko litzateke, eta hau badirudi benetan hutsala egin, baina hau da, polita, suposatzen duelako, zure web mugitzen ari zaren 1 domeinu batetik bestera. Eta besterik ez duzu idatzi bada URLak zuk zeuk, Orduz URLak guztiak aldatu nahi duzun. Edo agian mugitu duzu 1 azpikarpeta etatik azpikarpeta bestera. URL horiek guztiak eskuz aldatu beharko zenuke, eta hori ez da dibertigarria. Hementxe aingura hau erabil dezakezu, eta domeinua edo azpikarpeta prefix alda dezakezu konfigurazio fitxategia behin batean, eta ondoren aplikatzeko egingo duela nonahi, eta hau da, berriro, adibide handi bat ez errepikatu zeure burua, zure kodea lehortzeko izarrekin. Lekuan zeure buruari errepikatuz ari zaren, saiatu konfigurazio fitxategia eta nolabaiteko ateratzeko edo bestelako funtzio eta hori kudeatzeko zuretzat. Eta zuk erakutsi nahi nuen azken gauza izan zen Suposatzen itzuli gara post honetan, eta benetan luzea saiakera batzuk nituen, baina nire egile sartzea ahaztu dut. Orain, sakatu "Bidali Post" Guztia galdu dut. Ez! Benetan triste. Beraz, nola egin aurre duzu horrekin? Hau da, zer egiten dugun. Zer egiten dugu hemen sarrera eta testu-eremuan funtzio horiek egiteko, bigarren parametro bat, gero bigarren parametro horren balioa honakoa dugu da zer eremua da, hasieran biztanle joan izango. Zer egin genezake gure blog kontroladorea da, beste aldagai bat lotu ahal izan genuen. Deitu "balio" agian. Eta post array gainditu, literalki. Horrek esan nahi Balidazioak huts egin bada, niri pasatzen post array duen azken eskaera etatik aurkeztu nuen, eta, era horretan nire azken bidalketa balioak erabili ahal dut eremuak berreskuratzeko. Orain balioak egilearen antzeko zerbait egin ahal dut eta balioak gorputz, eta, era horretan, orain random stuff batzuk egin badut eta sakatu "Bidali Post", orduan ez egonaldiak. Baina ari gara behar beste arazo bat sartu exekutatu egingo. Duten lanak, baina banoa orrira bada oso lehen aldiz, da hori da huts egingo, eta oso lehen aldiz delako joan orrialdera dugu, post aldagai honek ez du oraindik zehaztu dira. Da nulua da. Ez da existitzen. Eta zer esan nahi dugun da gako hau baldin badago, ondoren, array honen balioa itzultzeko, baina gakoa ez bada existitzen, orduan kate huts bat itzuliko da. Duten funtzionalitatea hemen nahi duguna da. Gakoa existitzen bada array atzitzean aurretik begiratu nahi dugu, eta, zorionez, nahikoa, Kohana ere helper horretarako funtzio bat ematen digu. Funtzioen suite honetan guztian dute izen ARR azpian, labur array baterako, eta deitzen 1 funtzioa dute "lortzeko," eta array gainditu ahal izango duzu, eta gakoa izenean gainditu ahal izango duzu. Ondoren, funtsean, zer egingo duen da gakoa, hori lortzeko ahalegina egingo da, baina gakoa ez bada array existitzen, ondoren hutsik itzuli da, edo dugun lehenetsi bat zehaztu dezakezu, nire ustez, hau da, polita. Orain gauza bera egiten badugu, ondoren, orain ikusten duzun lehen aldia lan egiten du bere inguruan, eta, berriro ere, idatzi dugu ausazko gauza batzuetan bada eta saiatu eta bidali, eta gero han egonaldiak. Eta uste dut ere erakutsi ahal izango duzu nola txantiloia gehitzeko benetan azkar. Zer egin dezakegu "template.php" izeneko ikuspegi berri bat da gehitu ahal izango dugu Views karpeta barruan, eta zer egin noa da zerbait izeneko inprimatu noa "edukia", hau da nire edukira izango. Eta, agian, oso behealdean naiz gehitzeko joan, esan, copyright. [Inaudible ikasleak galdera] [Brandon Liu] agian super oinarrizko txantiloi bat erabili nahi dut. Orri bakoitzean bakarra nire copyright batera karpeta bat izan nahi dut, eta orain, zer naiz nire controller barruan egingo da orain ordez esaten, "hedatzen Controller" , Esan nahi dut "zabaltzen Controller_Template," eta, orain, ordez esaten, "Erantzun gorputza ikuspegi honen berdina da" Naiz, esan du "txantiloia Eduki hau da -" eta uste dut - ez berdintasun-ikurra jarri dut? Dut ahaztu. Bai, beraz, pentsatu nuen. Eta orain edukia aldakorra duten ikuspegi berdintasuna ezarri dut. Dut hemen gauza bera egin dezake. Eta orain dut freskatu bada, orain ikusi ahal izango dituzu copyright hau gehitu da, eta besterik ez egiteko ausazko post batzuk, eta, ondoren, berriz ere, copyright duten orriaren Oso behealdean dago ikusi behar duzu. Great. Hori da, guys erakutsi nahi nuen guztia. [Txaloak] Zalantzaren bat? [CS50.TV]