Novecojis PHP ir novecojis PHP
“Nav neviena iemesla, kāpēc kādam būtu jābūt datoram mājās.”
– Digital Equipment Corp. dibinātājs Kens Olsens, 1977. gadā
“640 kB vajadzētu pietikt ikvienam.”
– Microsoft dibinātājs Bils Geitss, 1981. gadā
Internets mīl šos citātus, lai gan Kena Olsena teikums tika izrauts no konteksta un Bils Geitss neko tādu nav teicis. Tie ir vienkārši labi citāti, lai ilustrētu, ka laiki mainās. Mēs varbūt nevēlamies to atzīt, bet nemitīgajās pārmaiņu vējās internetā novecojušas PHP versijas neizbēgami ir atpalikušas no laika un attīstības.

Pirms 25 gadiem, kad Rasmus Lerdorfs izlaida pirmo moderno PHP versiju 3.0, internets bija pavisam citāds. Prasības tīmekļa lapām bija pieticīgas, un gan izstrādes rīkiem, gan operētājsistēmām bija salīdzinoši nelielas iespējas. Bija pilnīgi normāli, ka mājaslapa bija piesaistīta izmantotās programmatūras versijai, un tā tas arī palika internetā. Tā kā programmatūra pārsvarā bija vienkārša, tās atjaunināšana nebija nepieciešama vai pat bieži vien iespējama.
2024. gadā programmatūrai, kas darbina tīmekli, jābūt daudz spējīgākai, taču šī spēja nāk ar saviem trūkumiem – tā ir arī daudz sarežģītāka, ar vairāk atkarībām un daudz īsāku dzīves ciklu.
Jaunākais PHP ir prasīgāks nekā jebkad agrāk
Mūsdienu PHP ir jāapstrādā visas tehnoloģijas, kas tiek izmantotas modernajā tīmeklī, un to ir ievērojami vairāk nekā pirms 25 gadiem. Visu šo atbalstu izstrādāt pašam nav saprātīgi un, visticamāk, arī nav iespējams, tāpēc PHP izmanto daudzu dažādu programmatūru palīdzību. Zone platformā uzstādītais PHP un tā moduļu komplekts darbībai prasa gandrīz simts bibliotēkas. Dažādi attēlu formāti, teksta kodējumi, kriptogrāfijas un saspiešanas algoritmi, tīkla protokoli, autentifikācijas metodes un datubāzes – to visu nodrošina trešo pušu izstrādāta programmatūra.
Šīs lietas nestāv uz vietas, bet arī nepārtraukti attīstās. Jo vairāk atkarību ir programmatūrai, jo vairāk tā ir piesaistīta konkrētam laikam un jo grūtāk to atbalstīt ilgākā laika periodā. Katrai programmatūras versijai pienāk brīdis, kad izstrādātāji paziņo, ka vecākas par X versijas vairs nesaņem uzmanību un drošības atjauninājumus, un ir laiks pāriet uz jaunāku versiju. Ja izstrādājamā programmatūra ir PHP ar trīsciparu atkarībām, tas notiek ar šīm atkarībām visu laiku. Jūs izlaižat pavisam jaunu PHP versiju 8.3, un pēc pāris gadiem nonākat situācijā, kad jāveic būtiskas izmaiņas, jo kāda grafikas vai kriptogrāfijas bibliotēka vairs neatbalsta nepieciešamo versiju, un vecākās versijas turpmāka izmantošana vairs nav pieļaujama kāda iemesla dēļ.
Tas ir galvenais iemesls, kāpēc PHP projekts ir nolēmis, ka katrai versijai būs trīs gadu dzīves cikls – divi gadi aktīva atbalsta un viens gads drošības labojumiem. Aktīvais atbalsts PHP 8.3, kas tika ieviests pirms dažiem mēnešiem, ilgs līdz 2025. gada novembrim, bet drošības atjauninājumi – līdz 2026. gada novembrim. PHP izstrādātāji nevēlas veikt atbalsta darbu ilgāk par diviem gadiem. Tas nenozīmē, ka ilgtermiņa atbalsts nav iespējams vispār, bet tas jādara citiem. Linux izplatījumu dzīves cikls parasti ir nedaudz ilgāks par trim gadiem, un izplatījumiem ir jāturpina atbalstīt PHP versijas, kuras PHP projekts vairs neatbalsta. Ir arī tādi, kas to dara ilgāk, bet ilgāks atbalsts parasti maksā naudu (piemēram, Ubuntu Expanded Security Maintenance).

Vecu PHP versiju izmantošana nozīmē daudz darba visiem
Zone gadījumā visu vecāko PHP versiju (šobrīd to ir septiņas) atbalsts ir darbs, kas jāveic pašiem, un tas ir viens no galvenajiem iemesliem, kāpēc izmantojam savu Linux platformu ZoneOS. Ik pa laikam mums jāpārliecinās, ka visas Zone vēl atbalstītās PHP versijas darbojas uz jaunākas platformas un saņem svarīgus drošības labojumus. Jaunākajās PHP versijās katru mēnesi tiek izlaisti labojumi, kas, iespējams, jāintegrē arī vecākajās PHP versijās. Katra jaunāka bibliotēkas versija var izjaukt vecāku PHP darbību; šādas problēmas ir jāatklāj un jānovērš. Jo vecāka PHP versija, jo sarežģītāks, laikietilpīgāks un resursu ietilpīgāks ir šis darbs.
Taču neatkarīgi no tā, pienāks brīdis, kad mums būs jāsaka: “Viss. No šī brīža Zone platformā nevarēs izmantot PHP versijas, kas vecākas par X.Y.” Šis brīdis var pienākt diezgan negaidīti, būt saistīts ar drošību, savietojamību, tehniskām detaļām vai vienkārši tāpēc, ka vecās versijas atbalstam nepieciešamais darba apjoms ir kļuvis nesamērīgi liels.
Patiesībā bieži vien nemaz nepamanām, ka pāreja uz jaunākām programmatūras versijām vairs nav tik liela problēma kā agrāk – lai gan attīstība notiek ātrāk, tā notiek arī daudz mazākos soļos. Tīmekļa izstrādātājiem tas nozīmē, ka laiki, kad PHP versijas maiņa bija pietiekams iemesls pārrakstīt visu lapu no nulles, ir pagājuši. Pat ar unikālu, speciāli izstrādātu risinājumu pāreja uz jaunu PHP versiju nav apgrūtinājums, īpaši, ja to dara regulāri un neļauj problēmām uzkrāties. Ar Zone izveidotajiem rīkiem arī jaunāku PHP versiju testēšana ir vienkārša.
Laiku maiņa nenozīmē, ka tie ir obligāti labāki vai sliktāki – tie vienkārši ir citādi, un ir jāpielāgojas. Jā, ir grūtāk aizmirst savu tīmekļa programmatūru internetā uz ilgu laiku, bet biežāka uzmanība nelieliem atjauninājumiem padarīs jūsu tīmekļa dzīves ciklu ievērojami ilgāku un pārmaiņas – mazāk sāpīgas.
Turklāt noteikti ir vērts ieskatīties mūsu atbalsta vides visaptverošajā ceļvedī, kurā uzzināsiet, kā apskatīt un atjaunināt novecojušas PHP versijas.