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 EGPHP
API 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 berjalan
Dibangun 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 berjalan

Berdampingan

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.

Perbandingan framework PHP
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);
Fungsi mysql_ dihapus di PHP 7. Satu perubahan ini membuat halaman berjalan di PHP terkini sekaligus menutup celah SQL injection.
  1. Baca dan jalankan

    Salinan aplikasi yang berjalan di server terkini, dan daftar tertulis tentang apa saja yang rusak.

  2. Tes untuk yang sudah berfungsi

    Tes yang merekam apa yang dilakukan halaman saat ini, sehingga perubahan yang merusak salah satunya langsung tertangkap.

  3. PHP di-upgrade bertahap

    Satu versi demi satu versi, dengan Rector untuk perubahan mekanis dan PHPStan untuk menemukan yang terlewat.

  4. Keamanan dulu

    Prepared statement, output yang di-escape, password di-hash ulang, serta sesi dan unggahan yang dikunci rapat.

  5. 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/orders Aplikasi baru Dipindahkan
  • /account Aplikasi baru Dipindahkan
  • /checkout Aplikasi baru Dalam pengujian
  • /reports Aplikasi lama Menunggu
  • /admin Aplikasi lama Menunggu
Contoh migrasi, setengah jalan.

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.