>> [CHWARAE CERDDORIAETH]
>> DAVID J. Malan: pob hawl.
Mae hyn yn CS50.
Mae hyn yn dechrau'r wythnos wyth.
Ac efallai y byddwch yn cofio i ni adael off tro diwethaf yn edrych ar iaith newydd
yn gyfan gwbl.
Yn wir, un sy'n deg ysgafn ac nid yw'n hyd yn oed yn
iaith raglennu.
Mae'n iaith markup sy'n ein gadael mewn gwirionedd yn strwythuro a gwneud tudalennau gwe.
A phan rhywbeth arall i chi ar y cyd â this--
neu chi cyn bo hir a fydd, os Nid ydych wedi gwneud hynny eisoes.
Rydym yn mynd i ddefnyddio Rhaeadru Taflenni Arddull, neu CSS, a oedd yn
yn fath arall o iaith gydag eiddo a gwerthoedd
mae hynny'n mynd i adael i ni wneud pethau yn hoffi newid lliw
a newid y sefyllfa a mathau hyn o tweaks.
Ond heddiw ac ymlaen, rydym yn dechrau i canolbwyntio ar ieithoedd yn fwy pwerus,
ieithoedd rhaglennu gwirioneddol fel PHP.
>> Felly PHP wedi bod o gwmpas ers peth amser.
Ac fel y gwelwch, mae'n ei gynllunio yn bennaf
yn gynnar ar gyfer go iawn defnyddio yn datblygu ar y we
ac mewn gwirionedd yn cynhyrchu tudalennau gwe.
Felly, pa fath o nodweddion yn gwneud iaith
angen er mwyn gwneud y we tudalennau yn ddeinamig ag ef?
>> Mewn geiriau eraill, os ydych am i gynhyrchu Cynnwys dynamically-- fel Facebook yn
Newsfeed, sy'n newid yn gyson, neu negeseuon gwib sy'n pop i fyny o bryd
i adeg-- fel beth yw'r darn allweddol o functionality
ei angen arnoch mewn iaith raglennu a fyddai'n gadael i chi ddynamig
argraffu gwybodaeth newydd i'r sgrin?
>> MYFYRIWR: Cod.
DAVID J. Malan: Cod.
OK.
Byddwn yn cymryd hynny.
Ychydig yn fwy manwl gywir.
Yr wyf yn golygu, gallem wneud hyn gyda C, a dweud y gwir.
Byddai'n fod yn boen yn y gwddf.
But-- yw ymrwymiad hwn?
>> MYFYRIWR: Yeah.
Newidynnau, efallai?
DAVID J. Malan: Newidynnau.
OK, yn sicr.
Gall Newidynnau sicr yn ein helpu allan.
A hyd yn oed rhywbeth symlach.
Rydym yn ei ddefnyddio yn y cyntaf un rhaglen o'r diwrnod cyntaf un
pan ddywedodd mewn gwirionedd "helo byd."
>> MYFYRIWR: Print.
>> DAVID J. Malan: Print, dde?
Print, neu printf yn y fyd C. Felly yr holl amser hwn,
rydym wedi cael yn ein gwaredu a language-- C,
mewn particular-- a hyd yn oed Scratch ar gyfer y mater hwnnw
Gall cynhyrchu llinynnau o destun.
>> Wel, os HTML, fel y gwelsom yr wythnos diwethaf, yn dim ond criw cyfan o linynnau o destun
er gyda cromfachau agored a chaeedig cromfachau a rhyw fath o odl
a rheswm y tu ôl iddo, dda yna gallem wir
ddechrau cynhyrchu tudalennau gwe naill ai â llaw drwy deipio nhw allan yn gedit
neu yn Microsoft Word, o ran hynny matter-- rydym jyst angen golygydd testun.
>> Neu gallem ysgrifennu cod, at eich awgrym
yn gynharach, byddai hynny'n gadael i ni ddeinamig cynhyrchu HTML,
a dyna beth rydym yn mynd i ddechrau yn ei wneud gyda PHP
ac yn y pen draw, hyd yn oed gyda iaith o'r enw JavaScript,
yn defnyddio un iaith i gynhyrchu un arall.
Ac yn wir, dyma beth Facebook a llawer, llawer o safleoedd eraill
ei wneud i mewn gwirionedd yn ddeinamig arddangos gwybodaeth newydd i chi.
>> Felly gadewch i ni ddechrau gyda this-- a lein yn edrych cryptig, ond mae un
dyna mewn gwirionedd yn eithaf pwerus.
Hyd yma, rydym wedi bod yn defnyddio C, sy'n iaith luniwyd.
A dim ond yn recap-- cyflym a luniwyd Mae iaith pa nodweddiadol?
Mae'n amlwg bod angen i chi i lunio iddo, ond beth mae hynny'n ei olygu?
Yeah?
>> MYFYRIWR: Mae angen iddo fod cydosod i mewn i cod beiriant.
>> DAVID J. Malan: OK.
Mae angen iddo fod yn ymgynnull i mewn i cod peiriant.
Felly, byddwch yn cymryd eich cod ffynhonnell, sydd yn fath o Saesneg-debyg.
Rydych drosi hynny i rhywbeth lefel is,
a elwir yn y pen draw gwrthrych code-- 0 ac 1 yn.
Ac mae'n y rhai 0 a 1 yn y CPU, fel y rhai a wnaed gan Intel,
mewn gwirionedd yn deall.
>> Yn awr, PHP a Python a Ruby a JavaScript a sypiau o eraill
Nid yw ieithoedd yn cael eu llunio iaith ond dehongli ieithoedd,
sy'n golygu eich bod yn unig yn eu teipio ac yna na fyddwch yn eu troi i mewn i 0 ac 1 yn.
Chi yn hytrach na dim ond darparu yna fel mewnbwn i raglen rhywun arall,
Gelwir cyfieithydd.
A bod y person hwnnw rhaglen wedi ei chynllunio
i ddeall beth mae pob a pob symbol yn Python neu PHP
neu Ruby neu unrhyw nifer o ieithoedd eraill yn ei olygu.
>> Ac felly i gyd sydd ei angen yw rhywbeth fel hyn.
Felly, mewn gwirionedd, yr wyf i'n mynd i ewch draw at y peiriant
yma, dim ond i unrhyw hen ffenestri, ac rydym yn
mynd i fynd yn ei flaen ac yn agored ffeil o'r enw, yn dweud, helo.
Yn awr yn flaenorol, efallai y byddwn wedi ei arbed mae hyn hyd yn oed gyda estyniad ffeil,
ond rwy'n mynd i wneud rhywbeth hyd yn oed yn symlach yma.
Rydw i'n mynd i fynd yn ei flaen ac yn dechrau ffeil yma gyda hyn chystrawen cryptig.
Felly "defnyddiwr, bin, ENV, ar gyfer yr amgylchedd, php. "
>> Mae hyn yn syml, un llinell o god sy'n yn mynd i ddweud wrth fy system weithredu,
mynd yn dod o hyd yn eich leol amgylchedd beth bynnag hynny yw,
lle bynnag PHP yw-- y interpreter-- ac yn mynd yn ei flaen ac yn defnyddio y cyfieithydd
i ddehongli'r cod ganlynol.
Yn awr, mae hyn yn fath o nodwedd hyll o PHP.
Ond yn yr iaith hon, unrhyw tro y byddwch yn ysgrifennu cod PHP,
angen i chi gael un o'r rhain yn hyll Tagiau PHP demarcating y dechrau
o'ch code-- <? php.
>> Ond yn is yma, gallaf yn awr wneud rhywbeth eithaf syml, fel printf atalnod helo
byd slaes n agos quote, parenthesis cau.
Ac yna yn unig ar gyfer da mesur, dw i'n mynd
i fynd yn ei flaen ac yn agos fy tag php dros yma
fel eu bod yn edrych popeth 'n glws' n bert hargraffu.
>> A chyn gynted ag yr wyf cliciwch Save, gedit yn ddigon smart mewn gwirionedd
i edrych ar y llinell gyntaf iawn ac sylweddoli, oh, rydych yn ysgrifennu cod PHP.
Gadewch i mi Uchafbwynt cystrawen 'i ag y lliwiau
yma fel y mae'n sefyll allan ychydig yn fwy.
Ond yn awr yr wyf i'n mynd i fynd i lawr at fy ffenestr terfynell.
'N annhymerus' chwyddo mewn.
>> Mae'r rhaglen hon yn ei alw "helo," felly dw i'n mynd i wneud dot slaes helo,
ond caniatâd gwadu.
A bash.
Rydym mewn gwirionedd yn clywed am hynny wythnosau beth cwpl yn ôl
yng nghyd-destun Shellshock, un o'r rhai bugs.
>> Ond mae caniatâd gwadu rydym wedi gweld o'r blaen, efallai mewn cyd-destun gwahanol.
A oes unrhyw un yn cofio sut efallai y byddwch atgyweiria rhywbeth
pan fo caniatâd yn cael ei wrthod fel hyn?
Beth yw'r gorchymyn, o leiaf?
>> MYFYRIWR: chmod.
DAVID J. Malan: Yeah, chmod, ar gyfer newid y dull o ffeil.
A byddwch yn cael yr holl mwy a ddefnyddir i yr wythnos nesaf gyda phroblem dilynol
a osodwyd.
Ond am nawr, dw i'n mynd i newid y modd i beidio â bod yn ddarllenadwy,
ond i roi executeability bawb breintiau, y gallu
i redeg y ffeil.
Ac yr wyf i'n mynd i aseinio hynny at y ffeil helo.
>> Os wyf yn awr yn gwneud dot slaes helo fynd i mewn, byddwch yn gweld, mewn gwirionedd, fy rhaglen, helo byd.
A beth cam a wnaeth i mi sgip yn glir yn gyfan gwbl?
Llunio.
Felly, Fi jyst yn rhedeg y rhaglen hon yn syml.
>> Ac mae'n troi allan gallwch wneud hyn gyda llawer o gystrawen sy'n atgoffa rhywun o C.
Gadewch i mi fynd i mewn i cod heddiw, yr wyf yn rhoi yn fy cyfeiriadur vhost
yma, am resymau go iawn byddwn yn dod yn ôl i.
Ac yr wyf i'n mynd i fynd i mewn, gadewch i ni ddweud, amodau 1.
>> A byddwch yn gweld yma, yn gyntaf a mwyaf blaenllaw, criw cyfan o sylwadau.
Ond mae hyn yn mewn gwirionedd ail-greu yn PHP
o raglen a wnaethom mewn wythnos un o'r enw Amodau 1.c
os yw'r diben yn oes y rhaglen hon
yn ôl pob golwg i ofyn y defnyddiwr ar gyfer cyfanrif
ac yna gwneud rhai blewog dadansoddiad arno lle
ydych yn ei ddweud os yw'n gadarnhaol neu negyddol neu'n hafal i sero.
Ac yr wyf yn dod â hyn i fyny yn unig oherwydd, ac eithrio efallai un manylyn bach,
mae'n indistinguishable mor bell o C.
>> Beth yw'r un nodwedd yma nad efallai yn neidio allan
ar chi fel ychydig yn wahanol?
Efallai dau beth.
Yeah?
>> MYFYRIWR: Doler Arwydd n?
>> DAVID J. Malan: Yeah.
Felly arwydd doler n yn bresennol.
A doler arwyddion, fel byddwn yn gweld, yn mynd
i fod yn ateb i'r dechrau o unrhyw newidyn yn PHP.
Mae'n rhai da da ac yn bad-- mewn ei fod yn fath o amlwg beth sydd
newidyn, drwg yn ei fod yn ond peth arall i deipio.
Ac mae un arall beth nad ydym wedi eithaf
gweld, o leiaf trwy sillafu hwn. yeah?
>> MYFYRIWR: Readline.
>> DAVID J. Malan: Readline.
Readline ni welsom, fel y cyfryw, yn C, er bod rhywbeth yn bodoli
yn debyg, ond rydym wedi defnyddio getstring, ac mae hyn yn ei gymar.
Felly, os byddaf yn mynd i mewn i hyn cyfeiriadur, sy'n digwydd bod,
fel y byddaf yn esbonio mewn ychydig yn fy vhost cyfeiriadur ac mae fy ffynhonnell A cyfeiriadur,
ac yr wyf yn mynd yn ei flaen ac yn gwneud dot slaes conditions-- whoops-- dot slaes
amodau 1, byddwch yn gweld, unwaith eto, yr un caniatâd issue-- gwadu.
>> Felly, gadewch i mi chwyddo i mewn a gwneud chmod yn fantais x ar amodau, amodau slaes dot.
Hoffwn yn gyfanrif, os gwelwch yn dda, 50.
A gallem chwarae y gêm drwy'r dydd hir.
Mae'n mynd i ymddwyn yn union fel y gwnaeth yn wythnos un.
>> Iawn felly nid yw bob un sy'n wahanol, ac eithrio nid dim ond bod ychydig bach o cystrawen,
ond ar y brig, yr wyf unwaith eto Roedd gan y llinell hon sydd
a ganiateir i mi i greu rhywbeth sy'n edrych yn debyg i raglen o'r enw C helo,
Gelwir amodau 1.
Ond nid yw 0 a rhai Im 'yn gweithredu yn uniongyrchol.
Yn hytrach ei fod yn rhedeg hyn cyfieithydd y mae ei enw
digwydd bod yn union yr un fath i'r iaith.
Enw'r rhaglen yw PHP, ac mae fy cod islaw'r llinell un yn cael ei basio i mewn iddo.
>> Gallwn wneud un arall yn weddol syml Enghraifft atgoffa rhywun o rywbeth
gwnaethom wythnosau yn ôl.
Unwaith eto, mae hyn yn rhyw fath o darn fympwyol o god
hynny yn ôl pob golwg yn ei wneud beth pan fyddwch yn rhedeg ei?
Beth sy'n hyn yn mynd i'r wasg, yn ôl pob tebyg?
>> Felly, i ddechrau ar linell 16, 'i' mynd i ddweud yn awr x 2, yn ôl pob tebyg.
% D yr un fath ag $ ff am printf.
Felly, yna mae'n cubing, dot, dot, dot, yn unol 17.
Ac yna linell 18 yn ymddangos i alw swyddogaeth torri'n giwbiau.
A lle mae torri'n giwbiau diffinio?
>> Wel, mae'n edrych fel yn llinell 25, felly nid dyna'r cyfan bod gwahanol.
Rwyf wedi cael rhai sylwadau uchod iddo, ond ar y cyfan,
ei fod yn weddol syml drosi neu drosi
o'r rhaglen C i'r fersiwn PHP.
Ond erbyn hyn mae un neu ddau o gwahaniaethau y efallai dylai neidio allan.
Beth arall sy'n wahanol am y ffordd yr ydych Gallai ysgrifennu hyn un rhaglen yn C?
>> MYFYRIWR: [Anghlywadwy].
>> DAVID J. Malan: Mae dim prototeip i fyny top.
Felly PHP-- a dweud y gwir, a llawer o languages-- modern
llawer craffach a mwy defnyddiol nag C crynoadyddion mewn bod chi
Gall rhoi'r swyddogaeth i fyny yma, gallwch roi swyddogaeth i lawr yma,
ac mae'r cyfieithydd yn mynd i wneud i chi y blaid o ddarllen
y ffeil cyfan cyn iddo benderfynu nad yw rhai swyddogaeth yn bodoli.
Felly gwelliannau 'n glws o flynyddoedd yn ddiweddarach.
Ond mae hefyd yn rhywbeth arall sy'n wahanol neu'n absennol yma.
Yeah?
>> MYFYRIWR: [Anghlywadwy].
DAVID J. Malan: nid oes rhaid i ni datgan y mathau o newidynnau,
felly byddwn yn gweld cyn bo hir fod mae gwahanol fathau yn PHP,
ond nid oes angen i chi eu nodi nhw, sydd hefyd yn da a drwg.
Ac mae un peth arall ar goll.
>> MYFYRIWR: Does dim llyfrgelloedd.
>> DAVID J. Malan: Nid oes unrhyw lyfrgelloedd.
Iawn, felly dyna neis.
Rydym yn cael llawer mwy allan o'r bocs.
Felly mae mewn gwirionedd llawer mwy pethau nag yr oeddwn yn meddwl yn wahanol.
Beth am ffordd yn ôl?
Beth sy'n bod?
Yn dweud ei fod unwaith eto?
>> MYFYRIWR: Pointer.
>> DAVID J. Malan: Dim awgrymiadau.
OK, o leiaf yn yr enghraifft hon, dim.
Mae hynny'n deg.
Felly nid oes awgrymiadau yn PHP mewn gwirionedd yn gyffredinol.
Ceir cyfeiriadau rhywbeth o'r enw, ond ni fyddwn yn treulio gormod o amser yno.
A beth arall?
>> MYFYRIWR: Main.
DAVID J. Malan: Main.
Felly, dyma oedd y biggie Roeddwn yn meddwl am.
Hysbysiad does dim prif bwynt mynediad.
Rydych yn syml, yn dechrau ysgrifennu eich cod.
Ac mae hyn yn mewn gwirionedd mynd i fod yn fanteisiol
pan fyddwn yn pontio am ennyd i mewn gwirionedd gan ddefnyddio
yr un iaith ar gyfer y we sy'n seiliedig ar- rhaglennu, yr ydym
nad ydych am i gael dim ond un pwynt mynediad.
Efallai y byddwn am gael criw o URLs, bagad o wahanol ffeiliau
gyd yn cymryd yn y mewnbwn defnyddwyr a chynhyrchu allbwn.
>> Ond dyma yw'r digalon iawn enghraifft bod addewais tro diwethaf,
sef yn y ffolder hwn yma, camsillafiadau.
Felly, yn y ffeil hon sillafu, yr ydym Ni fydd yn treulio gormod o amser ar, mae yna
hanfod yn porting-- P-O-R-T. Dim ond y gair a roddwyd pryd, dyweder,
byddwch yn newid o un iaith i un arall â llaw fel arfer.
>> Mae hwn yn drosi o PC Fersiwn o sillafu o PSET 5.
Ac yr wyf yn y bôn ceisio drosi mae'n fesul llinell mor agos ag y gallaf.
Felly, os ydych yn hoffi y math hwn o beth, mae mewn gwirionedd yn werth ar ryw adeg
eu tynnu i fyny y ddau ochr yn ochr a gweld beth sydd yr un fath
a beth sy'n wahanol.
Ond maent yn eithaf darn tebyg.
Os ydych yn cofio beth sillafu hyd yn oed yn edrych fel,
hyd yn oed os na wnaethoch rhaid i ni newid y ffeil,
mae'n eithaf tebyg strwythurol gyda dim ond cwpl
newidiadau yma ac acw.
>> Felly mae hyn yn unig i ddweud ei fod yn 'n bert syml i drosi sillafu
o C i PHP.
Ond mewn geiriadur, mae rhywbeth hyd yn oed yn fwy cymhellol.
Gadewch i mi fynd yn ei flaen ac yn creu fy ffeil dictionary.php hun.
Felly, ychydig yn wahanol yn hynny o byddwn yn ei alw'n .php yn lle .c.
Gan fod hon yn ffeil PHP, yr wyf yn do-- ychydig annoyingly-- gael
i gychwyn y ffeil gyda tag php fel 'na.
Ac yr wyf i'n mynd i fynd yn ei flaen ac yn diffinio rhai swyddogaethau.
Swyddogaeth a elwir yn siec, sef mynd i gymryd mewn gair fel o'r blaen.
Ond mae dadl hwn mynd i gael doler
llofnodi oherwydd ein bod, unwaith eto, gan ddefnyddio PHP.
Swyddogaeth arall o Roedd dictionary.c llwyth
ac mae'n cymryd yn enw'r geiriadur, felly byddaf yn cael y swyddogaeth yn barod i fynd.
>> Un arall yn dictionary.c oedd beth?
Maint yn un o'r rhai garedicaf, yn lleiaf os ydych yn cadw rhywfaint o amrywiol o gwmpas.
felly dim ond mae maint i ddychwelyd newidyn.
Ac yna yr oedd dadlwytho.
>> Felly roedd pedwar rhain swyddogaethau yn y broblem a osodwyd 5
bod angen i chi ei rhoi ar waith gyda rhywfaint o strwythur data neu strwythurau.
Felly yr wyf yn addo bod yn PHP, gallwn ddatgan
tabl hash, er enghraifft, bob un sy'n haws.
Yn wir, os wyf am tabl hash, Im 'jyst yn mynd i fynd fel' na
ac mae fy mwrdd hash.
A dyna y nodyn, ddigalon, ein bod yn chwith oddi ar y tro diwethaf.
A ydych yn gwybod beth, os oeddwn i eisiau newidyn ar gyfer maint, yn dda,
Nid yw hyn yn un i gyd sy'n wahanol i C,
ond yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hynny.
Ac yn sylwi ar unrhyw fath o ddata.
A byddaf yn mynd yn ôl yn nes ymlaen ac mewn gwirionedd yn ychwanegu rhai sylwadau yma.
Ond beth am y llwyth?
>> Os geiriadur arwydd doler yw enw fy ffeil
a Fi 'n weithredol yn awyddus i lwytho geiriau yn y tabl hwn yn awr,
Gallaf ei wneud mewn gwirionedd rhywbeth eithaf syml.
One-- ac mae hyn yn minorly annoying-- yn PHP,
rhaid i chi nodi y tu mewn o swyddogaeth os ydych
awyddus i gael gafael ar rai byd-eang newidyn sy'n cael ei diffinio'n tu allan.
>> Ond nid yw hynny'n arbennig diddorol ar hyn o bryd.
Beth sydd yn fwy diddorol yw hwn ar gyfer pob un adeiladu y soniais amdanynt tro diwethaf.
Ac mae'n ymddangos fod PHP swyddogaeth Gelwir ffeil y mae ei bwrpas mewn bywyd
yw i agor ffeil ac yn darllen ar y pob un o'i linellau i mewn arae
ac yn llaw yn ôl i.
>> Pa un yw dweud fy mod yn gallu gwneud geiriadur hynny sydd bellach yn effeithiol pan alwaf ffeil,
mae hyn yn mynd i law mi yn ôl amrywiaeth o eiriau o'r ffeil.
Nid yw popeth yn dda hwnnw.
Mae hi dal yn mynd i fod yn llinell o eiriau, rhywbeth llinol.
Ond gallaf fynd yn ei flaen ac yn ailadrodd dros bob un o'r geiriau hyn gan ddefnyddio
bod cystrawen gwelsom tro fyr diwethaf.
A byddwch yn gweld yn fwy yn y PSET sydd i ddod.
>> Ond yn awr mae gen i ailadrodd dolen dros bob gair yn y geiriadur.
Ac ar bob iteriad, yn cofio fy mod galw y gair cyfredol "gair."
A'r holl mae'n mynd i gymryd i rhoi gair yn y geiriadur yn
mynd i fod yn dyfalu gair "yn wir."
Dyna fy insert swyddogaeth.
Dyna fy swyddogaeth llwyth am fy ngeiriadur.
Nawr mae'n dipyn o twyllo oherwydd, eich bod yn gwybod beth, mae mewn gwirionedd
slaes n ar ddiwedd y geiriau y mae'n debyg y dylwn gael gwared,
ond nid yw hynny'n broblem oherwydd PHP wedi swyddogaeth o'r enw chop sy'n llythrennol
golwythion oddi ar un cymeriad ar y diwedd un.
Felly nid oes problem yno.
Rydym wedi mynd yn ei flaen ac mewn gwirionedd fyrhau bod i ddim ond hyn.
Ac yn awr mae'n debyg y dylwn gadw trac o faint, felly gadewch i ni o leiaf yn gwneud this--
maint ++.
Rwy'n gallu gwneud hynny fel o'r blaen.
Ac yna mae hyn yn fwy na thebyg yn mynd i yn gweithio jyst ddirwya, fel bod yn dychwelyd yn wir.
Done.
PSET 5.
>> [Chwerthin]
>> DAVID J. Malan: OK.
Rydym yn mynd i wneud hynny eto gyda'r PSET nesaf, hefyd.
Felly beth am faint?
Wel, mae hyn yn un, gobeithio, yn ymwneud â fel y byddech yn disgwyl y tro diwethaf,
er bod rhaid i mi wneud y peth fyd-eang dwp.
'I' jyst yn arteffact o dyluniad yr iaith.
>> Ond mae siec yn ychydig yn fwy diddorol.
Felly, os wyf yn pasio yn doler llofnodi gair, yr wyf yn gyntaf
awyddus i gael mynediad i y tabl newidyn byd-eang.
Ac yn awr os wyf eisiau gadarnhau a oes gair yno,
Gallaf ddweud yn syml os yw'n wir bod y canlynol yn cael ei osod yn y tabl,
Yna mynd yn ei flaen ac yn dychwelyd yn wir; arall, yn dychwelyd ffug.
Done.
Mae hanner arall y PSET 5.
>> Mae pob hawl, felly unwaith eto, rwy'n torri rhai corneli.
Bod yn deg, yr wyf dylai yn ôl pob tebyg yn treulio ychydig mwy o eiliadau
ar weithredu hyn.
Ac yr wyf yn ôl pob tebyg ni ddylai ffug holl oriau rydych yn ei roi ar y PSET cymaint.
Felly strtolower yn swyddogaeth.
Rhywbeth dirfodol tebyg yn C, o leiaf ar gyfer cymeriadau,
ond mae PHP yn got a fersiwn llinyn cyfan.
>> Mae hynny'n mynd i orfodi popeth i lythrennau bach, y mae rhai ohonoch
allai fod wedi ei wneud i canonicalize beth baech chi'n gosod yn eich geiriadur.
Ac yn awr y gallwch chi wneud hyn yn C, hefyd.
Mae hyn wedi ddim i'w wneud â PHP.
>> Ond unrhyw tro y byddwch yn cael cyflwr Boole,
fel rhywbeth ar lein 10 yno, sydd ond
mynd i werthuso i gwir neu ffug, ac yn eich os arall glir
yn dychwelyd gwir neu gau, y gallwn yn syml 'n sylweddol yn gwneud sexier hwn
a dim ond yn gwneud rhywbeth fel hyn.
Fel y mae fy swyddogaeth gwirio.
Iawn, os yw'r Boole yn dychwelyd wir neu'n anwir,
gadewch i ni dim ond dychwelyd ar unwaith.
>> Ac mae rhai tweaks eraill Gallwn wneud yma ac acw.
Dadlwytho Load--, gyda llaw, sy'n cael ei wneud.
Dim byd i'w wneud yno.
Gan fod pob un o'r cof yn PHP a llawer o ieithoedd eraill
yn cael ei reoli mewn gwirionedd ar eich cyfer chi.
Felly, tra yn C, fel y rydych wedi dysgu poenus,
unrhyw beth rydych malloc neu calloc neu realloc, mae'n rhaid i chi i ryddhau eich hun.
Unrhyw beth rydych fopen, rhaid i chi fclose, fel bod adnoddau yn cael eu rhyddhau yn y pen draw
ac nid yw offer fel Valgrind yn ei wneud sylwi ac nid ydynt yn cwyno,
sy'n beth da i redeg ar eu cyfer.
>> Ond yn sicr, mae'n rhaid i yno fod rhywfaint o dal, dde?
Fel arall, rydym yn fath o wastraffu criw cyfan o wythnosau.
Felly mae unrhyw nifer o resymau pam yr ydym yn fath o gymryd llwybr hwn,
ond mae masnach-off.
I'r dde, mae hyn wedi bod yn thematig.
>> Felly beth allai cyfaddawd yma yn symud, o C i PHP?
Teimlo fel i gyd yn ennill hyd yn hyn ar wahân ychydig o hylltra yma ac acw.
Yeah.
Beth sy'n bod?
>> MYFYRIWR: [Anghlywadwy] cof.
DAVID J. Malan: Cyflymder.
OK.
Wel, fy cyflymder yn eithaf cyflym.
Hawl?
Ond mae cyflymder y gweithredu i roi'r rhaglen?
Iawn, felly mae hynny'n bwynt teg.
>> Felly, fel y byddai'n digwydd, yr wyf o flaen llaw Giwio i fyny y ddau fy ateb cais, mae'r un
Roedd gen i ar y bwrdd mawr yn ateb sy'n seiliedig arni-,
ac yr wyf wedi bod yn y cyfeiriadur hwn yn fan hyn.
Felly yr wyf yn mewn munud, gallaf fynd yn ei flaen ac rhedeg hyn ar y Brenin Iago Beibl,
taro Enter.
Ac mae hyn yn gobeithio gywir gweithredu ar y diwedd,
yn rhoi amser i mi i gyd o 0.38 eiliad ar gyfer hynny
un enghraifft braidd yn fympwyol.
>> Ac os wyf yn awr yn mynd i mewn i hyn ail ffenestr terfynell
dyma lle agorais gedit yn gyntaf, gadewch i i mi fynd i mewn i code-- heddiw sydd, unwaith eto,
yw yn y cyfeiriadur hwn Yma-- ac gadewch i mi fynd yn ei flaen ac yn rhedeg sillafu.
Felly, dim ond i fod yn glir, dyma'r fersiwn PHP.
Im 'jyst yn dangos ben hynny yma.
>> Felly, os wyf yn gwneud sillafu o CS50 tild PSET 5 testunau, y Brenin Iago, fynd i mewn.
Mae'n dal i fod yn gyflymach na ysgrifennu yn C, ond cyfanswm yr amser
yw, rhybudd, 0.93, tra bod fy Gweithredu seiliedig-C yn 0.38.
Felly mae'n wahaniaeth heb fod yn ddibwys.
>> Ac mae hyn yn unig ar un ffeil.
Pe baech yn rhedeg y ddau rhaglenni yn erbyn y bwrdd mawr
a chael criw cyfan o fewnbynnau profi, byddai hyn yn sicr yn ychwanegu i fyny.
Ac os oedd gennym setiau data hyd yn oed mwy o faint, hyn, hefyd, yn ychwanegu i fyny yn oed yn fwy.
Felly ie, talu rhywfaint pris o cyflymder yn wir yn wir.
Beth arall?
Yeah?
>> MYFYRIWR: Swm y defnydd RAM.
>> DAVID J. Malan: Swm y defnydd RAM.
Felly doeddwn i ddim yn rhoi un eiliad meddwl wrth ysgrifennu PHP hwn
Fersiwn ynghylch faint cof Roeddwn yn defnyddio.
Rydw i'n llwyr gohirio hynny i PHP ei hun a phwy bynnag ysgrifennodd y rhaglen honno.
A allai fod yn iawn, ond os Fi 'n weithredol' n sylweddol
poeni am gwasgu cymaint o berfformiad allan o fy rhaglen neu allan o fy gwefan
neu allan o ba bynnag offeryn Im 'yn adeiladu, efallai
PHP, yn wir, nid yw'r iaith gywir.
>> Ac yn wir, dyna pam, er enghraifft, mae llawer o servers-- we
y rhaglenni gwirioneddol sy'n gweini content-- we
yn cael eu hysgrifennu mewn PHP neu yn Python neu Ruby.
Maent yn cael eu hysgrifennu, fel byddwch yn awr yn ei wneud gyda PSEt 6,
yn C fel y gallwch wasgu pob darn o berfformiad allan ohono
ac yn wir yn ymarfer rheoli mân-grawn dros beth sy'n
mynd ymlaen o dan y cwfl ac nid dim ond mynd ag ef
yn ganiataol rhai uwch strwythur data lefel.
>> Ystyriwch, wedi'r cyfan, pwy bynnag mewn PHP ar waith
y syniad o hash table-- ei fod mewn gwirionedd yn fwy
a elwir yn briodol yn array-- cysylltiadol mae ef neu hi yn cael unrhyw syniad pa fath
o fewnbynnau yr ydych yn mynd i fod rhoi i mewn i'r strwythur?
Felly, yn amlwg nid, dde?
Mae'n arf generig yn y pecyn cymorth sydd ar
a ddarperir i unrhyw un sydd am i'w ddefnyddio, ac yn y blaen yn sicr iddo
Ni ellir ei optimized yn y pen draw am yr union beth rydych am ei wneud.
>> Felly, gallai amser datblygu masnach-offs-- yn wahanol, efallai y perfformiad yn wahanol,
Gallai cymhlethdod neu chof chynefod yn wahanol.
Ac felly yr hyn y byddwch yn dod o hyd yn gynyddol yw bod yna
yn mynd i fod yn wahanol offer ar gyfer y fasnach.
Ac yn wir am fwyafrif super o prosiectau terfynol pobl yn y dosbarth hwn,
credwch neu beidio, nid yw C yn mynd i fod yn yr iaith gywir i'w defnyddio.
>> Ac yn wir, un o'r siopau cludfwyd yn y pen draw ar gyfer unrhyw ddosbarth fel hyn
yw i wneud i chi feddwl am, yn dda, beth ddylech chi ei dynnu i ffwrdd
y silff pan fyddwch eisiau i ddatrys rhyw broblem.
Ac yn wir, byddwn yn croesi'r bont hon hyd yn oed mwy wrth i ni edrych ar fwy o ieithoedd
hyd yn oed y tu hwnt heddiw.
>> Felly gadewch i ni pontio nawr i efallai cyd-destun mwy cyfarwydd
am ddefnyddio iaith fel PHP.
Mae'n braidd yn gyffredin i'w defnyddio yn y llinell orchymyn, ysgrifennu sgriptiau
fel y gwnes i, ond mae'n llawer, llawer mwy cyffredin.
A'r bwriad oedd i gael ei ddefnyddio mewn ar ffurf ffeiliau sydd fel arfer yn dod i ben
yn .php-- ond mae hynny'n nid yw prerequisite--
bod eu hunain yn cynhyrchu cynnwys ar y we.
>> Felly, gadewch i mi fynd yn ei flaen ac yn agor ychydig enghreifftiau I baratoi ymlaen llaw.
A dyma mewn gwirionedd yn fath o wir straeon yn yr un o'r pethau cyntaf
Wyf byth yn gwneud fy hun ar ôl gorffen CS50 ac efallai, yr wyf yn meddwl,
Flynyddoedd CS51 yn ôl yw fy roommate ac yr wyf yn helpu
i redeg y rhyngfurol freshman rhaglen chwaraeon, a oedd, ar y pryd,
Roedd freshman cofrestru ar gyfer gwahanol chwaraeon trwy lenwi darn o bapur,
fel y gelwid, cerdded ar draws yr iard i Wigglesworth,
ac yn gollwng ei mewn rhai galw heibio drws Proctor yn.
Ac yna byddai ef neu hi yn mynd trwy nhw ac yna mewn gwirionedd yn llaw e-bostiwch ni
ein bod yn cofrestru ar gyfer rhai chwaraeon.
>> Felly, yn amlwg, yn gyfle ar gyfer gwella.
Y dyddiau hyn, efallai y byddwch yn troi at jyst Ffurflenni Google, ond yn ôl yn y dydd,
roedd rhaid i ni gyrraedd mewn gwirionedd for-- hyn Nid oedd hyd yn oed yn hynny o amser ago-- cyrraedd
ar gyfer rhaglennu iaith nad oedd yn PHP.
Ar y pryd, yr oedd yn rhywbeth o'r enw Perl,
sydd wedi mynd allan o ffasiwn ers hynny.
Ond mae'r syniad yr un fath.
>> Ac yr wyf yn y bôn yn eistedd i lawr i roi cynnig i borthladd yn mynd fersiynau Perl i PHP,
ond mewn ymwadiad llawn, nid oedd yn rhoi unrhyw Credir bod y estheteg eto.
Felly dyma yn dudalen we.
Mae hyn yn ffeil.
Os byddaf yn chwyddo i mewn, ei debyg Gelwir froshim0.php
dim ond oherwydd ei fod yn ein cyntaf Enghraifft yn y gyfres hon.
Ac yn sylwi ei fod wedi yr hyn sy'n ymddangos i fod yn ffurf HTML hyll iawn,
ond mae ffurflen yn ddiddorol oherwydd ei fod yn caniatáu
mi i roi mewnbwn defnyddiwr i'r porwr.
>> Nawr tro diwethaf pan oedd gennym ffurflen, i pwy wnaeth rydym yn cyflwyno ein paramedr ymholiad,
y paramedr ciw fel y gelwid?
Felly i Google, dde?
Rydym punted llwyr ar y syniad o gwneud unrhyw beth gyda mewnbwn hwnnw.
>> Ond heddiw, rydym yn dechrau cynhyrchu allbwn.
Ac ymddygiad yr wyf i'n mynd i weld yma yn y lle cyntaf yn eithaf dibwys.
David, 'n annhymerus' gwirio off rhyw yma, yn dweud Matthews yma.
Ni fyddaf yn gapten.
Rydw i'n mynd i glicio Gofrestr.
Ac yn sylwi bod yr URL wedi newid i gofrestru-0.php,
ac yna mae hyn yn destun hyll yma.
Rhoddais unrhyw meddwl i y fformatio hyn.
>> Ond yr hyn sy'n ddiddorol yw bod tri yn ôl pob golwg gwerthoedd eu pasio yn.
Mae hwn yn fath o PHP cyfateb i printf--
gawn ni weld beth y mae'n ei alw 'n sylweddol mewn bit-- mai dim ond yn argraffu allan
hyn yr ydych yn pasio i mewn iddo.
Felly mae hyn yn awgrymu bod y ffurflen honno Roedd gan o leiaf tri chae iddo,
a welsoch fi yn eu teipio i mewn.
Roedd un yn fy enw i, roedd un yn rhyw, roedd un yn noswylio.
Ac nid capten oedd hyd yn oed yn cael eu hanfon at y gweinydd oherwydd doeddwn i ddim yn ei wirio.
>> Felly, mae hyn yn ei ddweud yn ôl pob golwg, pan fyddwch yn cyflwyno pethau ar y we,
nid yn unig y mae'r URL weithiau change-- weithiau nid yw'n gwneud hynny.
Yn wir, newidiodd yr enw ffeil, ond yr hyn sy'n absennol o'r URL
ein bod wedi gwneud yn gweld y tro diwethaf gyda Google.
Yeah?
>> MYFYRIWR: Dim llinyn ymholiad
>> DAVID J. Malan: Does dim llinyn ymholiad.
Does dim cwestiwn farc rhywbeth.
Does dim cwestiwn farc q hafal cathod, fel y gwnaethom y tro diwethaf.
A does dim yn sicr Enw'r marc cwestiwn yn dychwelyd
David neu dorm hafal Matthews, felly lle mae bod i gyd yn mynd?
>> Wel, gadewch i mi fynd yn ôl i gedit yma ac yn agor y cyntaf o ffeiliau rhai
yn fy vhost, llu lleol, y cyhoedd cyfeiriadur yma ac yn mynd i mewn i froshim0.
Felly, mae'n troi allan bod bron i gyd y dudalen hon yn unig yw HTML.
A gallai hyn fod yn anghyfarwydd i chi, ond yn fuan bydd yn fwy felly gyda PSET 6
a PSET 7 a PSET 8.
Ond dim ond un dudalen HTML yw hon.
>> A'r pethau diddorol ymddangos i fod dros yma.
Mae ffurflen tag y mae eu camau priodoledd Mae gwerth o gofrestr 0.
Dyna pam pan fyddaf yn cyflwyno hyn, mae'n mynd at y ffeil.
Ond mae dull yn wahanol ar ôl today--.
Felly, mae'n troi allan mae 'o leiaf ddau ddull ar y we a ddefnyddir
i anfon gwybodaeth o borwr i gweinydd.
Get yn ei roi yn yr URL.
Post rhoi yn rhywle arall.
A phryd a pham y gallai chi mewn gwirionedd am gael gwefan
i ddefnyddio post yna yn lle o gael, dim ond yn reddfol?
Unrhyw wefan.
Pa fath o ddata y dylid eu pasio yn unig drwy awgrym yn awr drwy'r post yn hytrach na
i gael, os ydym wedi gweld y ddau gwahaniaethau?
MYFYRIWR: [Anghlywadwy] ddiogel.
DAVID J. Malan: Os ydych am rhywbeth i fod yn ddiogel.
Felly, efallai y byddwch yn teipio cyfrinair i mewn i gwefan, cerdyn credyd
i mewn i gwefan byddai fath o rhain suboptimal
os bydd y porwr rhoi hynny Gwerth tu mewn i'r URL.
Pam?
Byddwch yn gweld ei fod, nad yw'n yn ymddangos i fod yn beth mawr o'r fath,
ond groes yn eithaf chi gerdded yn aml ffwrdd oddi wrth eich cyfrifiadur cyfrifiadur neu ddefnyddio
labordai, ac yn y blaen rhywun arall neu hyd yn oed roommate
Gellid yn hawdd cerdded i fyny ac yn gweld bod gwybodaeth breifat.
Pan fyddwch yn anfon e-bost ar y we, mae'n debyg
ddim eisiau bod yn dod i ben data i fyny yn yr URL yn ogystal.
Ac felly mae unrhyw nifer o resymau pam y gallai rydym am ei roi yma.
A hawl photos--, ni allaf hyd yn oed yn eithaf dychmygwch sut y byddech yn cymryd graffig,
fel JPEG, a'i roi i mewn URL.
Gallech wneud hynny.
Mae ffyrdd o amgodio iddo, ond mae'n dim ond nid yn syml fel 'na.
>> Felly gofrestru 0 mewn gwirionedd underwhelming iawn.
Mae'r holl mae'n ei ddweud yn llythrennol yw hyn.
Mae'n yn argraffu allan tu mewn rhai HTML tagiau y canlynol.
Mae gen i tag PHP yma nythu tu mewn cyn tag.
"Cyn" dim ond yn golygu testun cyn-fformatio, mono gofod, fel teipiadur.
>> Printr yn swyddogaeth recursive print.
Ac yna mae hyn yn peth diddorol yma.
A byddwn yn dod yn ôl at hyn oherwydd mae pobl eraill,
ond tanlinellu arwydd doler y swydd yn ymddangos yn
newidyn yn PHP yn lle unrhyw beth chi anfon o porwr i gweinydd
yn cael ei storio ar eich cyfer.
A chawn weld sut i gael o y wybodaeth cyn bo hir.
>> Ond yn gyntaf, gadewch i ni fynd yn ôl i enghraifft ychydig yn wahanol.
Mynd i mewn i register-- neu yn hytrach, froshims1.php,
sy'n edrych ychydig yn wahanol.
Cymerais ychydig yn fwy ymdrech gyda fformatio,
hyd yn oed er ei fod yn dal i fod yn eithaf hyll.
Ond dw i'n mynd i fynd yn ei flaen a deipio i mewn "David" nawr.
Gwryw.
Byddwn yn gwirio "capten" y tro hwn.
Fe wnawn Matthews.
A chofrestru.
>> A'r tro hwn y mae'n ei ddweud, EM, nid mewn gwirionedd.
Mae pob hawl, felly beth gofrestr 1?
Gadewch i mi fynd i mewn i gofrestr agored 1 EM ac--.
Mae pob hawl, felly mae hyn yn ddiddorol, ac mae hyn yn
yn gam tuag yn awr tuag at rhaglenni mwy diddorol.
>> Sylwch ar y top y ffeil mae gan Tag PHP yn ogystal â rhai sylwadau.
Ac mae'r rhain yn, am y tro, yn tynnu sylw felly gadewch i ni dim ond cael gwared ar y sylwadau hynny
yn union fel eu bod yn C. Ac yr wyf yn hawlio gyda darn yma o god gyda sylw
bod y cod hwn yw dilysu'r cyflwyniad.
>> Wel, mae'n ymddangos fod newidynnau fel arwydd doler
tanlinellu post yn Gelwir newidynnau super.
Maen nhw fel y rhain newidynnau byd-eang arbennig
sydd yr un Omni-ar hyn o bryd sydd ar gael o fewn eich rhaglen.
A gallwch ddefnyddio nodiant braced sgwâr i mynegai i mewn iddynt beidio â defnyddio rhifau
fel 0, 1, 2, 3, ond geiriau eu hunain.
>> Felly, gallwch chi feddwl am arwydd doler tanlinellu swydd fel math o tabl hash
y gallech ei drosglwyddo allwedd i mewn i, am-edrych gair mewn-rhwng y bachau petryal,
ac mae'n mynd i roi rhywbeth yn ôl i'r chi gwerth y mae'r defnyddiwr a ddarperir mewn gwirionedd.
PHP swyddogaeth Gelwir wag mai dim ond
yn dweud ie neu ddim, mae hyn yn newidyn yn wag ai peidio.
Mae gennym bariau dwbl hyn, a dim ond yn golygu, neu, fel yn C.
>> Felly, i bob pwrpas, y llinell 4 yn unig dweud os nad yw'r defnyddiwr yn rhoi enw
neu ddim yn rhoi rhyw neu nid oedd rhoi dorm, mynd yn ei flaen ac ailgyfeirio iddo
neu hi drwy'r llinell hon fan hyn.
Felly mae hwn yn ychydig yn cryptic, ond mae hyn yn unig yn golygu yn llythrennol
mynd yn ôl i'r lleoliad hwn, felly mae'n Punts defnyddiwr
yn ôl i ble bynnag y daeth ef neu hi rhag.
Ond mae'n ychydig yn inelegant yn fy mod godio yn anodd.
>> Ond beth os yw hyn os yw cyflwr nid yw'n gwerthuso i gwir?
Beth os bydd y defnyddiwr yn rhoi i mi ei neu ei henw a dorm a rhyw?
Os nad yw cyflwr yn mynd i werthuso i gwir,
felly dwi ddim yn taro yr allanfa yn llinell 7.
Felly, beth sy'n digwydd?
Ac mae hyn yn beth sy'n diddorol am PHP.
>> Gallwch alw i mewn ac allan y dull PHP, fel petai.
Os ydych am gael rhywfaint o cod i weithredu, gallwch agor a chau'r tag PHP
ac yn rhoi cod yno fel yr wyf wedi ei wneud yma.
Cyn gynted ag y byddwch yn cau y tag PHP, mae'r gweinydd
yn unig yn mynd i boeri allan beth bynnag yr ydych yn ei roi yno.
Ac yn wir, mae hyn yn rhan o y cynllun gwreiddiol o PHP,
er gwell, er gwaeth, roedd hyn commingling o god a markup
iaith.
A byddwn yn gweld bod hyn yn iawn yn gyflym yn datganoli i mewn i llanast.
Ac felly byddwn yn gwneud yn well na mae hyn yn y pen draw, ond dim ond
yn sylwi pa mor hawdd rwy'n â hwy mewn gwirionedd yn gallu cyflawni rhywfaint o resymeg.
>> Ond yn dal i fod ychydig yn anfoddhaol.
Gadewch i agor fersiwn dau o IMS Frosh, a oedd
yn ôl pob golwg yn cyflwyno i register2.php.
Felly y ffeil hon yn mynd mewn gwirionedd i edrych bron yr un fath.
Rydw i'n mynd i fynd i Frosh IMS 2.
Ond yn Frosh IMS 2, gadewch i ni weld beth sy'n digwydd.
>> David, cliciwch y botwm radio, fel y fe'i gelwir; Matthews, dim capten.
Cofrestru.
Ydych wedi cofrestru.
Ddim mewn gwirionedd.
O aros, rydym yn unig yn gwneud yr enghraifft honno, nid wnaethom ni?
Mae pob hawl, yn sefyll yn ôl.
Byddwn yn gwneud y tri.
Mae'n amlwg bod rhywbeth yn ymwneud â i ddigwydd gyda Gmail.
Byddwn yn cyrraedd yno.
>> Felly Frosh IMS 3 yn edrych fel hyn.
Ddim gwahanol.
Ond pan fyddaf yn gwneud David, gwryw, Matthews, a cofrestru, y trydydd a'r olaf version
hawliadau, yn syml, i chi yn cael eu cofrestru mewn gwirionedd.
Dyna fath o amherthnasol.
Ond yr wyf yn gwneud cais gyda hyn trydydd a therfynol version
Yr wyf yn awr wedi ail-greu yn union beth mae fy roommate ac yr wyf adeiladwyd ar gyfer y IMS Frosh
flynyddoedd y rhaglen yn ôl.
Ac yr oedd yn syml.
Nid oedd unrhyw gronfa ddata, dim taenlen Excel.
Ond yn bwysicach, nid oedd unrhyw bapur mwy
gan fod yr hyn a wnaethom gyda rhaglen hon oedd mewn gwirionedd yn e-bostio'r proctor, a oedd
Roedd yn derbyn y gorffennol pethau hyn trwy ffurflenni.
>> Ac i bob golwg rydym wedi rhaglennu hyn yn fath fodd fel bod pan fydd rhywun yn cofrestru,
Negeseuon e-bost cyfrif John Harvard yn y proctor-- neu ef ei hun yn yr achos hwn,
John Harvard-- gyda'r canlynol text-- "Mae'r person cofrestredig yn unig."
Enw i yw David, capten yn wag; rhyw, gwryw; a dorm, Matthews.
>> Felly beth ddigwyddodd yno?
Wel, y ffeil dan sylw fan hyn yn ôl pob golwg register3.php.
Ac os wyf yn agor hyn, byddwch yn gweld ddau grym cod fel hyn
a hefyd, a dweud y gwir, mae'r ansicrwydd o system fel e-bost.
Rwyf wedi esgus jyst yn effeithiol i fod John Harvard yn y ffordd ganlynol.
>> Mae gen i'r tag php agored i fyny top, a oedd jyst yn dweud yma hon ychydig cod PHP.
Lawr yma, yn troi allan yno mae llyfrgelloedd yn PHP.
'Ch jyst nad oes angen i cynnwys ffeiliau header cymaint.
Byddwch yn cael mwy gyda'r sinc y gegin, fel petai.
>> Ond y tro hwn yn llinell 4, yr wyf yn ei wneud eisiau lyfrgell arbennig o'r enw
PHP Mailer, sy'n rhywbeth yr ydych Gall gosod am ddim mewn llawer o systemau.
Lawr fan hyn i ddim yn dilysu y cyflwyniad yn unig
drwy wirio oedd y defnyddiwr yn rhoi mi gael enw, a rhyw, a dorm.
Ac os felly, mynd yn ei flaen ac enghreifftio Mailer.
>> Gallwch feddwl am hyn fel bod yn llinell o god sydd yn unig yn dyrannu.
Mae fel malloc, ond 'i' ychydig yn sexier
yn yr ystyr nad ydych yn sôn yn unig malloc a rhywfaint rhif generig.
Yr ydych yn dweud yn rhoi un o'r rhain i mi, roi i mi un newydd o'r rhain.
>> Ac os ydych chi wedi rhaglennu yn Java neu C ++ neu ieithoedd eraill,
Efallai eich bod wedi gweld hyn.
Ond y tymor byr ohono, os anghyfarwydd, y llinell hon
rhoi i mewn i bost arwydd doler a struct arbennig o'r enw
gwrthrych sydd wedi adeiladu i mewn ymarferoldeb e-bost.
Ac yn wir, yn sylwi a chystrawen tebyg.
>> Nid yw hyn yn pwyntydd, fel y cyfryw.
PHP jyst yn defnyddio'r un gystrawen.
Mae'r llinell hon yn ei ddweud defnydd Trosglwyddo Mail Syml SMTP--
Protocol, sydd ychydig y protocol a ddefnyddir i anfon post.
Mae hyn yn pennu'r defnydd Gweinydd SMTP Harvard, sy'n
yn rhywle yma ar y campws.
>> Mae hyn yn ei ddweud pa TCP porthladd rhif i siarad â nhw,
a Fi jyst cyfrifedig allan gan googling neu drwy ofyn i'r ddesg gymorth.
Ac yna gan fod Harvard yn defnyddio rhai diogelwch system ar y server-- bost
o leiaf i amgryptio traffig rhyngoch chi ac ef,
er y gall unrhyw un anfon iddo- Rydw i'n mynd i droi ar y protocol TLS
am gadw hyn yn ddiogel.
>> Ond mae hyn yn lle pethau cael ychydig yn frawychus.
Gallaf jyst fympwyol dweud fy mod jharvard,
a gallaf jyst fympwyol anfon e-bost fy hun yma.
Ac yna gallaf bennu pwnc gyda'r llinell hon fan hyn.
>> Ac mae hyn yn unig yn edrych yn hyll, ond mae'n dim ond bagad o concatenation.
Troi allan PHP Mae symbol super ddefnyddiol, fel rhai ieithoedd, mae'r gweithredwr dot,
a dim ond yn llythrennol concatenates llinyn ar ôl llinyn ar ôl llinyn,
ac nid oes rhaid i malloc neu ffigur i chi allan cyfanswm hyd y llinyn.
Rydych yn unig yn ei wneud.
Ac yn wir, oherwydd fy mod i'n gydgadwyno'r ym mhob un o'r pethau hyn gyda dotiau hyn,
dyna pam yr e-bost i mi anfonwyd yn edrych fel y gwnaeth.
>> Ac yna yn olaf yma, dw i'n anfon post.
Felly, os yw hyn yn ffug, Im 'jyst yn mynd i farw,
sydd yn swyddogaeth sydd yn unig printiau i'r sgrin rhyw neges gwall.
Ond y mae, mewn gwirionedd, ffonio'r swyddogaeth anfon.
Fel arall, os yw pob un yw hyn yn methu, mae'n ail-gyfeiriadau i mi yn ôl yma.
>> A pham wnaeth Gwelaf fod Rydw i'n cofrestru mewn gwirionedd?
Wel, digwyddodd iawn yma.
Felly, yr wyf yn dod â hyn i fyny am un neu ddau o resymau.
>> Un, mae hyn yn union sut os ydych yn adeiladu rhywfaint o wefan ar gyfer prosiect terfynol
neu ar gyfer y byd go iawn, mae hyn yn sut yr ydych yn anfon e-bost atgoffa
at eich cwsmeriaid neu eich tanysgrifwyr.
Mae hyn yn sut yr ydych yn anfon nodiadau atgoffa cyfrinair.
Mae hyn yn sut yr ydych yn anfon negeseuon i bobl bod ganddynt Facebook newydd
neges yn yr arfaeth neu rywbeth fel 'na.
>> Ond mae hefyd yn siarad â y ffaith y gallai hyn
wedi bod yn dda iawn o Davin neu unrhyw un arall.
Ac yr wyf yn dweud y math hwn o gyda gwên oherwydd fy mod yn
hollol siŵr beth sy'n mynd trwy amryw o'ch meddyliau yn y fan hon.
Ond mae hyn yn un o'r rhai yn ei wneud gan fy mod yn dweud, nid fel yr wyf yn gwneud y math o bethau,
oherwydd ei fod yn ddibwys i greu negeseuon e-bost fel hyn.
Ond fel efallai eich bod wedi gweld neu ddarllen yn y Crimson,
yn ddiweddar mae hefyd yn bert ddibwys i bobl
i olrhain yn ôl i ryw tarddiad.
Ac yn gofyn i mi beth amser, efallai amser cinio CS50, sut yr wyf yn gyntaf
got gyfarwydd agos iawn bron i'r bwrdd ed flynyddoedd lawer
yn ôl pan wnes i ddarganfod sut mae'r rhyngrwyd yn gweithio.
Felly, mewn unrhyw achos-- ychydig ar ôl y bwrdd ed wnaeth.
>> Felly, mewn unrhyw achos, mae criw cyfan o newidynnau super,
gan eu bod yn gelwir yma, un ohonynt rydym saw-- post arwydd doler tanlinellu.
Mae 'na cyfatebol o'r enw get, a dyna lle mae pethau o URL
yn dod i ben i fyny yn mynd.
Ac mae criw cyfan o bobl eraill, Sesiwn too-- a gweinydd a cookie.
Byddwn yn dod yn ôl i cwci ryw adeg arall,
ond mae sesiwn yn fath o oer oherwydd i'r dde now-- hyd nes now--
popeth yr ydym wedi ei wneud gyda porwr gwe yn fath o heb wladwriaeth, fel petai.
Gallaf glicio o gwmpas, mynediad ffeiliau ar y gweinydd, rhywbeth
yn digwydd ar y sgrin, ond yna bydd y cysylltiad yn cau.
Mae Internet Explorer neu'r Firefox icon arosfannau nyddu
a 'ch jyst yn gweld beth y dudalen hon yn cynnwys.
>> Felly HTTP yn heb wladwriaeth yn hynny unwaith y bydd yn gwneud cysylltiad,
cael rhywfaint o ddata, dyna ni.
Dim mwy o gysylltiad, yn wahanol Skype, yn wahanol i FaceTime, GChat yn wahanol, a oedd yn
yn cadw gyson cysylltu â'r gweinydd.
Mae'r we yn sylfaenol ddatgysylltu, er ein fe
gweld cyn bo hir sut gallwn ni efelychu pethau
fel Facebook sgwrs a GChat, sy'n cynnal y illusion--
neu ei wneud mewn gwirionedd gynnal cysylltiad cyson gan ddefnyddio
mwy o dechnoleg fodern.
>> Ond os wyf yn mynd i, yn dweud, counter.php, mae hwn yn enghraifft syml arall,
fel y byddwn yn gweld, sy'n meddwl ar hyn o bryd Ymwelais â'r safle sero amser.
Ond os wyf yn syml ail-lwytho y dudalen, ei fod rywsut yn gwybod oeddwn yma o'r blaen.
Os byddaf yn ail-lwytho eto, mae'n gwybod oeddwn yma o'r blaen.
Ac eto ac eto ac eto ac eto.
>> Felly, mae rhywfaint o plus-plussing digwydd, ond rhybudd
y peth bach yn troi erioed felly yn fyr i fyny top ac yna datgysylltu,
felly nid yw'n debyg gen i gyson cysylltiad i fy offer.
Wel, os byddaf yn mynd i mewn i counter.php, yn sylwi pa mor hawdd yw hi.
Cyntaf i mi galw hyn yn arbennig swyddogaeth yr ydym annhymerus fuan
dechrau cymryd yn ganiataol Gelwir sesiwn cychwyn.
Dechrau sesiwn.
>> A sesiwn o hyn ymlaen yn unig mynd i fod yn bwced, fel siopa
cart lle y gallwch roi gwerthoedd ac yn fath o ymddiried fel rhaglennydd
eu bod yn mynd i fod yma pan y defnyddiwr yn dod back-- ail
yn ddiweddarach, awr yn ddiweddarach, hyd yn oed flwyddyn yn ddiweddarach, cyhyd ag y bydd yn ei wneud Nid yw yn glir
eu cwcis, fel y byddwn yn y pen draw yn gweld.
Ac yn awr yr wyf yn unig wedi gael os bydd cyflwr yma.
Felly, os bydd y allweddol canlynol, Gelwir cownter, yn cael ei osod y tu mewn
o super hwn global-- hash hwn bwrdd, os ydych will-- elwir sesiwn,
Yna mynd yn ei flaen ac yn mynnu y werth o'r meddwl session--
o hyn fel siopa cart-- ac yn ei storio
mewn newidyn dros dro o'r enw cownter.
>> Fel arall, os yw'r gwerth cownter oedd heb ei osod yn y basged siopa fel y'i gelwir,
jyst ymgychwyn i 0.
Yn olaf, i lawr yma, yn mynd a rhoi yn ôl i mewn i'r certiau siopa neu y sesiwn
gwerth y cownter +1.
Felly, mae'n troi allan bod hyn Yma-- cynhwysydd arbennig
sydd, unwaith eto, yn un o'r cysylltiedig rhain , amrywiaeth y gallwch arrays mynegai
mewn geiriau yn hytrach na numbers-- parhau hyd yn oed ar ôl y defnyddiwr yn mynd i ffwrdd.
Unwaith eto, byddaf yn mynd yn ôl at y dudalen yn awr.
Mae wedi bod yn funud neu ddau.
Ond mae'n cofio fy mod i wedi bod yma 19 o weithiau o'r blaen.
Mae hyn yn fy 20 ymweliad.
>> Ac felly mae hyn yn mynd i fod yn allweddol i gweithredu unrhyw wefan sy'n cofio
eich bod yn logio i mewn, eich bod yn rhoi rhywbeth llythrennol yn eich trol siopa
i brynu neu eich bod yn cael rhywfaint o nifer o negeseuon yr arfaeth.
Anytime ydych am cofio gwybodaeth,
byddwn yn gweld bod PHP, fel nifer o ieithoedd eraill,
yn rhoi i ni gyda rhith hwn o wladwriaeth hyd yn oed er, fel y byddwch yn gweld yn PSET 6,
fel eich bod yn gwneud ceisiadau HTTP o cleient i'r gweinyddwr, dyna ni.
Unwaith y byddwch yn mynd yn ôl y ymateb, does dim byd mwy
dod yn ôl oddi wrth y gweinyddwr yn ddiofyn.
Ond byddwn yn gweld sut i weithio o gwmpas hynny.
>> Wel yn awr, gadewch i ni geisio glanhau hyn i fyny ychydig bach.
Rydym wedi gweld ychydig enghreifftiau gwahanol yno.
O, ac wrth fynd heibio, am rhai sy'n gyfarwydd neu'n anghyfarwydd,
y rheswm bod y Aeth Enghraifft Frosh IMS
o edrych 'n sylweddol hyll i slightly-- yn dda,
dal ugly-- i ychydig llai hyll er bod dal i fod yn hyll
oherwydd os edrychwn yn y cod ffynhonnell yma,
mae'n troi allan fy mod wedi hyn ar frig y ffeil.
>> Ymddangos bod y cychwyn yn un o nifer llyfrgelloedd ar gael am ddim i maes 'na
nad sy'n bodoli ar gyfer ieithoedd rhaglennu bob amser, ond ar gyfer CSS neu ar gyfer JavaScript
neu HTML neu unrhyw nifer o ieithoedd.
>> A Folks hyn Yma-- Daeth allan yn wreiddiol
o Twitter-- unig wedi criw cyfan o arddulliau.
Mae'n ffeil enfawr yma bod rhywun ysgrifennodd,
neu rywun yn ysgrifennu, dros gyfnod o amser sy'n yn nodi lliwiau a fformatio
a whatnot fel y gallaf fath o fenthyg eu cystrawen
a oes rhaid i chyfrif i maes sut i osod allan fy ffurflen.
Mae hyn hefyd yn cael ei minified fel y gall cyfrifiadur
ei deall ond nid reidrwydd yn ddynol.
Felly dyna pam y stylization wedi newid yno.
>> Ond gadewch i ni yn awr yn gwneud yn well o ran dyluniad,
oherwydd os ydym yn aros i lawr y ffordd yn rhy hir,
ein cod yn mynd i cael flêr ac Messier.
Felly gadewch i ni ganolbwyntio ar yr enghreifftiau hyn yma.
Mae'r olaf ar gyfer heddiw.
>> Felly dyma yn super syml fersiwn 1.0 o wefan CS50 yn.
Mae ganddi gysylltiadau â unig darlithoedd a maes llafur,
ac mae'n defnyddio'r rhestr di-drefn tag-- y tag UL a ddefnyddiwyd gennym y tro diwethaf.
Ac os yn wir, os byddaf agor View Tudalen Source,
byddwch yn gweld bod hyn yn 'n sylweddol,' n sylweddol syml HTML.
Ac yn wir, er bod hyn yn ffeil PHP dan y cwfl,
mae'n dal i fod yn unig poeri allan yn unig HTML am y tro.
>> Felly, os wyf yn clicio ar Darlithoedd, rydym yn gweld hyn yn digwydd.
Ac os wyf yn clicio ar yr wythnos sero, rydym yn gweld hyn.
Ac os byddaf yn cliciwch ar Dydd Mercher, rydym yn gweld hyn.
Ac mae hyn yn ôl pob golwg oedd yr PDF o'r sleidiau o'r diwrnod hwnnw.
Y cyfan yr wyf wedi ei wneud yw cysylltu gyda tag angor i'r URL hwn yma.
>> Felly mae hyn yn unig i ddweud hyn yn 'n bert Fersiwn syml o wefan CS50 yn.
Gadewch i ni weld sut y mae'n cael ei rhoi ar waith.
Os byddaf yn mynd i mewn i'r cyfeiriadur mvc0, byddwn yn gweld ychydig o ffeiliau.
Mae un yn README, felly os rhywfaint o hyn yn rhy gyflym,
gallwch jyst brocio o gwmpas mwy hamddenol yn nes ymlaen.
A rhybudd i mewn yma hon ar ffurf ffeil index.php.
Mae'n ymddangos bod os chi eich hun, y dynol,
peidiwch â nodi enw terfynol mewn URL, mae'r gweinydd gwe fel arfer
infers rhywfaint o enw diofyn ar eich cyfer.
Mynegai dot rhywbeth yn gyffredinol 'r ball.
>> Felly dyna pam y funud yn ôl pan ymwelais â URL hyn yma,
dim enw ffeil, dim ffeil estyniad, dim cyfnod yn yr URL.
'I jyst yn gwybod rywsut magically i chwilio am index.php.
Mai dim ond confensiwn.
Gellid ei alw'n unrhyw beth.
>> Felly os wyf yn awr yn mynd i mewn i index.php, byddwch yn gweld
hynny, indeed-- gadewch i ni cael gwared ar y sylwadau
yma oherwydd mae 'n sylweddol dim byd diddorol iddo-
mae hyn yn unig yw godio HTML galed.
Felly dyna gyson, fodd bynnag, gyda fy hawliad
y gallwch commingle HTML a PHP.
Does dim gwir rhaglennu rhesymeg yn fan hyn.
>> Ac mae'r ffeiliau eraill yn eithaf llawer un mor anniddorol.
'I' jyst caled-godio wythnos un yma i wythnos ac un wythnos m un w,
ar gyfer dydd Llun a dydd Mercher.
Ac yna os byddaf yn agor yr wythnos sero, yn sylwi ei fod yn bron yn union yr un fath.
>> A dyna fath o siop tecawê allweddol.
Sylwch pa mor segur mae hyn yn.
Mae'r ffeiliau hyn prin yn newid, ac eto yr wyf yn tynnu un o'r swyddi hyn copi / past
lle rwy'n cymryd un file-- yn ôl pob tebyg mewn wythnos zero-- gopïo ei
pan ddaeth un wythnos o gwmpas, a tweaked ychydig o werthoedd.
Dylem yn ôl pob tebyg fod yn gallu i wneud yn well na hyn.
>> Felly, gadewch i ni fynd yn ôl i fyny at MVC ac yn mynd i mewn i fersiwn un.
Ac yn sylwi gen i ychydig o ffeiliau, gan fod yr hyn
yn gyffredin i bob un o'r ffeiliau rhai dim ond bryd ago-- os byddaf yn mynd yn ôl i'r fersiwn 0,
gadewch i ni fynd yn ôl i mynegai, a dim ond postulate--
ar ôl i mi gael gwared ar y comments-- pa ran o'r dudalen hon
yn ôl pob tebyg ym mhob un o fy ffeiliau?
Dim ond yn ei alw allan.
Pa linellau yn cael eu dyblygu ar draws pob un o'r tudalennau hyn yn ôl pob tebyg?
Yeah?
>> MYFYRIWR: [Anghlywadwy].
>> DAVID J. Malan: 1 drwy 9.
Yeah, gwbl.
1 drwy 9, ac eithrio efallai 8 yn newid ychydig gan fod CS50
yn dod yn darlithoedd neu wythnos sero neu rywbeth.
Ond bron yn union.
Felly yr holl bethau hyn yn unig fath o gopïo a gludo.
Ac mae cwpl llinellau eraill allaf feddwl
o sydd yn union yr un fath yn ôl pob tebyg ar draws yr holl ffeiliau.
>> MYFYRIWR: 12 a 13.
DAVID J. Malan: Yeah.
Cadarn, 12, 13, a 14 yn ôl pob tebyg, dim ond am fod y pethau diddorol
sy'n digwydd ar linellau 11 a 10, felly byddai'n ymddangos.
Felly gadewch i ni edrych ar fersiwn 1, sy'n ceisio gwella ar hyn.
Mewn fersiwn 1 o'r hwn example-- MVC rydym chi helpu esbonio pa fodd MVC mewn moment--
os byddaf yn mynd i mewn i fynegai, mae'n fath o yn edrych ychydig yn ddryslyd nawr.
Dyw hi ddim mor syml ag o'r blaen.
>> Ond ar ôl i chi ddechrau ddarllen yn ofalus, 'i'
eithaf syml yr hyn y mae'n ei wneud.
Mae'n debyg llinell 1 a llinell 8 wedi cymryd lle
pob un o'r stwff 'ch jyst identified-- ond dim ond ar gyfer mesur da,
Gadewais y ULS yno rhag ofn rhyw Nid oedd gan dyddiau restr o bethau.
Ac felly ei gwneud yn ofynnol yn fath o fel bunt cynnwys mewn copïau C. It a pastau
y cynnwys yn effeithiol dde yma i mewn i'r ffeil.
>> Felly, yn header.php, wrth i chi Gallai casglu oddi wrth ei enw,
yn mynd i fod y pennawd ar y dudalen.
Mae'n fath o ei amddifad yma.
Dim ond mae gan y top iddo, ond does dim mwy o gynnwys isod.
>> Ac os wyf yn edrych ar troedyn yn y cyfamser, sef y ffeil arall mentioned--
yr un yma hyd yn oed yn llai diddorol, ond unwaith eto, mae'n gyffredin i bopeth.
Felly mae hwn yn y troedyn.
Mae hyn yn y pennawd.
Mae hyn yn y ffeil sydd ar newid, felly pam ddim
ceisiwch ffactor allan i'r cyffredin gyda'r ddwy linell yma?
>> Ond gallwn lanhau hyn i fyny ychydig ymhellach.
Rydw i'n mynd i fynd yn ei flaen ac agor fersiwn dau lle
byddwn yn gweld bod yna ffeil newydd, helpers.php.
Gawn ni weld beth yw hwnnw mewn munud.
Gadewch i ni fynd i'r mynegai, gan fod y pwynt mynediad fel o'r blaen.
>> Ac yn awr yn sylwi fy mod yn ei gwneud yn ofynnol helpers.php, nid pennawd neu droedyn.
Ond mae cynorthwywyr yn fath o hoffi helpers.c a helpers.h o PSET 2
neu PSET 3 maith yn ôl pan fyddwch mewn gwirionedd ddim yn chwilio a dod o hyd am hynny PSET,
ac yr ydych wedi cael eich holl cod ar gyfer didoli a chwilio mewn ffeil ar wahân.
Dyna beth sy'n digwydd yma.
>> Ac yn awr llinell 3 yn edrych ychydig yn wahanol.
Ac mae'n un llinell yn unig.
Er mwyn gwneud hyn hyd yn oed yn fwy yn glir, y gallwn jyst
peidiwch bod hyn yn arddull gyson gyda phopeth arall rydym wedi ei wneud.
Ond nid yw hynny'n wir yn newid y functionality.
Dim ond un llinell o god go iawn.
>> Mae'n debyg, mae swyddogaeth Gelwir rhywle rendro pennawd,
a dyma lle mae pethau yn cael 'n bert pwerus.
Hysbysiad bod tu mewn ei cromfachau yw pa ddarn arall o gystrawen?
Mae'n debyg ychydig yn anodd dweud, ond sylwi there's-- 'N annhymerus' yn rhoi rhywfaint o wyn
gofod.
Mae cromfachau sgwâr.
>> A bachau petryal gwelsom ychydig yn ôl yng nghyd-destun araeau cysylltiadol,
sydd, unwaith eto, fel tablau hash.
Ac os ydych yn meddwl nawr i C, y trefn y dadleuon i mewn i swyddogaeth
wedi i fod yr un fath bob amser.
Rhaid i chi gofio beth mae'r archebu yw-- x, y, z neu z, y, x--
ac mae'n rhaid i chi eu darparu bob amser yn yr un drefn, neu edrych i fyny
os ydych wedi anghofio'ch.
>> Ond mae hyn yn ymddangos i fod yn ffordd glyfar o basio gwerth allweddol mympwyol
parau lle enw yw enw o ddadl yn yr achos hwn
a CS50 yw ei werth.
Ac mae'r ffaith bod gen i bachau petryal yma
yma yn golygu y gallwn hefyd yn pasio mewn rhywbeth
fel yr wythnos yn 1 neu 0 neu 2 neu 3.
Felly rydym wedi parameterized swyddogaeth hon yn y fath fodd
y gall gymryd lluosog mewnbynnau, ond am y tro mai dim ond yr un.
>> Os wyf yn awr yn mynd i mewn i helpers.php, sylwi ar yr hyn y mae'n ei wneud.
Mae hwn ychydig o functionality newydd,
ond am awr yn unig yn cymryd ar y ffydd bod hyn yn
y gystrawen gyda yr ydych ddiffinio swyddogaeth yn PHP.
Yr ydych yn llythrennol yn dweud swyddogaeth.
Nid ydych yn pennu dychwelyd teipio, ac mae hynny'n gyson
gyda'r manylion amrywiol yn gynharach lle nad ydych yn wir yn teipio gryf.
>> Mae hyn yn unig yn pennu hynny, yn ddiofyn, mae hyn
yn cymryd cysylltiadol array fel dadl.
A ydych yn gwybod beth?
Os nad yw'r defnyddiwr yn pasio un mewn, cymryd yn ganiataol gwerth diofyn.
>> Mae hwn yn nodwedd nad yw C oes gan i ni, sydd yn braf, oherwydd erbyn hyn
data, hyd yn oed os ydych yn peidiwch â rhoi unrhyw beth,
yn mynd i fod yn arae ond un wag.
Ac wrth fynd heibio, dyfyniad jyst yn gwneud rhywbeth ffynci
lle y mae'n cymryd yr holl allweddi o hyn arae cysylltiadol, pob o'r pethau
Gallai eich rhoi mewn cromfachau sgwâr, ac yn creu newidynnau allan ohonynt
fel y gallwn yn y pen draw yn cael mynediad iddynt yn footet.php a header.php.
Dyna ychydig o haniaethol, felly gadewch i mi dynnu sylw at hyn.
>> Yn index.php, yn sylwi fy mod i'n pasio mewn pâr gwerth allweddol o deitl
gyda gwerth o CS50.
Os wyf yn awr yn edrych ar helpers.php, sylwi bod RenderHeader
yn echdynnu data hwnnw fy mod yn pasio mewn, ac yna'n gwneud yn ofynnol header.php.
Yr hyn yr wyf wedi ei wneud yn fath o ddyn tlawd a yn gweithredu nawr o'r canlynol.
>> Os byddaf yn agor header.php, hysbysu fy mod i wedi mwyach galed
codio y gair CS50 yn y ffeil hon header.
Rwyf wedi rhoi hyn cyfaddef atrociously swyddogaeth a enwir, chars arbennig HTML,
i mewn 'na.
Ond sylwi ar yr hyn yr wyf wedi ei wneud.
Mae gen i HTML agored.
Rwyf wedyn yn cael pen agored a theitl agored.
>> Ac yna tu mewn y teitl yn agored ac tagiau agos, mae gennyf ychydig o god PHP.
Ac mae hwn yn 'n glws, ond o cystrawen, a dim ond yn golygu adleisio allan.
Mae'n llythrennol yn golygu this-- adleisio o'r canlynol--
ond mae hyn yn sexier i ysgrifennu.
Adleisio allan y teitl sydd wedi cael ei basio i mewn.
>> Ond beth yn eich barn chi HTML torgoch arbennig yn gyfle i chi,
yn enwedig os oes gennych rhywfaint o HTML brofiad blaenorol?
Pa gymeriadau allai fod beryglus i basio mewn i dudalen
lle rydych chi'n cynhyrchu ddynamig y dudalen we gyda cod fel hyn?
Gadewch i mi fynd at y ffeil, fersiwn dau, a gweld os nad wyf yn gallu achosi hyn.
>> Fersiwn ddau yw hyn.
Ac yn sylwi ar bopeth yn iawn, yn gweithio'n dda.
Ond mae'n debyg fy mod yn mynd i mewn i index.php a Rwy'n nodi bod y teitl fy dudalen
Nid yw CS50.
Mae'n effro sgript braced agored helo byd, dyfyniad sengl yn agos,
parenthesis cau, hanner colon, braced agored, sgript slaes.
>> Sgript, wrth i ni annhymerus yn y pen draw yn gweld, yn tag
y gallwch ei ddefnyddio i ddefnyddio un arall iaith raglennu a elwir
JavaScript tu mewn i dudalen ar y we.
Ac yn awr yn sylwi ar y rhesymeg yma.
Dyma allwedd o'r enw teitl.
Dyma ei fod yn werth hir crazy nawr.
>> Ond os wyf yn mynd i'r cynorthwywyr page- neu yn hytrach, y dudalen pennawd,
Im 'yn galw swyddogaeth hon ar y teitl hwnnw yn gyntaf.
Felly, os wyf yn awr yn ail-lwytho y dudalen hon, yr wyf yn gweld hyn, sy'n edrych yn wirion,
ond ei fod yn ddiogel.
'I jyst yn edrych yn dwp.
>> Ond yn lle hynny mae'n debyg Roeddwn wedi anghofio hyn.
A nodwch fy ngeiriau, mae nifer nonzero y byddwch yn anghofio i wneud hyn
a byddwch yn cael rhywfaint o ddiwyd myfyriwr neu ffrind yn dod i fyny
i chi yn y ffair CS50 neu'n ddienw yn y nos procio o gwmpas ar eich gwefan
ac yn ei hanfod chwistrellu cod unbeknownst i chi i mewn i'ch safle
rhywsut.
>> Oherwydd os wyf yn poeri yn syml allan teitl yma a theitl
there-- yn dda, os oes teitl llythrennol yn edrych fel hyn a PHP
fel iaith sy'n gallu poeri allan eraill yn destun ieithoedd,
hyn yn mynd yn llythrennol i gymryd lle tag hwn gyda,
wrth gwrs, yr hyn yr wyf yn ei roi mewn mannau eraill.
>> Felly os wyf yn awr yn mynd yma ac ail-lwytho ar ôl dadwneud mecanweithiau diogelwch hynny,
yn awr yr wyf wedi helo byd yma.
Nawr nid dyna'r cyfan hynny fawr o delio, ond gallech wneud rhywbeth
ychydig yn fwy maleisus fan hyn, fel y mae
tags-- arall fel y byddwn yn gweld ar ôl i ni ei wario mwy o amser yn JavaScript-- fel lleoliad
dot href cael, dyfynnwch, unquote, HTTP business.com, ond y gwrthwyneb i hynny
oddi wrth y diwrnod o'r blaen.
Ac yn awr, gallwch gymell we dudalen i fynd mewn gwirionedd yn syth
at y dudalen gwefan yma.
>> Ac mewn gwirionedd, nid oes arnaf eisiau i hyd yn oed fynd i business.com
gan nad wyf am i wybod beth yw hynny.
Ond mae hyn, hefyd, yn sbarduno cod i gael eu chwistrellu i mewn y dudalen hon.
Felly mae hyn yn unig i ddweud bod hyd yn oed er rydym yn cyflwyno super gynnar ar rai
o'r rhain strwythurau mwy cymhleth, 'i' i gyd tuag at ben o wneud yn siwr
nad yw eich cod yn manteisio arnynt.
>> Felly nawr trydydd fersiwn yma.
Mae'n mynd yn ychydig o ffansi.
Doeddwn i ddim wir yn like-- ochr rhefrol i mi
oedd cael ychydig yn flin gan y ffaith fy mod wedi swyddogaeth o'r enw
RenderHeader a RenderFooter a oedd bron yn union yr un fath.
Felly, mae'n digwydd i mi, pam na gwneud Rwy'n parameterize swyddogaethau hyn
i mewn dim ond un o'r enw rendr, wedi ei gymryd ail ddadl
fel enw'r templed, y rownd derfynol i render-- naill pennawd neu troedyn?
Ac yna yn ddewisol, os ydw i eisiau i basio mewn rhai parau gwerth allweddol
fel yr wyf yn ei wneud ar gyfer y teitl ar gyfer y header ond nid ar gyfer y troedyn,
Gallwn i wneud hynny.
>> Ac felly yn awr os byddaf yn mynd i mewn i helpers.php, ei fod yn ychydig yn fwy cymhleth.
A byddaf yn chwifio fy nwylo yn y fanylion, ond mae'n un swyddogaeth yn unig.
Felly dyna gam tuag at ddyluniad gwell.
>> Gallwn fynd â hyn un cam ymhellach.
Os byddaf yn mynd i mewn i fy pedwerydd Fersiwn o hyn, sylwi nawr
fy mod yn gwneud rhywbeth hyd yn oed mwy o cryptig fath.
Ac yr wyf yn gwybod hyn yn lot i amsugno ar unwaith,
ond rydym yn unig fath o lanhau pethau i fyny.
Nawr rwy'n rhoi fy cynorthwywyr ffeil mewn ffolder o'r enw
includes-- unig mympwyol enwi ble rydw i am roi stwff
fy mod am include-- ac yna gweddill hyn yr un fath.
>> Ond os wyf yn edrych yn awr mewn gedit, hysbysu fy mod i wedi gotten gwared
yr holl ffeiliau eraill hynny ac rwyf wedi Symudodd hwy, er enghraifft, i mewn i fan hyn.
Ac yna yn y templedi, Mae gen i hyn yma, hefyd.
Ac felly mae hyn i gyd yn awr tuag at cam o ddefnyddio patrwm dylunio llawer gwell.
Ac rydym yn gyflym iawn mynd i symud i ffwrdd
o ymarferoldeb PHP diofyn yn, a ddechreuodd yr ydym yma gyda,
lle rydych jyst commingle PHP, a'ch HTML, a'ch CSS,
ac ch jyst boeri allan a'ch bod yn mynd am eich ffordd.
Dyw hi ddim yn mynd i fod a gynhelir iawn.
Yn union fel yn C, rydym yn dechrau defnyddio ffeiliau lluosog a swyddogaethau lluosog
a ffactoreiddio pethau sydd allan.
Byddwn yn gwneud yr un peth yma.
Ac yn wir, yn y pumed a'r olaf fersiwn yma, fe wnes un peth arall.
Gallwch hyd yn oed ddefnyddio dot dot, a oedd, unwaith eto, dim ond y rhiant cyfeiriadur.
I fod yn hyd yn oed yn fwy ymwybodol o ddiogelwch, oherwydd os wyf yn edrych ar y gwrando
yma am pumed a'r fersiwn terfynol, rhybudd bod gen i un cyfeiriadur o'r enw yma
cyhoeddus, ac yna ar y un lefel, fel petai,
Mae gen i gynnwys a thempledi ac yna y readme ffeil testun.
>> A'r rheswm yr wyf wedi strwythuro mae'n hoffi this-- ac yn gymaint o we
lluoedd, yn enwedig y rhai $ 5 rhai fis neu rai $ 10 y mis,
os ydych chi erioed wedi cael un o'r rhain services-- pa mor llawer ohonynt yn ei wneud
yw eu bod yn unig yn disgwyl i chi i adael i gyd o'ch ffeiliau i mewn i un chyfeiriadur,
fel y gwnaethom eisoes gyda yr enghraifft gyntaf.
>> Ond cyn gynted ag y byddwch yn dechrau adeiladu mwy safleoedd soffistigedig mai dim ond storio
data yr ydych yn gofalu am a ffeiliau rydych yn gofalu am, mewn gwirionedd yn trefnu pethau
yn gywir a gyda mwy o sicrwydd ymwybyddiaeth mewn cof y gall
rydym yn dechrau i amddiffyn yn erbyn pob un o'r ffrindiau
bod gennych naill ai yn, neu y tu allan i'r dosbarth hwn sydd,
cyn gynted ag y byddwch yn dechrau gwneud rhaglenni eich hun ar y we,
yn mynd i ddechrau codi arnoch chi ac arnynt.
>> Ac felly byddwn yn edrych yn y pen draw yn y cynllun hwn.
Mae hyn yn unig yw llun sy'n darlunio y canlynol.
Rydym yn mynd i roi ein holl rhaglennu rhesymeg mewn un neu fwy o ffeiliau,
ac rydym yn mynd i dim ond dechrau galw rheolwyr hynny.
Mae'n lle mae'r ymennydd ein gwefannau mewn gwirionedd.
Yna rydym yn mynd i olygfeydd, a golygfeydd
mor syml â dim ond ar wahân files-- Gelwir templedi, yn aml.
Maent ond yn cael y estheteg o fy dudalen,
yr hyn yr wyf am i'r dudalen i edrych like-- y lliwiau a'r gosodiad
ac mae'r swyddi pob un o'r newidynnau.
>> Ac yna yn fwy diddorol y byddwn yn y pen draw yn dod i
yw'r model, sydd yn mynd i fod yr un y gair yr ydym yn slap ar dechnolegau eraill
ein bod yn dod i mewn i'r llun, fel cronfeydd data gwirioneddol,
er mwyn i pan fyddwch eisiau i arbed gwybodaeth,
nad ydych yn unig anfon e-bost at eich proctor neu i chi eich hun,
chi mewn gwirionedd yn ei storio mewn cronfa ddata gan ddefnyddio iaith arall a elwir yn SQL.
Ac felly byddwn yn gadael yma heddiw a codi gyda hyn ar ddydd Mercher
a chyflwyno cronfeydd data hynny.
>> [CHWARAE CERDDORIAETH]