Hampir 2 tahun yang lalu PHP 7. 4 mencapai akhir masa pakainya, dan dalam waktu kurang dari 2 bulan tidak akan lagi memiliki dukungan keamanan juga. Akibatnya, dalam beberapa bulan terakhir sejumlah besar klien dan penyedia merasa perlu untuk memutakhirkan server dan/atau aplikasi mereka ke PHP 8 (atau 8. 1) Show
Tabel berikut menunjukkan bahwa Drupal. org merekomendasikan agar aplikasi kami tetap dalam versi 9. x, saat menggunakan PHP versi 8. 0 minimal Gambar Persyaratan PHP Drupal Kami telah memutuskan untuk mengkompilasi dalam posting ini langkah-langkah yang diperlukan untuk membuat aplikasi Drupal kami kompatibel dengan versi PHP ini, memberikan pengalaman kami bagi mereka yang mungkin membutuhkannya Perlu diingat bahwa kita akan berfokus untuk memperbarui proyek Composer berdasarkan Metadrop Drupal boilerplate, tetapi langkah-langkah ini dapat diterapkan ke Composer berbasis Drupal lainnya. Perhatikan bahwa pengetahuan Docker dan Drupal sebelumnya diperlukan untuk memahami langkah-langkah yang lebih kompleks Langkah langkah1. Perbarui lingkungan lokalLingkungan pengembangan kami didasarkan pada Docker, jadi hal pertama yang harus Anda lakukan, yang mendasar, adalah mengubah gambar PHP agar Docker dapat menggunakan wadah PHP 8 yang sesuai Dalam kasus kami, kami menggunakan boilerplate Metadrop dan ini pada gilirannya menggunakan gambar wodby/drupal-php. Semua tag terdaftar di Docker Hub, di mana kami harus menemukan tag yang cocok dengan versi yang akan kami miliki di lingkungan produksi kami Sebagai contoh, kami mencari PHP versi 8. 1. 9, tag yang kita dapat dari Docker Hub adalah "8. 1-dev-4. 37. 9" _6 atau file yang menentukan wadah yang Anda gunakan dalam proyek Anda2. Ubah persyaratan platformLangkah selanjutnya adalah memperbarui _7 proyek untuk meminta PHP versi 8 di bagian persyaratan platform. Dengan menambahkannya, Anda memaksa Komposer untuk beroperasi menggunakan PHP 8. 1 sebagai platform proyek. Jika tidak, Composer akan menggunakan lingkungan versi PHP
Catatan. Tidak semua paket memiliki batasan PHP, sehingga beberapa paket mungkin perlu diperbarui dan diuji secara manual 3. Biarkan Komposer melakukan keajaibannyaSalah satu momen kritis telah tiba. Mari kita periksa apakah lingkungan dan komposer Anda dikonfigurasi dengan baik dan paket dapat diperoleh dengan benar Untuk melakukan ini, luncurkan di dalam wadah
selama proses. Komposer akan mencoba menyelesaikan persyaratan proyek dan memperbarui paket berdasarkan itu, sehingga lingkungan harus sedekat mungkin dengan produksi Ketergantungan langsung akan diperbarui, dan ketergantungan yang tidak dapat diperbarui karena beberapa konflik pembatasan dalam proyek Komposer akan ditampilkan. Dalam kasus ini, masalah tersebut perlu diselesaikan secara manual sesuai dengan kebutuhan masing-masing proyek Catatan. Jika Anda tidak ingin memutakhirkan paket Komposer tetapi ingin mengetahui paket mana yang tidak kompatibel atau perlu ditingkatkan, Anda dapat menjalankan perintah dengan parameter dry-run _4. Periksa apakah kode tersebut kompatibelUntuk tinjauan kompatibilitas kode, kami telah menggunakan Kompatibilitas PHP, plugin Pelacak Kode PHP, yang menganalisis kode untuk mencari kompatibilitas antar versi. Karena ini adalah penganalisa kode statis, itu tidak sempurna karena tidak mengeksekusi kode, tetapi dapat memberi Anda lebih dari sekadar petunjuk menarik untuk menghindari kemungkinan masalah Catatan. Cabang 8 diperlukan karena versi stabil saat ini (9. 3. 5) memiliki beberapa masalah yang telah diselesaikan dan digabungkan ke dalam cabang pengembanganPertama, tambahkan ke Composer _Selanjutnya, jalankan Code Sniffer dengan menentukan folder yang akan diperiksa Kami merekomendasikan melakukan ini dalam modul khusus dan juga dalam modul contrib. Perhatikan bahwa sangat mungkin kesalahan yang ditunjukkan oleh Code Sniffer telah diperbaiki oleh komunitas, jadi mungkin memperbarui modul atau pustaka sudah cukup untuk memperbaikinya. Untuk meluncurkan PHP Code Sniffer dengan plugin ini, jalankan perintah berikut
Jangan memperhatikan laporan file JS atau CSS, tidak akan ada masalah kompatibilitas. Jika perlu, dalam contoh yang lebih kompleks berikut ini, Anda dapat melihat cara mengabaikannya _Menganalisis mereka sedikit parameter kita dapat melihat bahwa mereka digunakan untuk yang berikut ini _5. Periksa apakah semuanya berfungsi dengan baikUntuk proses peninjauan, kami mengikuti alur kerja di lingkungan lokal kami
Sangat berguna untuk memiliki laporan log yang bersih, jelas, dan terstruktur mungkin untuk menghindari bug tersembunyi yang hilang Setelah menjalankan rangkaian pengujian (kami menggunakan Behat) dan melakukan pengujian manual, beberapa pesan tentang fungsionalitas yang tidak digunakan lagi mungkin muncul di laporan. Jika Anda mengaktifkan Watchdog, Anda dapat memeriksa kesalahan dari UI Drupal atau langsung dari database dengan kueri berikut
6. Perbarui Drush jika perluDrush versi 10 memiliki beberapa , jadi disarankan untuk bekerja langsung dengan versi 11
Setelah memperbarui Drush, saat menjalankan perintahnya, beberapa modul mungkin memicu pesan debug, ini tidak kritis, dan pesan akan muncul saat meluncurkan perintah dengan "verbose"
Seperti yang tertulis di pesan, perintah berfungsi, tetapi perlu untuk menentukan di 7 modul kendala untuk versi 11. Anda dapat melihat masalah untuk dipecahkan dalam modul di Dukungan Drush 117. Periksa apakah proyek tersebut kompatibel dengan versi PHP sebelumnyaLangkah ini bersifat opsional, tetapi perlu jika server menggunakan versi sebelumnya pada saat penerapan A. Pertama, perbaiki Komposer ke versi PHP yang diinginkan (mis. g. PHP 7. 4. 3) seperti yang Anda lakukan pada langkah 2, dan periksa statusnya dengan Drush sebagai berikut 0B. Jika muncul pesan berikut, berarti ada beberapa paket yang membutuhkan PHP versi 8 (jika tidak muncul, lewati langsung ke poin D) _1Untuk mendapatkan daftar paket yang membutuhkan PHP 8, jalankan perintah berikut dan analisis di mana PHP 7 tampaknya tidak kompatibel _2C. Dalam hal ini, kami telah menginstal _0 di versi 6 dan membutuhkan PHP 8. 1. Kita harus melihat paket mana _0 bergantung pada dan menganalisis apakah salah satu dari versi yang memungkinkan kita untuk menginstal kompatibel dengan PHP 7. Mengikuti contoh, ini akan menjadi perintah dan kesimpulan _3Seperti yang Anda lihat, _2 telah meminta instalasi 0 versi 5. 1 atau 6. Kita dapat melihat secara manual _7 dari 0 versi 5. 1 (versi sebelum yang telah kita instal), dan periksa apakah kompatibel dengan PHP 7. Jika kompatibel, Anda dapat menurunkan versi tanpa masalah _4Ulangi proses untuk semua paket yang menandai PHP 8 sebagai persyaratan minimum, seperti yang kami katakan di awal, selama aplikasi Anda tetap kompatibel dengan PHP 7 D. Terakhir, hapus platform dari _7 (ditambahkan pada poin 2. Ubah persyaratan platform) dan jalankan 58. Penyebaran dan kesimpulanSaatnya menyebarkan. Dalam panduan ini, kami telah menjelaskan cara memutakhirkan aplikasi Drupal kami ke PHP 8 dengan menjaga kompatibilitas mundur dengan PHP 7. Ini akan memungkinkan penggelaran ke produksi tanpa perlu menyinkronkan dengan pembaruan server ke PHP 8. Jika Anda tidak dapat atau tidak diminta untuk mempertahankan kompatibilitas mundur ini, Anda harus mempertimbangkan bahwa server harus diperbarui sebelum digunakan, jika tidak, aplikasi mungkin tidak akan berfungsi (dan Anda akan mengalami hari yang rumit) Sebagai pernyataan akhir, panduan ini bersifat umum, jadi gunakan sebagai referensi dan sesuaikan dengan konteks proyek Anda Versi PHP apa yang diperlukan untuk Drupal?Sejak PHP 8. 1. 6 adalah terbaru yang mungkin belum tersedia di platform hosting, versi PHP minimum yang direkomendasikan untuk Drupal 9. 4 dan diturunkan menjadi 8. 0. PHP 8. 1. 6 atau lebih tinggi masih merupakan pilihan terbaik untuk kompatibilitas maju dengan Drupal 10, tetapi PHP 8. 0 didukung melewati Drupal 9. 4 berakhir pada bulan Juni 2022.
PHP apa yang diperlukan untuk Drupal 9?7+ diperlukan. Jika menggunakan Drupal 9 dengan SQLite, versi 3. 26+ diperlukan. (PHP7. 4 tidak menggunakan sistem yang disediakan SQLite, jadi berhati-hatilah untuk memastikan PHP Anda dikompilasi dengan setidaknya versi ini). Jika menggunakan Drupal 9 dengan PostgreSQL, versi 10 diperlukan dengan ekstensi pg_trgm
Apa persyaratan untuk drupal 9?Drupal 9 membutuhkan PHP 7. 3 atau lebih tinggi , dan persyaratan versi untuk Apache telah ditingkatkan menjadi Apache 2. 4. 7 atau lebih tinggi. Versi database berikut ini didukung oleh Drupal 9 core. MySQL atau Percona 5. 7.
Apa persyaratan sistem untuk instalasi Drupal?Memori PHP. ukuran memori minimum 64MB (jika Anda menjalankan beberapa modul di situs Anda atau menggunakan alat baris perintah berbasis PHP yang intensif memori (seperti Composer . ) Perlu ekstensi PHP. PDO, XML, GD-library, OpenSSL, JSON, cURL, Mbstring. |