
2014-cü ildən qalan müvəqqəti PHP həlli 20 milyona yaxın quraşdırma toplayıb — indi köhnəlmişdir
Ceyk A. Smit 2014-cü ildə AOL-un CMS-i üçün 174 sətir PHP yazmışdı. Packagist-də 20 milyona yaxın quraşdırmadan sonra o, paketi köhnəlmiş elan edib və tərtibatçıları PHP 8.5-in daxili URI API-sinə yönləndirib.
2014-cü ildə Ceyk A. Smit AOL-un məzmun idarəetmə sistemi üçün müvəqqəti həll kimi 174 sətir PHP yazdı. Kodu Packagist-də yerləşdirdi ki, bəlkə başqasına da eyni düzəliş lazım olsun. On iki il sonra kod təxminən 20 milyon dəfə quraşdırıldı və sentyabrın 15-də müəllif paketi köhnəlmiş kimi işarələdi.
Müvəqqəti düzəliş
Söhbət AOL-un CMS-inin PHP 5.2-dən 5.3-ə keçirilməsindən gedirdi və yüksəltmənin bir hissəsi http_build_url() funksiyasını təmin edən pecl_http genişlənməsinin 1-ci versiyasından imtina etmək idi. Məzmun idarəetmə sistemi çoxlu URL ilə işləyir və bu sistem həmin funksiyanı Smitin toxunmaq istəmədiyi onlarla yerdə çağırırdı. O, funksiyanı yenidən yazdı: öz http_build_url() tərifini yalnız əsl funksiya hələ mövcud deyilsə yaradırdı, beləliklə köhnə kod heç bir dəyişiklik hiss etmədi. Həmin dövrdə Composer yeni yeni yayılırdı, bu da düzəlişi paylaşmağı asanlaşdırdı və müəllif onun bir-iki il bəs edəcəyini düşünürdü.
Bu, ciddi quraşdırma sayıdır
Müvəqqəti olmadı. Yazıya əlavə edilmiş Packagist statistikası 19.864.271 ümumi quraşdırma və son 30 gündə 401.308 quraşdırma göstərir; gündəlik say 2014-cü ildəki demək olar sıfırdan 2026-cı ildə gündə təxminən 13.000-ə yüksəlib. Composer mənzərənin yalnız bir hissəsidir: WordPress üçün aparıcı çoxdilli plagin olan WPML bu kodu öz kod bazasında daşıyır və 1,5 milyondan çox saytda quraşdırılıb; domen adları kitabxanası idna-convert isə ondan asılıdır — beləcə kod fransız CMS-i SPIP-in mənbə koduna düşüb, sonra Debian və Ubuntu paketlərinə əlavə olunub.
İllər sonra paketə qayıdanda Smit səhv də tapdı: sonunda əyri xətt olan URL-ə yol birləşdirmək yoldan bütün a hərflərini silir. Sondakı əyri xətlər üçün yazılmış müvəqqəti həll şərhinin altında kod yola əlavə bir a hərfi artırır ki, həmişə kəsiləcək son seqment olsun, sonra onu tap-əvəzlə ilə kəsir. Yol əyri xəttlə bitəndə bu əvəzləmə digər bütün a hərflərini də silir. 2021-ci ildə o, paket üçün yeni baxıcı istəmişdi; üç nəfər təklif verdi, lakin ailədə gözlənilməz itki oldu, mövzunu davam etdirmədi və paket illərlə diqqətsiz qaldı.
Ötürmək yerinə köhnəltmək
Smit paketi nə özünün canlandırmasını, nə də başqasına ötürməsini seçdi. PHP League-in URI kitabxanası illərdir icmanın cavabıdır, PHP 8.5 isə standartlara uyğun URI API-ni birbaşa dilin içinə gətirir; hər ikisi 2014-cü ildən qalan 174 sətirlik düzəlişdən yaxşıdır, paketi saxlamaq isə hamının etməli olduğu keçidi sadəcə gecikdirərdi. Geniş yayılmış paketin aşağı axında heç kimin yoxlamadığı baxıcıya ötürülməsi, onun fikrincə, hücum edənlərin axtardığı şeyin elə özüdür. Paket quraşdırılmağa davam edəcək, amma yeni düzəlişlər almayacaq, o cümlədən a hərfi səhvi üçün, çünki dəstək verəcək heç kim yoxkən bir sətirlik dəyişikliyin də gözlənilməz nəticələri ola bilər; README necə keçməyi izah edir. Və sonluq: AOL öz CMS-ini müvəqqəti düzəlişdən heç vaxt ayırmadı — kod orada platforma təxminən 2020-ci ildə bağlanana qədər işlədi.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.