David MALAN: Sabihin mapabuti ang kurso ni homepage ng kaunti pa sa pamamagitan ng generalizing mga pag-andar, renderHeader at renderFooter, sa, medyo simple, render dahil pagkatapos ng lahat, sila ay halos katulad maliban para sa kanilang mga pangalan. Paano gawin ito? Well nasa ibabaw ang file na ito lamang, sa ibaba kung saan kinakailangan namin helpers.php, sabihin tumawag sa isang bagong pag-andar, render, na ang unang argument, sabihin nating, ang magiging pangalan ng isang template, ang isang file na nilalayong na naka-plug in doon. Samantala, ang pangalawang argumento at magtataglay mananatiling isang nag-uugnay array, sa ganitong sensitibo sa laki ng isang array na naglalaman ng isang susi para sa pamagat na kung saan ang halaga ay dito CS50. Ni ngayon tumingin sa helpers.php Hayaan. Sa helpers.php, na namin ngayon, ng Siyempre, may isa lamang function na tinukoy, render. render tumatagal ngayon ng dalawang argumento, na Makikita kami tatawag sa template at data, ang huli ng kung saan ang mga halaga ng default ay isang walang laman na array pa rin. Ngunit sa bersyong ito ng render, abiso na ngayon Ipinahahayag ko isang lokal na variable tinatawag path at italaga ito ang halaga ng template, na kung saan, halimbawa, maaari maging quote, magpanipi, "header" at Ikabit sa na string. php. Sa madaling salita, Ipagpalagay nating para sa ngayon hayaan na kung ang aming template ay tinatawag na header, pagkatapos na template ay ipinatupad sa isang file na tinatawag, medyo simple, header.php. Samantala, ni gawin ipaalam sa isang mabilis na check katinuan. Kung umiiral ang path na iyon, na aming makakaya suriin sa pamamagitan ng paraan ng isang file na tinatawag na file_exists, ni-extract pagkatapos ay hayaan ang nag-uugnay array na tinatawag na data upang ang mayroon kaming isa o higit pang lokal na mga variable sa saklaw, at pagkatapos ay sabihin nangangailangan ang path na iyon. Samantala, mukhang masyadong helpers.php i lamang ito, eksakto tulad ng dati. Ngunit kung titingnan mo kami ngayon sa index.php, mapansin na sa ibaba ng na file, maaari nang katulad kami tatawag sa render, pagpasa sa bilang nito nag-iisang argumento footer. Sa kasong ito, hindi namin kailangan upang pumasa sa isang nag-uugnay array dahil ang footer template, pagpapabalik, ay lamang ito. Ngunit ngayon kami ay arguably isang pantay na mas malinis na disenyo dahil hindi namin eliminated ang ilan sa aming kung hindi man kalabisan code at pinagsama-sama sa isa function na lang, render.