Pengenalan: Bermula sebagai projek peribadi pada pertengahan 1990-an, PHP telah berkembang menjadi salah satu bahasa pembangunan web yang paling popular, menyediakan perkhidmatan kecil dan pembangun bersaiz sederhana. Menyokong segala-galanya daripada blog hingga aplikasi perusahaan besar.
PHP ialah bahasa yang telah mengalami perubahan berulang yang menakjubkan dalam tempoh 30 tahun yang lalu. Sepanjang 10 tahun yang lalu, PHP telah berubah dalam cara yang tidak dapat kami bayangkan.
Setiap Tahun Baru saya akan menulis artikel tentang situasi semasa PHP, melihat ke belakang dan melihat masa depan. Jom mulakan sekarang!
Yayasan PHP
Pada masa lalu, saya biasanya bermula dengan ringkasan versi PHP terkini. Namun, kali ini saya ingin fokus pada PHP Foundation terlebih dahulu.
Sudah lebih setahun sejak Yayasan PHP ditubuhkan. Ia terdiri daripada pasukan 10 sukarelawan ditambah 6 pembangun bahasa PHP.
Tahun lepas, saya menulis ini:
Sekarang Nikita (pemaju kernel) telah pergi, saya agak bimbang. Tetapi pastinya dia bukan satu-satunya yang dapat bekerja pada PHP teras, dia telah melakukan banyak kerja pada PHP 8.0 dan 8.1 sejak beberapa tahun lalu.
Saya berharap Yayasan PHP dapat mengikuti perkembangan selanjutnya dan mempunyai pembangun teras yang mencukupi untuk mengusahakan PHP pada tahun hadapan.
PHP 8.2 sudah dalam pembangunan, walaupun belum banyak RFC yang dirangka.
Saya tidak salah untuk berfikir bahawa 2022 bukanlah tahun yang paling menarik untuk PHP, sebaliknya tahun peningkatan kestabilan.
Saya rasa wajar untuk mengatakan bahawa Yayasan PHP kini sedang beroperasi dan berjalan. Mereka baru-baru ini mengeluarkan laporan 2022 mereka, yang menunjukkan set nombor yang cukup mengagumkan:
$580,000 dikumpul pada 2022
Pemaju Yayasan 6 akan dibayar untuk kerja pada teras PHP
Ahli yayasan menyelesaikan hampir separuh daripada komitmen dalam php-src
Mereka mencipta 8 RFC baharu, hanya satu yang gagal
Saya rasa PHP Foundation adalah salah satu perkara terbaik yang berlaku kepada PHP. Saya harap mereka meningkatkan lagi bahasa pada tahun 2023. Jika anda bekerja untuk syarikat yang menggunakan PHP, saya sangat mengesyorkan anda mempertimbangkan untuk menderma beberapa.
PHP 8.2
Mari bincang tentang menggunakan PHP 8.2. Ia sering dianggap sebagai versi yang lebih kecil oleh pembangun, tetapi ia sebenarnya mempunyai banyak ciri yang bagus.
Berikut ialah beberapa contoh:
Baca Sahaja:
readonly class PostData { public function __construct( public string $title, public string $author, public string $body, public DateTimeImmutable $createdAt, public PostState $state, ) {} }
Penjana rawak baharu:
$rng = $is_production ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = new Random\Randomizer($rng); $randomizer->shuffleString('foobar');
Benar dan salah bebas daripada null:
function alwaysFalse(): false { return false; }
Analisis Ambil jenis paradigma:
function generateSlug((HasTitle&HasId)|null $post) { /* … */ } 编辑参数: function connect( string $user, #[\SensitiveParameter] string $password ) { // … }
Sudah tentu, ada lagi, yang patut diterokai.
Memandangkan betapa gilanya PHP telah berkembang selama ini. Saya melakukan beberapa perbandingan dan perbezaannya jelas ditunjukkan di bawah:
Ekosistem
Seperti setiap tahun, saya harus menyebut Packagist, iaitu pengurus pakej PHP, jadi setakat tahun ini ia menyenaraikan 361,000 pakej, 60,000 lebih daripada tahun lepas:
Jumlah yang paling mengagumkan ialah jumlah pemasangan. Saya menyebut jumlah ini tahun lepas:
Nah, secara kebetulan, Packagist baru-baru ini telah melepasi kejayaan memproses lebih 50 bilion pemasangan. Tahniah Packagist!
Saya baru sahaja menyemak dan kiraan pemasangan semasa Packagist ialah 74,492,061,634 kali. Itu ialah 24 bilion pemasangan dalam setahun dan 2 bilion pemasangan bulanan. Kesimpulannya: ekosistem PHP berkembang pesat.
Dua kali setahun, saya menerbitkan statistik versi. Dalam siaran ini, saya menganalisis penggunaan versi PHP merentas komuniti berdasarkan data daripada Packagist.
Saya ingin berkongsi carta daripada siaran itu sekali lagi: garis masa dari 2013 hingga sekarang, menunjukkan sejarah penggunaan setiap versi.
Walaupun hebat untuk melihat peningkatan mendadak dalam penggunaan PHP 8.*, sebilangan besar orang masih terperangkap dengan versi PHP lama, perlahan dan tidak selamat. Harapan saya untuk 2023 adalah untuk melihat nombor versi lama itu turun lebih cepat daripada ini. Inilah yang saya tulis dalam siaran statistik versi di atas:
Data ini menggambarkan pembahagian dalam komuniti PHP dengan cantik: satu bahagian seiring dengan PHP moden, manakala bahagian yang lain tertinggal tanpa daya.
Apabila bercakap tentang peningkatan, saya ingin menyebut satu alat khususnya: Rektor.
Rektor ialah alat automasi percuma yang membantu meningkatkan pangkalan kod PHP anda. Apa yang diperlukan hanyalah sedikit konfigurasi dan ia melakukan banyak kerja untuk anda.
Saya baru-baru ini menggunakannya untuk mengemas kini pengagregat kandungan dipacu komuniti saya, Agregat kepada PHP 8.2, dan ia benar-benar menyeronokkan dan mudah digunakan.
Selepas menyiarkan siaran statistik versi saya, beberapa orang memberitahu saya bahawa mereka belum mengemas kini dan terperangkap pada PHP 7.*, dan saya bertanya kepada mereka mengapa? Mereka memberitahu saya ia adalah terlalu banyak kerja manual. Menariknya, tiada sesiapa pun yang cuba menggunakan alat seperti Rektor untuk membantu mereka...
Saya amat percaya bahawa "bahasa pengaturcaraan" adalah lebih daripada sekadar pengkompil: ia memainkan peranan yang sama dalam mentakrifkan "pengaturcaraan bahasa" Alat dan ekosistem, saya benar-benar berpendapat ramai orang, projek dan perniagaan akan mendapat manfaat jika mereka melihat menggunakan alat automasi seperti Rektor.
Memandangkan saya bercakap tentang ekosistem, saya tidak boleh tidak menyebut dua rangka kerja terbesar untuk PHP: Laravel dan Symfony.
Laravel telah berkembang dengan pesat sejak beberapa tahun lalu. Mereka kini menggaji 8 pembangun sepenuh masa untuk membangunkan rangka kerja dan ekosistemnya. Selain itu, Tinjauan Pembangunan JetBrains melaporkan bahawa 67% pembangun PHP menggunakan Laravel.
Walaupun Symfony mungkin kurang popular sebagai rangka kerja hari ini berbanding dengan Laravel, ia masih merupakan salah satu rangka kerja yang paling matang dan stabil dalam komuniti PHP. Ia lebih biasa digunakan untuk pembangunan aplikasi perusahaan, tetapi komponen kendirinya popular di seluruh ekosistem PHP - Laravel juga mempunyai beberapa kebergantungan pada komponen Symfony, jadi tidak menghairankan bahawa banyak pakej Symfony dimasukkan ke dalam senarai pakej teratas Packagist Tidak hairanlah.
Saya juga harus menyebut WordPress. Sejujurnya, saya mempunyai hubungan cinta-benci dengan WordPress. Sebagai pengguna, WordPress adalah hebat. Ia sangat mudah untuk dipasang dan digunakan, dan saya fikir ia memperoleh setiap auns populariti selama ini. Sebagai pembangun, WordPress membuat saya sedih. Ketidakupayaan untuk bersaing dengan versi PHP yang moden dan selamat membingungkan seluruh komuniti PHP.
Pada masa ini, WordPress hanya menyediakan sokongan beta untuk PHP 8.0. Sekarang, untuk menjadi jelas: PHP 8.0 telah dikeluarkan pada tahun 2020 dan mencapai akhir hayat 3 tahun kemudian - dan WordPress belum menyokongnya lagi...
Sudah tentu, tidak menyokong versi PHP yang lebih baharu dengan betul adalah Terdapat sebab, dan terpulang kepada pengguna untuk memutuskan sama ada ia betul. Pendapat peribadi saya ialah keputusan untuk menegaskan keserasian ke belakang seperti WordPress adalah terutamanya didorong oleh perniagaan: sebahagian besar WordPress adalah bahagian perniagaan, dan sebahagian besar pangkalan pelanggan mereka menjalankan versi PHP yang lebih lama. Ia adalah kitaran ganas, dengan kedua-dua pihak menghalang satu sama lain dan, pada tahap tertentu, menghalang pembangunan seluruh komuniti PHP.
Sebaliknya, kita harus menyedari hakikat bahawa selepas hampir 20 tahun, tidak banyak projek perisian yang popular dan relevan seperti WordPress, jadi mungkin strategi mereka mengenai keserasian ke belakang adalah betul?
Superset
Akhir sekali, saya tidak boleh gagal untuk menyebut impian jangka panjang saya untuk PHP.
Saya menulis ini sekarang, dan saya berharap suatu hari nanti ia akan menjadi kenyataan: superset PHP, dengan sokongan IDE dan penganalisis statik yang betul.
Ada banyak sebab mengapa saya mahu perkara ini berlaku. Anda boleh membaca dan mendengarnya jika anda mahu, tetapi saya sangat berharap ia menjadi kenyataan. Ia akan mengambil sedikit masa sebelum kita melihat superset yang diterima secara meluas dan disokong pada tahun 2023, tetapi beberapa langkah kecil telah pun bermula. Saya pasti akan memerhatikan PXP, ia akan mendorong perkara ke arah yang lebih betul.
Ringkasnya, saya rasa semua pembangun akan menyukai 2023! Satu nota terakhir, sekiranya anda baru di sini, saya Brent, seorang penginjil pembangun di JetBrains.
Nota: Alamat asal bahasa Inggeris ialah: https://stitcher.io/blog/php-in-2023