PHP 8.2: Kas jauns?
Jaunā PHP versija ir pavisam tuvu. Kādas ir jaunās implementācijas, par kurām jums būtu jāzina? Skatiet šo rakstu, lai to uzzinātu!
Šajā rakstā mēs izskaidrosim, kā darbojas Symfony Polyfill un kā tas ir saistīts ar Symfony projektiem. Mēs arī padziļināti aplūkosim ideju, ko šī bibliotēka cenšas atrisināt.
Lielākajā daļā mūsdienu PHP projekti, pamanīsiet, ka ir liela atkarība no Symfony Polyfill bibliotēka. Šajā rakstā mēs izskaidrosim ne tikai to, kā tas darbojas un kā tas ir saistīts ar Symfony projekti, bet mēs arī padziļināti aplūkosim ideju par problēmu, ko tā mēģina atrisināt.
PHP ilgu laiku bija sliktā stāvoklī. Tas bija 2005. gadā, kad Andrejs Zmievskis sāka projekts lai nodrošinātu dzimtā Unicode atbalstu PHP sakarā ar jauktām atsauksmēm un daudzām bažām, ka PHP notiek nepareizā virzienā. Attīstība PHP 6.x sākās. Taču tas tā arī netika pabeigts, un tas ir stāsts citai dienai. 10 gadus vēlāk, kaut kad starp 2014. un 2015. gadu, Dmitrijs Stogovs, Siņčen Hui un Ņikita Popovs sāka darbu pie projekta phpng - projekts, kas optimizēja un pārveidoja iekšējo Zend Engine, ko izmantoja PHP.
Un par pēdējiem gadiem, PHP tiek attīstīta straujāk nekā jebkad agrāk, un pašlaik tā stabilā versija ir 8.1.

Straujās jauno valodas funkciju attīstības dēļ šīm izmaiņām bija jāpielāgojas ne tikai izstrādātājiem, bet arī infrastruktūras un hostinga pakalpojumu sniedzējiem.
Lai mēs, izstrādātāji, varētu izmantot mūsu iemīļotās programmēšanas valodas jaunākās un labākās funkcijas. Symfony Polyfill projekts ir dzimis.
Šis projekts backports funkcijas, kas atrodamas jaunākajā PHP versijas un nodrošina dažu paplašinājumu un funkciju savietojamības slāņus. To paredzēts izmantot, ja ir iespējama pārnesamība starp dažādām valstīm. PHP versijas un paplašinājumi ir vēlami.
Tas ir tīrs apraksts par Symfony Polyfill bet ko tas nozīmē?
Ņemot vērā strauji augošo PHP valoda un interneta pakalpojumu sniedzēju pielāgotās programmatūras pielāgošana, lielākā daļa izstrādātāju ir saskārušies ar vienkāršu izvēli:
Taču tiem bija jāsaglabā savietojamība ar citiem rīkiem un pakalpojumiem, kas jau tiek izmantoti gan sistēmā, gan kods un infrastruktūras pusē - gandrīz vienmēr tiek izmantotas vecākas versijas PHP.Vai man, dārgais lasītāj, ir jāpiemin šo divu risinājumu tā sauktais ‘jautrības faktors’?
Lai atvieglotu darbu izstrādātājiem, 2015. gadā atvērtā koda kopiena izveidoja Polyfill pirmā stabilā versija ar numuru 1.0.. Izstrādātāju dzīve kļuva vieglāka, un var teikt, ka Symfony Polyfill atrisināja daudzas problēmas, piemēram, koda pārnesamību starp dažādām platformām, PHP versija atšķirības, kā arī atviegloja lietojumprogrammu refaktorizāciju un samazināja tehnoloģisko parādu.
Diemžēl ne visas problēmas var atrisināt ar vienu rīku.
Sarežģītam IT projekti, dažādu vides versiju uzturēšana dažādiem klientiem/nozarēm/dienestiem ir parasta procedūra. Tā rezultātā rodas nepieciešamība vienlaicīgi izstrādāt daudz dažādu filiāļu lietojumprogrammas, kurām bieži vien ir atšķirīgas funkcionālās prasības un kurām ir sava piesaiste. Esmu daudzkārt saskāries ar problēmu uzturēt vienu un to pašu lietojumprogrammu dažādiem klientiem dažādās PHP5 / PHP7 vidēs, un daudzās problēmas, kas saistītas ar bibliotēku vai to atkarību nesaderību dažādām versijām, ir vienkārši neatrisināmas, izmantojot tikai Symfony Polyfill.
Ņemot vērā straujo iebūvēto funkciju skaita pieaugumu PHP, daudzi izstrādātāji nav sekojuši līdzi pārmaiņu tempam. Daudzas no funkcijām, kas tiek piedāvātas augstākajās versijās PHP ir viegli panākt ar ārējām bibliotēkām, vai arī izstrādātājiem vienkārši nebija nepieciešamas jaunās funkcijas, piemēram, PHP šķiedras. Izvēloties komanda locekļiem, ir labi pārliecināties, ka prasmes ir saskaņotas vai ka koda piegādes process ir konsekventāks, izmantojot statiskās analīzes rīkus un agrīnu versiju regresijas kļūdu atklāšanu.

Jaunu valodas funkciju ieviešana joprojām ir diezgan zema un PHP 5 ir vairāk nekā 24% daļa skaidri parāda, ka ceturtajā daļā PHP projektu tiek izmantotas versijas, kas ir zemākas par 7.x., kuras drošības atbalsts tiks pārtraukts 2022. gada 6. decembrī. Tas nozīmē, ka šī ziņojuma rakstīšanas laikā vairāk nekā 25% PHP balstītu PHP. Tīmekļa vietne projekti līdz gada beigām būs potenciāli neaizsargāti pret visām jaunajām drošības ievainojamībām. “Ja tas darbojas, kāpēc mums būtu jātraucējas?”
Mums pēc iespējas ātrāk jāpielāgojas valodas izmaiņām un pēc iespējas ātrāk jāizmanto jaunākie risinājumi. Iespējamās legacy projekta migrācijas laikā ir vērts iekļaut Symfony Polyfill kā palīgs un izmantojot tādus paņēmienus kā Strangler Pattern un pašlaik modē esošo BDD metodoloģiju, ko ir pasakaini viegli piemērot, lai Symfony ietvars. Tātad, vai mēs patiešām esam spiesti izmantot Symfony Polyfill?
Lasīt vairāk:
PHP Izstrāde: 5 lietas, kas jums būtu jāzina