PHP di EGPHP
Semua yang kami bangun berawal dari PHP.
Tim kami telah menulis dan menjalankan PHP selama dua puluh lima tahun, sejak PHP 4. Server, panel kontrol, dan situs yang kami rawat semuanya berawal dari sini.
Dua puluh lima tahun, rilis demi rilis
Kami tidak sekadar membaca tentang versi-versi ini. Kami meng-upgrade situs sungguhan melewati setiap versinya, dan setiap baris di bawah ini adalah perubahan yang harus kami tangani di server yang sedang berjalan.
-
PHP 4 2000
Sesi dan output buffering, bawaan bahasa
Zend Engine hadir, dan sesi serta output buffering menjadi bagian dari bahasa itu sendiri, bukan lagi tambahan. Satu generasi situs dinamis awal ditulis di atasnya.
Zend Enginesession_start()ob_start()
Artinya bagi kamiTitik awal tim kami: situs yang ditulis tangan di server bersama, dengan register_globals masih aktif.
-
PHP 5.0 2004
Model objek yang sesungguhnya
Zend Engine 2 menghadirkan kelas dengan visibilitas, interface, dan exception, objek yang diteruskan lewat handle alih-alih disalin, serta ekstensi MySQLi dan SimpleXML.
privateinterfacetry / catchmysqli
Artinya bagi kamiKode dapat disusun dalam kelas-kelas yang dipakai bersama oleh satu tim, dan basis data mendapat driver modern.
-
PHP 5.3 2009
Namespace dan closure
Namespace, fungsi anonim, dan late static binding: fondasi yang kelak menjadi pijakan Composer dan ekosistem paket bersama.
namespacefunction () use ()static::
Artinya bagi kamiPustaka dari penulis yang berbeda akhirnya bisa hidup dalam satu proyek tanpa nama-namanya saling bertabrakan.
-
PHP 5.4 2012
Trait, array singkat, dan bersih-bersih Merusak kode lama
Trait, sintaks array singkat [], dan server pengembangan bawaan, sementara register_globals, magic quotes, dan safe mode dihapus untuk selamanya.
trait[ ]php -S
Artinya bagi kamiSitus lama yang bergantung pada register_globals berhenti berfungsi, dan meng-upgrade-nya berarti memperbaikinya lebih dulu.
-
PHP 5.5 2013
OPcache langsung tersedia
OPcache disertakan bersama PHP dan menyimpan skrip yang telah dikompilasi di memori, bersama generator dan password_hash().
opcacheyieldpassword_hash()
Artinya bagi kamiKode hasil kompilasi disimpan di memori, tidak dibaca ulang pada setiap permintaan. Sampai sekarang, inilah pengaturan pertama yang kami periksa di setiap server PHP.
-
PHP 6 tak pernah dirilis
Versi yang tak pernah dirilis
PHP 6 direncanakan dengan string Unicode bawaan, lalu ditinggalkan. Rilis berikutnya diberi nomor 7 agar tidak tertukar dengan buku dan rencana yang sudah ditulis untuk versi 6.
-
PHP 7.0 2015
Lompatan kecepatan Merusak kode lama
Mesin yang dibangun ulang, yang menurut proyek PHP hingga dua kali lebih cepat daripada 5.6 dengan memori lebih sedikit, ditambah deklarasi tipe skalar dan tipe kembalian, ?? dan <=>.
int $id: string??<=>
Artinya bagi kamiFungsi mysql_* yang lama dihapus, salah satu penyebab tersering situs lama rusak pada upgrade ini.
-
PHP 7.4 2019
Properti bertipe dan preloading
Properti bertipe, arrow function, operator ??=, preloading OPcache, dan FFI.
public int $idfn ($x) =>??=
Artinya bagi kamiRilis 7.x terakhir, dan versi yang paling lama dipertahankan oleh banyak aplikasi lama, itulah sebabnya kami masih memindahkan situs dari versi ini.
-
PHP 8.0 2020
JIT, atribut, dan argumen bernama Merusak kode lama
Kompiler JIT, atribut, argumen bernama, union type, match, operator nullsafe ?->, dan constructor property promotion.
#[Attribute]match?->JIT
Artinya bagi kamiBanyak peringatan berubah menjadi error, dan perbandingan antara string dan angka berubah, sehingga kode yang berjalan tenang di 7.4 bisa berhenti di 8.0.
-
PHP 8.1 2021
Enum, readonly, dan fiber
Enum bawaan, properti readonly, fiber, tipe kembalian never, dan sintaks first-class callable.
enumreadonlyFibernever
Artinya bagi kamiFiber membuka jalan bagi pustaka PHP asinkron tanpa mengubah cara sebuah permintaan biasa dijalankan.
-
PHP 8.2 2022
Kelas readonly, dan peringatan untuk kode lama
Kelas readonly, tipe DNF, true, false, dan null sebagai tipe mandiri, serta ekstensi Random yang baru.
readonly class(A&B)|nullRandom\Randomizer
Artinya bagi kamiProperti dinamis dinyatakan usang, dan plugin lama memenuhi log dengan pemberitahuan sampai diperbarui.
-
PHP 8.3 2023
Konstanta bertipe dan #[\Override]
Konstanta kelas bertipe, atribut #[\Override], json_validate(), dan pengambilan konstanta kelas secara dinamis.
const string#[\Override]json_validate()
Artinya bagi kamiRilis yang lebih tenang, sehingga menjadi langkah mudah bagi situs yang sudah berada di 8.2.
-
PHP 8.4 2024
Property hooks
Property hooks, visibilitas asimetris, lazy objects, parser DOM yang memahami HTML5, dan new MyClass()->method() tanpa tanda kurung tambahan.
get { }public private(set)Dom\HTMLDocument
Artinya bagi kamiGetter dan setter yang dulu masing-masing memerlukan satu metode kini menjadi milik properti itu sendiri, sehingga kode yang perlu dirawat lebih sedikit.
-
PHP 8.5 2025
Operator pipe Terkini
Operator pipe |>, ekstensi URI bawaan, clone with, atribut #[\NoDiscard], array_first() dan array_last(), serta backtrace pada fatal error.
|>Uri\Rfc3986\Uriclone($o, [ ])
Artinya bagi kamiLini rilis terkini, dan versi yang kami gunakan untuk memulai situs baru bila kodenya mendukung.
Tahun yang tercantum adalah tahun rilis pertama setiap versi menurut riwayat rilis resmi proyek PHP.
Ikuti satu permintaan menembus tumpukan
Sebuah halaman di situs PHP melewati lima lapisan saat masuk, lalu naik kembali melalui lima lapisan yang sama saat keluar. Kami merawat semuanya, dan masing-masing punya halamannya sendiri.
-
Pengunjung
Browser meminta sebuah halaman melalui HTTPS. Sertifikat, firewall, dan aturan di depan server menentukan apakah permintaan itu boleh masuk atau tidak.
-
Web server
Nginx atau LiteSpeed menerima koneksi, menyajikan sendiri gambar dan berkas, dan hanya meneruskan pekerjaan PHP ke pool di belakangnya.
-
Runtime PHP
Pool PHP-FPM, satu per situs, masing-masing dengan versi PHP yang dibutuhkan kodenya, OPcache yang sudah hangat, dan worker yang disesuaikan dengan lalu lintasnya.
-
Kode Anda
Framework atau platform siap pakai mengubah permintaan menjadi halaman: aplikasi Laravel Anda sendiri, atau WordPress, Magento, Moodle, dan lainnya.
-
Data
MySQL atau MariaDB menyimpan catatan, dan Redis menyimpan di memori apa yang diminta berulang kali.
Server itu sendiri
Server kami sendiri, dikelola oleh tim yang sama, dengan panel kontrol kami sendiri di atasnya.
Pindah ke PHP yang lebih baru tanpa pagi yang kacau
Setiap situs mendapat pool-nya sendiri, sehingga satu server dapat menjalankan beberapa versi PHP berdampingan, dan setiap situs pindah saat kodenya siap, bukan saat servernya siap.
Kami mendata apa yang dijalankan setiap situs
Versi PHP-nya, ekstensinya, serta plugin atau paket yang menahannya.
Sebuah salinan mencoba versi baru
Situs disalin dan dijalankan pada versi PHP berikutnya, lalu log error-nya dibaca baris demi baris.
Kami memperbaiki yang rusak
Fungsi yang dihapus, pemanggilan yang usang, dan plugin tanpa pembaruan diperbaiki atau diganti.
Satu situs setiap kali
Setiap situs beralih ke pool barunya sendiri-sendiri, dan dapat segera dikembalikan jika ada yang terlewat.
| Situs | PHP | Pool | Status |
|---|---|---|---|
| shop.example.com | 8.4 | fpm-shop | aktif |
| blog.example.com | 8.3 | fpm-blog | aktif |
| crm.example.com | 7.4 → 8.3 | fpm-crm | di salinan |
| learn.example.com | 8.3 | fpm-learn | aktif |

Bawa PHP Anda kepada kami
Situs lama yang membutuhkan PHP lebih baru, platform yang perlu dipasang, atau server untuk menjalankan semuanya. Setiap pekerjaan diberi penawaran harga setelah percakapan singkat.