
2014-ի ժամանակավոր PHP լուծումը մոտ 20 միլիոն տեղադրում ունի. այժմ հնացած է
Ջեյք Ա. Սմիթը 2014-ին 174 տող PHP է գրել AOL-ի CMS-ի համար որպես ժամանակավոր լուծում։ Packagist-ից մոտ 20 միլիոն տեղադրումից հետո նա փաթեթը նշել է հնացած և ծրագրավորողներին ուղղորդում է PHP 8.5-ի ներկառուցված URI API-ին։
2014 թվականին Ջեյք Ա. Սմիթը 174 տող PHP է գրել AOL-ի բովանդակության կառավարման համակարգի համար՝ որպես ժամանակավոր լուծում։ Կոդը հրապարակել է Packagist-ում, եթե մեկ ուրիշին նույն ուղղումը պետք գա։ Տասներկու տարի անց այն տեղադրվել է գրեթե 20 միլիոն անգամ, իսկ սեպտեմբերի 15-ին հեղինակը փաթեթը նշել է հնացած։
Ժամանակավոր լուծում
Խոսքը AOL-ի CMS-ը PHP 5.2-ից 5.3 տեղափոխելու մասին էր, և այդ անցման մի մասը pecl_http ընդարձակման առաջին տարբերակից հրաժարվելն էր, որը տալիս էր http_build_url() ֆունկցիան։ Բովանդակության կառավարման համակարգը շատ URL-ներ է մշակում, և այս համակարգը այդ ֆունկցիան կանչում էր տասնյակ տեղերում, որոնց Սմիթը չէր ուզում դիպչել։ Փոխարենը նա այն վերարտադրեց. իր http_build_url()-ը սահմանվում էր միայն այն դեպքում, երբ իսկականը դեռ գոյություն չուներ, այնպես որ հին կոդը ոչ մի փոփոխություն չնկատեց։ Այդ ժամանակ նոր էր տարածվում Composer-ը, ինչը հեշտացրեց ուղղման տարածումը, և հեղինակը կարծում էր, որ լուծումը մեկ-երկու տարի կբավարարի։
Սա շատ տեղադրում է
Ժամանակավորը չստացվեց։ Գրառմանը կցված Packagist-ի վիճակագրությունը ցույց է տալիս 19 864 271 ընդհանուր տեղադրում և 401 308՝ վերջին 30 օրում. օրական թիվը 2014-ի գրեթե զրոյից 2026-ին հասել է օրական մոտ 13 000-ի։ Composer-ը ընդհանուր պատկերի միայն մի մասն է. WPML-ը՝ WordPress-ի առաջատար բազմալեզու պլագինը, այդ կոդը ներառում է սեփական կոդային բազայում և տեղադրված է 1.5 միլիոնից ավելի կայքերում, իսկ տիրույթների idna-convert գրադարանը կախված է դրանից. այդպես կոդը հայտնվեց ֆրանսիական SPIP CMS-ի աղբյուրներում և հետո Debian-ի ու Ubuntu-ի փաթեթներում։
Տարիներ անց փաթեթին վերադառնալով՝ Սմիթը սխալ էլ գտավ. ուղին այն URL-ին միացնելը, որի վերջում թեք գիծ կա, ուղուց ջնջում է a տառի բոլոր օրինակները։ Վերջին թեք գծերի համար գրված լուծման մեկնաբանության տակ կոդը ուղուն ավելացնում է լրացուցիչ a, որպեսզի միշտ լինի կտրելու վերջին հատված, ապա այն կտրում է գտնել-փոխարինելով։ Երբ ուղին ավարտվում է թեք գծով, այդ փոխարինումը ջնջում է նաև մնացած բոլոր a տառերը։ 2021-ին նա փաթեթի համար նոր սպասարկող էր խնդրել, երեք մարդ ցանկություն հայտնեց, սակայն ընտանիքում անսպասելի կորուստ եղավ, նա չշարունակեց, և փաթեթը տարիներ շարունակ անուշադիր մնաց։
Հնացնել, ոչ թե փոխանցել
Սմիթը չընտրեց ոչ փաթեթը ինքը վերակենդանացնել, ոչ էլ այն ուրիշին փոխանցել։ PHP League-ի URI գրադարանը տարիներ շարունակ համայնքի պատասխանն է, իսկ PHP 8.5-ը ստանդարտներին համապատասխան URI API է բերում հենց լեզվի մեջ. երկուսն էլ ավելի լավն են, քան 2014-ի 174 տողանոց լուծումը, իսկ փաթեթի սպասարկումը միայն կհետաձգեր անցումը։ Լայնորեն տեղադրված փաթեթը սպասարկողի փոխանցելը, որի կոդը ներքևում ոչ ոք չի ստուգել, նրա կարծիքով հենց այն է, ինչ փնտրում են հարձակվողները։ Փաթեթը կշարունակի տեղադրվել, բայց նոր ուղղումներ չի ստանա, այդ թվում a տառի սխալի համար, քանի որ մեկ տողանոց փոփոխությունն անգամ կարող է անսպասելի հետևանքներ ունենալ, երբ աջակցող չկա. README-ն բացատրում է, թե ինչպես անցնել։ Իսկ վերջաբանը. AOL-ը երբեք չհրաժարվեց ժամանակավոր լուծումից. կոդը այնտեղ աշխատել է մինչև հարթակի փակումը՝ 2020 թվականի շուրջ։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։