Di media sosial, selalunya pembangun PHP baharu bertanya "Apakah rangka kerja yang perlu saya gunakan untuk projek saya" dan secara amnya jawapan yang diberikan ialah "Laravel" atau "Symfony".
Walaupun kedua-dua pilihan ini bagus, jawapan yang betul untuk soalan ini ialah "Apakah yang anda perlukan rangka kerja untuk lakukan?"
Rangka kerja yang betul mestilah yang melakukan apa yang anda perlukan, tanpa banyak ciri yang tidak akan anda gunakan.
Jika anda membuat tapak web dengan satu laluan, menggunakan Laravel atau Symfony akan mengatasi tapak tersebut, manakala untuk tapak yang kompleks, Laravel atau Symfony mungkin merupakan pilihan yang tepat.
Rangka kerja mikro bagus untuk membina tapak bersaiz kecil hingga sederhana yang tidak memerlukan semua ciri yang disediakan oleh rangka kerja tindanan penuh.
Walaupun terdapat banyak, Slim dan Flight PHP kedua-duanya adalah contoh hebat rangka kerja mikro.
Baru-baru ini saya membina laman web kecil yang meminta pengguna menyelesaikan 10 soalan berkaitan pangkalan data. Ia mempunyai tiga laluan, dan beberapa pertanyaan asas untuk mengambil soalan dan membandingkan jawapan.
Untuk projek kecil seperti ini, rangka kerja mikro ialah pilihan yang bagus. Saya membina tapak pada kedua-dua Slim dan Flight PHP untuk membandingkannya.
Jika anda tidak pernah menggunakan rangka kerja tertentu sebelum ini, menggunakan projek rangka yang disediakan biasanya merupakan tempat yang bagus untuk bermula.
Projek rangka PHP Penerbangan adalah hampir seperti yang saya jangkakan, ringan, persediaan MVC yang ringkas, mudah untuk memahami struktur folder dan mengetahui ke mana segala-galanya harus pergi dalam projek.
Bagi seseorang yang baru dalam rangka kerja, keluk pembelajaran untuk bangun dan berlari adalah minimum.
Cahaya pada perpustakaan komposer, hanya 5 secara keseluruhan (termasuk perpustakaan teras), 4 digunakan dalam pengeluaran.
Saiz pengeluaran untuk Skeleton, ialah 1.6Mb.
Projek rangka slims mengejutkan saya, Struktur direktori adalah lebih kompleks daripada yang saya jangkakan. Lebih menjurus kepada struktur yang boleh digunakan dalam projek yang lebih besar daripada projek kecil. Untuk rangka kerja mikro, ini tidak dijangka.
Rangka Slim adalah lebih berat sedikit daripada Flight PHP. 21 perpustakaan komposer, 9 digunakan dalam pengeluaran. Saiz pengeluaran projek ialah 3.3Mb.
Kedua-duanya berfungsi di luar kotak dengan konfigurasi tambahan minimum yang diperlukan.
Daripada menggunakan rangka, saya memutuskan untuk membina tapak dengan membuat persediaan saya sendiri. Kelebihan melakukan ini ialah saya dapat menyesuaikan rangka kerja untuk memenuhi keperluan saya dan melihat betapa fleksibelnya kepada struktur yang berbeza.
Salah satu kelebihan besar menggunakan rangka kerja mikro ialah dapat membinanya untuk melakukan apa yang anda perlukan tanpa overhed yang tidak perlu, menambah ciri dan perpustakaan apabila ia diperlukan.
Persediaan saya dengan Flight PHP tidak jauh berbeza daripada rangka, Walaupun saya mempunyai kurang direktori dan perpustakaan komposer yang berbeza, dari segi struktur, ia adalah serupa.
Dengan Slim, struktur projek akhirnya berbeza dengan ketara daripada rangka.
Memang bagus bahawa Slim adalah fleksibel dan tidak membuat andaian tentang struktur dan berfungsi dengan baik dengan struktur yang sama sekali berbeza daripada rangka.
Flight PHP juga fleksibel dengan cara ini, membenarkan struktur yang lebih kompleks jika perlu, menambah perpustakaan baharu ke dalam rangka kerja adalah lurus ke hadapan.
Penghalaan
Dari sudut pandangan penghalaan, kedua-duanya bagus untuk bekerjasama. Kedua-duanya mudah disediakan tanpa perlu membaca banyak dokumentasi.
Laluan dalam PHP Penerbangan adalah lebih mudah untuk disediakan berbanding Slim, dan menggunakan kurang kod untuk berbuat demikian, tetapi kedua-duanya tidak sukar untuk disediakan.
Kumpulan penghalaan, kebolehan regex dan pilihan perisian tengah menjadikan laluan fleksibel sementara masih mudah untuk digunakan.
Sambungan Pangkalan Data
Dengan Slim, jangkaan anda perlu menggunakan ORM seperti Fasih atau Doktrin untuk pertanyaan pangkalan data anda, manakala Flight PHP menyediakan pembungkus mudah untuk PDO yang boleh digunakan jika anda perlu dan secara pilihan, Rekod Aktif boleh ditambahkan pada projek untuk membina pertanyaan.
Untuk projek kecil seperti yang saya sedang kerjakan, menggunakan ORM nampaknya agak lebih daripada yang diperlukan, jadi saya akhirnya membina kelas pembalut PDO kecil untuk Slim, serupa dengan yang terbina dalam Flight PHP .
ORM sangat bagus, tetapi mempunyai kefleksibelan terbina dalam untuk memilih cara saya ingin mengodkan pertanyaan pangkalan data ialah ciri yang baik.
Pengekodan Umum
Kedua-dua Rangka Kerja PHP Slim dan Flight bagus untuk membolehkan anda menulis kod dengan cara anda sendiri.
Sesetengah rangka kerja cenderung memaksa anda untuk mengekodkan cara tertentu dan kadangkala ia boleh berasa seperti anda sedang melawan rangka kerja tersebut.
Rangka kerja harus bekerja dengan anda bukan menentang anda, dan kedua-duanya merasakan mereka bekerja dengan saya.
Slim juga menyediakan beberapa alat tambah yang berguna termasuk penyepaduan CSRF dan cache HTTP.
Flight PHP menyediakan tambahan tambahan termasuk Kebenaran dan Rekod Aktif.
Semua alat tambah ini adalah tambahan yang berguna tanpa perlu menggunakan penyelesaian pihak ketiga atau membina sendiri.
Memulangkan JSON sebagai respons adalah lebih bersih dalam Flight PHP berbanding dalam Slim, Slim 3 mempunyai respons yang mudah denganJson. Walaupun Slim 4 lebih mematuhi PSR-7, ini bermakna untuk membina respons JSON memerlukan lebih banyak kod.
Jika saya akan banyak menggunakan respons JSON, saya mungkin akan membuat pembungkus untuk menjadikannya lebih mudah sambil tetap mematuhi piawaian PSR-7.
Ini adalah perbezaan ketara antara kedua-dua Rangka Kerja, Slim merasakan ia perlu disesuaikan dengan lebih banyak lagi dengan mencipta kelas untuk membersihkan dan memudahkan pangkalan kod, manakala Flight PHP telah melakukannya untuk anda.
Slim menyediakan beberapa perisian tengah pembantu. Perisian tengah diperlukan untuk membuat beberapa ciri berfungsi.
Contohnya ialah mengambil data daripada Javascript menggunakan FETCH. Slim mempunyai kaedah getParsedBody untuk mencipta tatasusunan data daripada permintaan POST.
Walau bagaimanapun, untuk menggunakannya addBodyParsingMiddleware perlu ditambahkan pada bekas.
Ia adalah sedikit perangkap untuk pembangun baharu, tetapi turut menyediakan akses kepada ciri pilihan, yang boleh merendahkan jejak keseluruhan rangka kerja dengan hanya mendayakan ciri yang anda perlukan.
Flight PHP mencapai ini melalui fail konfigurasi, beberapa ciri boleh dihidupkan dan dimatikan melalui konfigurasi dan bukannya melalui pendayaan perisian tengah.
Ujian Kelajuan
Menurut penanda aras, membandingkan kedua-duanya mempunyai hasil yang menarik, Slim mengetepikan Flight PHP di beberapa kawasan manakala Flight PHP mengetepikan Slim di kawasan lain.
Menguji kedua-dua rangka kerja pada kod saya sendiri menunjukkan bahawa Flight PHP mempunyai masa tindak balas yang lebih pantas dan lebih konsisten daripada Slim.
Halaman Depan
DAPATKAN permintaan mengembalikan JSON
Pos permintaan mengembalikan JSON
Apa yang saya dapati yang patut diberi perhatian ialah lonjakan yang lebih ketara apabila menggunakan Slim.
Menjalankan ujian ini beberapa kali menghasilkan keputusan yang serupa setiap kali dengan yang saya tunjukkan di atas, dengan masa tindak balas yang umumnya baik untuk kedua-duanya tetapi dengan lonjakan luar biasa dalam Slim yang tidak berlaku semasa menguji Flight PHP, dan Flight PHP secara umumnya mempunyai lebih baik masa respons.
Jika anda belum menceburi rangka kerja mikro, cubalah mereka, terdapat beberapa di luar sana dan ia boleh menjadi pengalaman pembelajaran yang hebat untuk mencubanya dan melihat perkara yang anda suka dan tidak suka dalam setiap satu.
Slim dan Flight PHP adalah rangka kerja mikro yang hebat.
Slim ialah rangka kerja yang kukuh dengan beberapa ciri yang bagus untuk dimiliki, yang akan berfungsi dengan senyap untuk anda.
Flight PHP adalah lebih ringan, dan kesederhanaannya menjadikan pembelajaran rangka kerja sangat mudah.
Masa respons yang baik dan kod yang lebih ringkas untuk mencapai perkara yang sama menjadikannya pilihan yang sangat baik untuk digunakan oleh rangka kerja mikro.
Selepas meletakkan kedua-dua ini bersebelahan, saya lebih suka Flight PHP berbanding Slim, tetapi seperti mana-mana rangka kerja, cubalah dan lihat sama ada ia berfungsi untuk anda.
Lagipun, rangka kerja yang betul ialah rangka kerja yang melakukan perkara yang anda perlu lakukan.
Penerbangan PHP
Rangka Kerja Slim
Atas ialah kandungan terperinci Perbandingan Rangka Kerja PHP Slim dan Penerbangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!