>> За почетак да се премости оно може бити ваш једини искуство
са веб програмирања, шта ја Мислио сам да бих се украде пар
од примера који сте Можда сте видели у 50
ако га узео прошлост годину или две, или не могу да имају
ако га пре неколико година преузео
да су бебе кораци ка пиридин знају као МБЦ,
Модел Погледај контролер, и шта то значи?
Ово је опет ћемо видети, можда је само начин полазна
да очисти дизајн неких пиеце веб-базиран софтвер,
или може бити клијент страни заснован као, али ћемо га користити
у контексту ПХП, тако да можемо да почнемо
да више комплекс пројекти и врста
одвојених различитих типова код унутар апликације;
посебно тако да када смо има више људи који раде
на пројекту је много лакше за цртање линија.
Дакле, прво, хајде да погледајте субоптималној начин
спровођења нешто.
Претпоставимо Желео сам да направим супер једноставна Наравно сајт за 50
или било које друге класе, и да класа има ствари
као и предавања на програму.
Сам могао да урадим нешто слично Х1 таг на врху моје странице
и несређене листе са Ли ставке листе, како би
да само имају знаковима листу опције менија, тако супер једноставна.
Дакле, како да урадим ово?
Па, пусти ме у мојој прозор терминала овде,
и приметио да имам читање ја и ми ћемо повезати са овом коду
на сајту току је у мало,
и приметио да имам Индекс тачка хтм - индекс тачка пхп.
Дакле, дозволите ми само напред и отворите да, и довољно сигурна да је мало
да од глупо ово чак зове пхп
јер све што имам је коментар ПХП
а онда све остало је само сирови хтмл.
Али опет то је верзија нула,
тако корак ка нешто занимљивије,
али приметио сам напорно сам кодирана ЦС50 као наслов, ЦС50 у Х1,
а сада имам предавања повежете,
Сада имам везу градиву.
У реду, тако да не Чини све да неразумно
док ви пратите линк као предавања, и ви схватите
да све у реду је то другачије Садржај али је помало
исте ствари; то је наслов странице и несређене листе.
Кликнем недеље нула из прошле године, и то је врста
исте ствари, х1 ознака и несређене листе
а онда на крају кликнем ово, а ја се на неки лист,
који је слајдови из то посебно предавање.
Тако нешто ми говори Ја сам о томе да пузати.
Ако ја отворим предавања дот ПХП обавештење
да је прилично много копија и пасте из претходног фајла;
Управо сам променио наслов у х1, а шта су ови линкови.
Још горе, ако одем у недељу нула тачка пхп,
то је исто копија паста посао
са само мало Садржај намештена.
Дакле, сигурно има прилика овде да се побољша,
и сигурно ово треба бити добар правило;
било када осећате сами копирањем
и налепите нешто више можда једном,
црвене заставе треба надамо почети да оде.
Али, како ћемо ићи о побољшању ово?
Па, постоји неколико начина, а технике које можете користити
у ПХП су еволуирали током време, али хајде да пробамо ово.
Пусти ме у једну Версион, па следећа итерација ово,
и дозволите ми да покушам да очистите га мало.
Право, један од ПХП је најједноставније механизми
за решавање овог проблема је стара школа захтевају функцију,
који ради прилично копију и паста од садржаја
неке датотеке у праву овде, као ц је оштар укључују,
и други језици имају веома сличне конструкције.
Тако да изгледа мало чудно сада,
то дефинитивно није заврши у потрази веб страницу,
али оно што је вероватно унутар заглавља дот ПХП.
Све друге ствари, зар не, ХТМЛ таг, глава ознака,
Титле таг, све ствари који је био изнад главног суштини
странице, што је вероватно само несређене листе,
и у подножју је вероватно као затвореног тела таг,
ознака затвореном ХТМЛ-а; прилично незанимљив
али Дуплирање ствари.
У реду, и сигуран довољно ако одем
у заглављу дот пхп то је само врста Тхе Орпхан фрагмента
из врха, и ако ја иди у фоотер дот пхп,
то је без родитеља фрагмент из дна,
и ја користим оне исте фрагменти у мојим другим датотекама,
као предавања дот ПХП.
Добро, па шта је боље о овоме би ти рекао?
Да?
>> Једноставност.
>> Једноставност?
Ја не знам овакав изглед Много страшније ме сада, зар не?
>> Ако сам желео да промени свој заглавље, ви не би имали
да га промени у свим претходна као датотеке.
Само га промените у заглављу.
>> Тачно, па можда у да смисао је једноставније,
можда бих га смести као да је само је лакше да га ажурирате.
То можда је мало чистије
зато што ажурирате то на једном месту.
Дакле, то је прилично убедљив; шта је мана
овог приступа или Проблем који остаје
да нисмо заиста решен?
Да?
[Искључено Миц Коментар]
Да, тачно, ја мислим, ја сам даље копирање и лепљење;
то је мало мање, али само ја зауставио два од ових фајлова,
и они су прилично ипак изгледао идентично.
Било је потребно у врх, захтевају на дну,
и несређене листа у средини
која је и сама била још структурно исто.
Штавише, приметите ово, ако ја заправо видели овај пример,
пусти ме да Версион Оне сада,
и приметио сам имам ЦС50 Предавање Силлабус.
Ух ох, ЦС50 Недеља Нула недеља Један и ЦС50 среда петак,
Ја сам некако смањи угао.
Шта је - шта су те титуле раније?
[Искључено Миц Коментар]
Они су били попут предавања у Недеља нула, као што је врста
од секси, и то је заправо имао неку динамику на њега,
и то је врста - Ја сам некако Пунтинг сада
и само под претпоставком да Цео сајт је ЦС50
и добро то ради, али то је свакако не као елегантан
или као нека врста стрејт проследити као што је некад био,
али то има смисла, јер ако погледате индекс дот пхп
и предавања дот пхп и недеље нула тачка пхп,
они су сви, укључујући исти фајл,
па како можемо побољшати ово?
Шта је следећи итерација ово код вероватно ћеш да урадиш?
[Искључено Миц Коментар]
Да, тачно, па ако - и пусти ме да резимирамо
са ми у суштини желимо да параметеризе да заглавље
тако да да још увек постоји фиксирана Х1 таг, али ствари
између, отворен и близу ознака,
је вероватно динамичан, и долази од нечега другог.
Можда "добити ниску" или ствар након знак питања
у УРЛ били су негде друго, па хајде да погледамо.
Дакле, ако ја одем у верзију два,
сада приметио да имам Имам додатни фајл,
изгледа као помагачи дот ПХП.
Ја стварно не знам где да почети па ћу почети управо
у индексу као као и увек, и сада приметити да је то мало другачије,
па имам захтевају линију
на врху захтева помагачи дот пхп,
али ја могу да га зовем шта год хоћу,
али сада приметити линију три постоји позив функције
да пруже главом, који је занимљиво само у оној мери у
као оно што се преноси у очигледно, обичај наслов
за ову страницу.
У међувремену постоји рендер подножје на дну,
и не треба било који параметризација постоји то је само
подножје, али сада изгледа
да буде корак ка боље решење, рендер заглавље узима,
и шта трга заграде означавају за оне
који нису видели пхп икад или у неко време?
[Искључено Миц Коментар]
Да, то је низ.
То је асоцијативни низ или хасх који повезује кључеве
са вредностима; то је као Јава Скрипте, приговор нотација,
или други језици, слични синтакс.
Добро, па шта је у помагача дот пхп?
У помагачи дот пхп је само неколико функција,
рендер заглавље и подножје рендер.
Дакле, пар детаља ако мање познато,
тако да пре свега чињенице
који чине заглавље траје подаци аргумент да је очигледно
добио празан низ ту значи шта?
Шта то значи да радимо екуалс отворена заграда затворен брацкет
као параметар у пхп?
То је подразумевана вредност.
Дакле, ако не прође у низу или било који аргумент ма
до рендеровања заглавље или рендер функцију подножја,
Могу барем поверење као аутор тих функција
који подаци ће минимално бити празан низ;
неће бити дефинисана или лажна, или нешто слично,
то ће бити управо оно што Дао сам га као подразумевано.
Сада је то мало врсте хацкисх начин утовар симбола
у вашем простору за име да тако кажем,
али је прилично функционише добро ка том циљу
спровођења сопствену врсту сиромаха темплатинг мотор.
Добро, ту је доста алата за Питхон Руби
и ПХП да ти дам темплатинг могућности
и то је управо оно што ми желимо.
Желимо шаблон који има Х1 таг отворен, затворен Х1 таг,
и некако место Држач у средини,
и желимо да попуните место Носиоци по начину на овој функцији,
тако да ова функција издвојите само тако се дешава
да вам дају следеће способности.
Ако имаш асоцијативним од низа кључних вредности са паровима
као трла једнако бар, екстракт ће створити локалне променљиве
зове ефикасно знак долара трла и дајте му вредност бара
па експлодира свој асоцијативне Низ од кључних вредности парова
у нове променљиве са одговарајуће вредности.
А онда захтевају дот заглавље тачка ПХП је исто као пре,
па шта ћемо вероватно ће да види унутрашњост главом дот пхп?
Вероватно има тај Х1 таг и близу ознака; шта се дешава
да се у њему вероватно између њега?
[Искључено Миц Коментар]
Тачно, вероватно постоји неки Помињање знак долара наслова
и довољно сигурна да ли сам увећате на ово ту је мој наслов таг,
ту је мој Х1 таг, а унутар од је динамичан уметање
од наслова долар знак, али само за добру меру,
Радим овај хтмл посебним наплатити атроциоусли имену
функцију, али је користан; шта ради
или шта то штити од?
Ово је заправо решење на претњу коју алудирати;
ти би нас довело до.
[Искључено Миц Коментар]
Тачно, тако да ако злонамерни корисник или безазлен жртва
од пхисхинг напада кликнули на везу
који у себи има знак питања и нешто као ФОО једнако,
а онда је вредност од ФОО је заправо
као отворену конзолу скрипта, затворена заграда,
а онда неки ЈаваСцрипт код;
ако нисте назвати дуго главна функција,
ти би заправо бити инфицирање сиров ХТМЛ у својој веб страници,
резултат који је да би сте се преварили.
Можда се преваром корисника у извршавању ЈаваСцрипт код
да је он или она јесте не заправо намеравају.
И мада обично ти си само себе боли,
као само ви знате идиот ће куцате
у отвореном писму носача, затворена заграда, и реци упозорења
или нешто слично и учинити га или сама
у са неким чудном исходом, ако ти се преварили
у кликом на везу која има сирово ЈаваСкрипт уграђен у њему
као вредност тог атрибута,
можете између осталог украде нечија цоокиес
јер има својство зове документ тачка колачић
у ЈаваСцрипт да вам омогућава да зграби сессион цоокие корисников,
и ако се сећате шта седница отмица напад је,
скратим причу, то је један начин заправо преваре некога
у дајући вам да виртуелна рука печат и онда узимање
над својим Фацебоок налогом или неки други тип налога.
У реду, тако да овај је мало дуг,
али то је само помоћу сирово ХТМЛ код.
Ово је еквивалент позивања ехо
или одштампате ефикасно, и ми смо у суштини убацивање
да динамички.
Дакле, шта још остаје овде?
Па, пусти ме у Верзија Три овде,
па ћемо видети нешто другачије -
Исти распоред тачан фајл али Обавештење
да овај пут ћемо генерализовати заглавље и подножје
као шаблони, па шта Не мислим тако то?
Шта је једна ствар то је другачије овде?
Шта се променило од последња верзија?
Суптилно, али вероватно је само бољи чистији дизајн.
Да?
[Искључено Миц Коментар]
Да, само један има стандардни рендер функцију;
Нисам посебан случај рендер хеадер или рендер подножје,
од којих оба ако вам опозив од помагача дот пхп,
ми смо прилично идентичан осим њихових имена
и шаблони су укључени.
Зашто не само параметеризе рендер функција
и узме један аргумент, то је назив шаблона,
и други опциони аргумент да су кључни вредност паровима
који желите да прикључите ин
Дакле, ако ја сада погледате помагачи дот пхп обавештење
да сам био мало одгајивач сада.
Ја стварно не проверавам фајл постоји и ако је тако само напред
и захтевају га; само у случају корисник случајно врсте
у неке лажне оптужбе име шаблона можете не желе да бацају грешку
у програму, тако да можемо минимално им урадили
фаворизују овде.
У реду, али можемо и ми узми ово корак даље?
У овој верзији овде приметити следеће.
Управо сам откуцао лс, и шта одмах скаче
Повратак је нешто другачија.
Дакле, ту је два директоријума, десно,
па ово је сада корак ка шта ће на крају бити више
правилно оквир.
То је врста аљкав од мене да се баца све
моје садржајем унутар јавно доступан директоријум
који буквално се зове јавни.
И мада нажалост, Много оквира,
старији посебно, па чак и неки веб порука,
Дреам Хост међу њима, снаге да ставите све датотеке
у еквиваленту јавни директоријум чак
ако ваши фајлови могао укључују лозинке базе података
и корисничка имена или други такви акредитиви,
то уопште није добар дизајн.
Много боље је ставити само
у јавном именику шта има апсолутно
да буде корисник доступан, и све остало
да сте, укључујући као помагачи дот пхп,
нема разлога да то би требало да буде доступан преко веб
прегледач са УРЛ.
То може бити потпуно нешкодљив ако корисник жели да види, можда
ко пара, али то је само принцип тога,
и не дај Боже то заправо ради имати корисничко име или лозинку;
Ви не желите корисник случајно
или намерно буде моћи да јој приступе.
Дакле, ми нисмо баш у савршен приступ овде,
али сада приметити следеће.
У индекс дот пхп, приметићете да Ја сам још увек захтевају помагаче,
али ја то радим на такав начин да сам на неки начин организовања свих
од датотека које ће бити укључени
у поддиректоријуму зове конвенционално укључује,
а онда зовем рендер за заглавље и подножје као и раније.
Дакле, једина ствар Ја сам урадио је врста
од реорганизовати своје директоријуме да буде мало више анални
о структури фајла.
Али, ако ми сада идемо на ово пети пример,
приметити овде да смо сада имају трио фолдера,
и то је мало обмањујуће у овом тренутку
јер за једноставност ради класе,
Управо сам бачен све
Џон је у Харварду Јавни Именик само
тако да можемо да се крећете кроз претраживач, али обавештење -
игноришу овај део само за тренутак,
Чињеница да сам тамо.
Обратите пажњу да имам три поддиректоријуме: јавни,
шаблони, и укључује.
Идеја сада је да у исправно конфигурисан веб сервер ја
би рећи да је ово Апацхе сајт има јавно доступне
фајлове овде, и нигде другде.
Дакле, шта мислите фајл Идем да видим унутра
од јавног ако укуцамо лс?
Шта је барем један фајл то је вероватно тамо?
[Искључено Миц Коментар]
Ок индекс тачка ПХП, и шта фајл очигледно није
тамо између осталог?
Као помагачи дот пхп, заглавље дот пхп, пхп подножје тачка;
све фрагмената, све функционалности
да заиста не треба да буду доступни јавности,
она мора да буде употребљив по досијеима
који су јавно доступни, али они сами,
ниједан корисник треба да види или захтијевати УРЛ адреса за помагача дот ПХП.
Приметимо да уместо тога, ако одем
у укључује ту је помагачи дот пхп,
и ако ја одем у шаблоне,
ту је и подножје хеадер дот ПХП.
Искрено, ја могао да донесе их у истом директоријуму,
али ја покушавам да будем још више о анални чување предмета
да су само нека од статички шаблони другачији
од функционалних фајлова као помагачи дот пхп,
и ја само придржавајући се неких прилично уобичајене конвенције
називајући директоријуме укључује и шаблони.
Дакле, једина ствар која променило онда је поново пут.
Ако одемо овде приметити да ја сада имам само
да укључи релативну директоријум,
дот дот сласх укључује помагачи дот пхп,
или ја могу бити мало више правилно и заиста уради нешто
овако, пхп и много
језика има ови специјални симболи
да представљају Директоријум текуће датотеке је,
тако наглашавају доњу дир подвучем црту представља
год директоријум је ове датотеке,
па ако само цонцатенате са оператором дот, то,
да би се постигла исти резултат,
и има тенденцију да буде мало више робустан, јер можете добити
у ситуацијама са релативна директоријуме су само кажем тачку
или тачка тачка заправо могу довести вас на погрешно место,
па ово тежи да буде мало више робустан.
Добро, па шта мада остаје?
Шта ли још не волим о томе?
Шта би могао бити побољшан и ви коментар на то раније мислим
да још има неких питања?
[Искључено Миц Коментар]
Добро, сигурно немамо да започнете писање као сајтовима
да изгледа овако, зар не?
Ово не осећа све то много боље,
ту је увек цопи пасте.
Ја и даље имам захтевају линију на врху.
Ја још увек имам рендер заглавље рендер подножје.
Има много дуплирања.
Да?
[Искључено Миц Коментар]
Да, тачно, тако да смо узели корак ка врсту цепања
се на "ц" из "В", па МВЦ је модел Погледај контролер;
контролер је некако мозак апликације.
Модел има тенденцију да буде података или неки схаред функционалности,
и поглед има тенденцију да буде естетика, шаблон,
тако да су корак ка одвајање "Ц" од "в"
јер смо сада барем имамо Директоријум овај шаблон је,
али чак и тамо смо у суштини имају један контролер по фајлу.
То не изгледа као да је много логика овде дешава,
али индекс тачка ПХП је ефикасно контролер.
Када посетите УРЛ и завршава у индекс дот пхп,
све логике које имплементира да страна је у праву
у индекс дот ПХП-у, Исто за предавања дот ПХП.
Исто за недељу нула дот пхп.
Тако смо некако Строне наше логика свуда,
и она се осећа као ово се не дешава
да скала веома добро када смо нису четири већ четрдесет страница
ако свака страна полази ја копирање старију верзију
датотеке и само прилагођавати неки
садржаја унутар њих.
Дакле, ми смо само узели корак ка томе,
и један од алата ћемо увести
у среду је Фрамер назвао "Ларавел"
и то је веома популаран ПХП оквир,
они други су "Фуелпхп."
Има један старији назвао "Цодеигнитер."
Постоји једна зове "Торта".
Постоји једна зове "Симфонија."
Мислим ако вам Гоогле пхп оквири,
ту је грозан број као оквира
да људи који спроводе.
Ларавел је један од више се и новопридошлице;
то је један од чистача оне, а ви ћете наћи
да на крају то помаже уштедите доста
времена, иако постоји мало криве учења,
али да ћемо водити ти преко среду.
Штавише, ми ћемо увести оно што се зове "ОРМ."
У овом случају, ми ћемо користити нешто што долази
са овим оквиром зове Ларавел.
То се зове "речитим" и ово је само слој кода
који вам омогућава да, између осталог, ствари разговарати са базама података.
И овде, пусти ме да украдем пример који је или недавно
или атавизам за неки од вас од 50.
Ако сте узети 50, и јеси "ЦС50 финансије,"
можда се сећате фајлове који пишете или преправљао да изгледају
овако, ово је било пријава тачка ПХП, а у то време,
поготово јер смо нису проводе много времена
о основама ПХП рано,
то може сама имати била прилично изазован,
па смо, у ствари, покушати да поједностави дизајн.
Нисмо баш одвојити "М" из "В" из "Ц" све то много
за проблеме који "Седам ЦС50 финансија,"
али приметио једну ствар који би требало да почне надамо
да вам ускоро трљати погрешно начин, је нешто овако.
Мислим, не само да је ово лог ин дот ПХП контролер.
Он је такође говорио директно
у базу података посебно користећи наставак, који се неће
да скала веома добро када почнете да радите са једним
или два или три партнера.
На пример, ако је један од партнери је одговоран
За креирање табеле базе података и долази
са својим индексима и откривањем
шта кључ треба да буде, примарни кључеви, кључеви, страни
и све то, одлучивања о имена табеле и све то.
Сада друга особа у група треба да зна све
одлука дизајна он или она је направио, а ви сада треба
на хард код те одлуке у датотеци, тако да сада он
или она је лепа много ограничен
да опет никад не мењају та имена табеле.
Никада поново да промените та поднете имена
без обавештавања вас.
Осим тога, не можете стварно лако радити на истом фајлу
без судара једни са другима ако он
или она је стално промене имена,
а имате стари верзије и тако даље,
па ово је само позива много и много главобоље.
Штавише, као што ћемо види пре дуго,
иако није била потребна
да посебно урадити софистициране упити овде,
када почнете да има вишеструке столови, два стола, три, пет,
десет табеле у МиСКЛ или генерално релационе базе података,
морате да се придруже те табеле често ако упознати, а ви имате
да комбинују податке из једно са другим,
и искрено ваши упити Секуел почети да се дуже, и дуже,
и дуже, и више сложен, а она тек почиње
да се много лакше да праве грешке
и много теже добити ствари у праву.
И тако алата као што су Елоквентан и ОРМ иде
да нам помогне да модел наше податке и то је такође ефикасно ће
да генерише код који смо треба да почне упита базе података
у више софистициране начине.
Дакле, ако имате примарни кључ овде и спољни кључ
овде, све што вам треба да урадите је да научи да ОРМ,
Објецт отношениј Маппер, шта је однос
и она ће схватити шта упита да изврши за вас.
И само у ретким случајева ти треба
да обавезно написати наставак код себе.
Ако заиста желите да фино подешавање нешто,
али за највећи део, можете само почети лечење ентитете
у својим базама података, као истина објекти и не ове равне редове
да некако треба да реконструише и де нормализовати.