Framework PHP
Setiap framework PHP punya tugas yang paling dikuasainya.
Kami membangun, menyelamatkan, dan meng-host aplikasi di semuanya – dan di PHP murni yang tidak pernah memakai framework – dengan tim yang telah menulis PHP selama dua puluh lima tahun.
Framework mana yang cocok untuk proyek Anda
Jawab dua pertanyaan. Setiap jalur berakhir di tempat kami akan memulai – dan menyebutkan kapan kami akan memilih yang lain.
Dari mana Anda memulai?
Proyek baru
Apa yang paling penting?
Sistem besar yang akan dikerjakan beberapa tim selama bertahun-tahun
Tempat kami akan memulai
Symfony
Konfigurasi eksplisit, container dependency injection, rilis dukungan jangka panjang, dan Doctrine untuk data. Strukturnya tetap kokoh saat developer kelima bergabung.
Pertimbangkan juga Laminas jika perusahaan sudah menjalankan kode Zend Framework.
Produk yang harus segera dirilis, dengan tim kecil
Tempat kami akan memulai
Laravel
Autentikasi, antrean, email, penjadwalan, dan ORM yang ekspresif langsung tersedia, dengan satu konvensi untuk semuanya.
Laravel di EGPHPAPI atau layanan kecil dengan satu tugas
Tempat kami akan memulai
Slim
Routing, middleware, dan request PSR-7 standar, tanpa apa pun yang tidak Anda minta. Anda yang memilih lapisan database dan container-nya.
Jika API akan berkembang menjadi produk lengkap, Laravel atau Symfony menghindarkan pembangunan ulang nanti.
Aplikasi kecil di server sederhana
Tempat kami akan memulai
CodeIgniter
Jejak kecil, sedikit konfigurasi, dan dokumentasi yang jelas. Berjalan baik saat sumber daya terbatas.
Banyak layar data, dibangun cepat dari database
Tempat kami akan memulai
Yii · CakePHP
Yii menghasilkan model dan layar CRUD dengan Gii; CakePHP menghasilkannya dengan bake dari konvensinya. Keduanya mengubah skema menjadi layar yang berfungsi dengan cepat.
Overhead framework paling kecil di setiap permintaan
Tempat kami akan memulai
Phalcon
Framework ini adalah ekstensi C yang dikompilasi, sehingga sangat sedikit PHP yang berjalan per permintaan. Ekstensi itu harus terpasang di server – kami memasangnya di server kami.
Banyak shared hosting tidak mengizinkan ekstensi PHP. Periksa dulu sebelum memilihnya.
Aplikasi yang sudah ada
Dibangun dengan apa?
PHP murni tanpa framework, atau versi PHP yang sangat lama
Tempat kami akan memulai
Selamatkan dulu
Kami membuatnya aman dan mutakhir sebelum hal lain, lalu bersama-sama memutuskan apakah framework layak dipakai.
Cara penyelamatan berjalanDibangun di atas framework, dan berfungsi
Tempat kami akan memulai
Pertahankan framework-nya
Kami meng-upgrade, mengamankan, dan mengembangkannya di framework tempat aplikasi itu ditulis. Menulis ulang adalah pilihan terakhir, bukan yang pertama.
Dibangun di atas framework yang ingin Anda tinggalkan
Tempat kami akan memulai
Migrasi bertahap
Aplikasi lama dan baru berjalan berdampingan, dan route dipindahkan satu per satu sementara bisnis tetap berjalan.
Cara migrasi berjalanBerdampingan
Apa setiap framework itu, apa keunggulan terbesarnya, dan kapan kami akan berpikir dua kali. Tidak ada yang salah; masing-masing tepat untuk pekerjaan yang berbeda.
| Framework | Apa itu | Lapisan data | Paling unggul di | Pikirkan ulang jika |
|---|---|---|---|---|
| Symfony | Framework full-stack dan komponen yang dapat digunakan ulang | Doctrine ORM | Sistem besar berumur panjang, dengan rilis dukungan jangka panjang | Situs kecil harus diluncurkan minggu ini |
| Laravel | Framework full-stack | Eloquent | Merilis produk dengan cepat, dengan antrean, autentikasi, dan email bawaan | Anda ingin setiap bagian dirangkai secara eksplisit |
| CodeIgniter | Framework full-stack yang ringan | Query builder dan model sederhana | Jejak kecil di server sederhana | Proyek membutuhkan ekosistem paket yang besar |
| Yii | Framework full-stack | Active Record | Layar padat data yang dihasilkan dengan Gii, dan caching | Tim Anda belum mengenalnya; komunitasnya lebih kecil |
| CakePHP | Framework full-stack | CakePHP ORM | Konvensi di atas konfigurasi, dan kode yang dihasilkan dari skema | Aplikasi melawan konvensinya di setiap langkah |
| Laminas | Komponen, framework MVC dan middleware; penerus Zend Framework | laminas-db atau Doctrine | Sistem bisnis yang sudah dibangun di atas Zend Framework | Proyek kecil yang baru ingin bergerak cepat |
| Slim | Mikro-framework | Tidak ada bawaan – Anda yang memilih | API dan layanan kecil | Aplikasi membutuhkan sesi, formulir, dan panel admin sejak hari pertama |
| Phalcon | Framework full-stack yang dikirim sebagai ekstensi C | Phalcon ORM dengan PHQL | Overhead per permintaan yang sangat rendah | Host Anda tidak dapat memasang ekstensi PHP |
Laravel sendiri dibangun di atas beberapa komponen Symfony, dan sebagian besar framework ini berbagi standar PSR yang sama – memindahkan kode di antara mereka tidak seberat kelihatannya.
PHP lama, kembali dalam kondisi prima
Kode yang ditulis bertahun-tahun lalu masih menghasilkan uang bagi banyak bisnis. Kami membuatnya aman dan mutakhir tanpa mematikannya.
- $id = $_GET['id'];- $r = mysql_query("SELECT * FROM orders WHERE id = $id");- $order = mysql_fetch_assoc($r);+ $stmt = $pdo->prepare('SELECT * FROM orders WHERE id = ?');+ $stmt->execute([(int) $_GET['id']]);+ $order = $stmt->fetch(PDO::FETCH_ASSOC);
Baca dan jalankan
Salinan aplikasi yang berjalan di server terkini, dan daftar tertulis tentang apa saja yang rusak.
Tes untuk yang sudah berfungsi
Tes yang merekam apa yang dilakukan halaman saat ini, sehingga perubahan yang merusak salah satunya langsung tertangkap.
PHP di-upgrade bertahap
Satu versi demi satu versi, dengan Rector untuk perubahan mekanis dan PHPStan untuk menemukan yang terlewat.
Keamanan dulu
Prepared statement, output yang di-escape, password di-hash ulang, serta sesi dan unggahan yang dikunci rapat.
Lalu, jika sepadan, sebuah framework
Fitur baru masuk ke framework di samping kode lama, dan halaman lama dipindahkan saat disentuh.
Pindah antar-framework, satu route demi satu route
Kami tidak menghentikan bisnis demi penulisan ulang. Aplikasi lama dan baru berada di belakang satu server web, dan setiap route dipindahkan saat penggantinya siap.
-
/api/ordersAplikasi baru Dipindahkan -
/accountAplikasi baru Dipindahkan -
/checkoutAplikasi baru Dalam pengujian -
/reportsAplikasi lama Menunggu -
/adminAplikasi lama Menunggu
Peralihannya cukup satu baris per route
# nginx
location /api/orders { proxy_pass http://new; }
location /account { proxy_pass http://new; }
location /checkout { proxy_pass http://new; }
location / { proxy_pass http://old; }
Route yang bermasalah dikembalikan ke aplikasi lama dengan perubahan satu baris yang sama, sementara kami memperbaikinya.

Ceritakan apa yang Anda jalankan
Framework, versi PHP, dan apa yang Anda khawatirkan tentangnya sudah cukup untuk memulai. Setiap proyek diberi penawaran setelah percakapan singkat.