Rumah pembangunan bahagian belakang tutorial php Perbandingan Rangka Kerja PHP Slim dan Penerbangan

Perbandingan Rangka Kerja PHP Slim dan Penerbangan

Sep 14, 2024 am 10:22 AM

Mengapa menggunakan rangka kerja mikro?

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.

Rangka

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.

Membina Daripada Gores

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.

Kod

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

Slim and Flight PHP Framework Comparison

DAPATKAN permintaan mengembalikan JSON

Slim and Flight PHP Framework Comparison

Pos permintaan mengembalikan JSON

Slim and Flight PHP Framework Comparison

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.

Fikiran Akhir

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Bagaimana cara memeriksa sama ada alamat e -mel sah dalam php? Sep 21, 2025 am 04:07 AM

UseFilter_var () TOVALIDATEMailSyntaxandCheckDnsrr () TOVERIFYDOnMAINMXRECORDS.example: $ e -mel = "user@example.com"; if (filter_var ($ e -mel, filter_email) && checkDnsrr (expode '

Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Bagaimana membuat salinan atau klon objek yang mendalam dalam php? Sep 21, 2025 am 12:30 AM

UseUnserialize (Serialize ($ obj)) fordeepcopyingWhenallDataisserizable; jika tidak, pelaksanaan__clone () tomanuallyduplicatenestedObjectsandavoidsharedReferences.

Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Bagaimana untuk menggabungkan dua tatasusunan dalam PHP? Sep 21, 2025 am 12:26 AM

UseArray_Merge () toCombineArrays, OverwritingDuplicateStringKeySandreIndexingNumericKeys; forsimplerconcatenation, terutamaInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

Bagaimana cara menggunakan ruang nama dalam projek PHP? Bagaimana cara menggunakan ruang nama dalam projek PHP? Sep 21, 2025 am 01:28 AM

Namespacesinphporganizecodeandpreventnamingnamingconflictsbygroupinglasses, antara muka, fungsi, dan constantsunderaspecificname.2.defineAnamespaceusingthenamespaceywordetopofafile, diikuti olehbythenamespaceakenam

Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Apakah kaedah sihir dalam php dan memberikan contoh `__call ()` dan `__get ()`. Sep 20, 2025 am 12:50 AM

The__call () methodistriggeredWhenaninaccessibleorundefinedmethodiscalledonanObject, membolehkanCustomHandlylyAccepteThemeThodnamnamnamnents, asshownwhencallingundefinedmethodslikesayhello ()

Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Bagaimana untuk mengemas kini rekod dalam pangkalan data dengan PHP? Sep 21, 2025 am 04:47 AM

Toupdateadatabaserecordinphp, firstConnectusingPdoormySqli, thenusePePreparedStatementStoExecuteAseCureSqlupDateQuery.example: $ pdo = newpdo ("mysql: host = localhost; dbName = your_database: $ userbase: $ userbase"

MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan MySQL Agregasi Bersyarat: Gunakan Penyataan Kes untuk Melaksanakan Sumsum dan Mengira Kondisi Simpanan Sep 16, 2025 pm 02:39 PM

Artikel ini membincangkan secara mendalam bagaimana menggunakan pernyataan kes untuk melakukan pengagregatan bersyarat di MySQL untuk mencapai penjumlahan bersyarat dan mengira bidang tertentu. Melalui kes sistem langganan praktikal, ia menunjukkan bagaimana secara dinamik mengira jumlah tempoh dan bilangan peristiwa berdasarkan status rekod (seperti "akhir" dan "membatalkan"), dengan itu mengatasi batasan fungsi jumlah tradisional yang tidak dapat memenuhi keperluan pengagregatan bersyarat kompleks. Tutorial menganalisis penerapan pernyataan kes dalam jumlah fungsi secara terperinci dan menekankan pentingnya bersatu ketika berurusan dengan nilai nol yang mungkin dari gabungan kiri.

Bagaimana untuk mendapatkan sambungan fail dalam PHP? Bagaimana untuk mendapatkan sambungan fail dalam PHP? Sep 20, 2025 am 05:11 AM

UsePathinfo ($ FileName, pathinfo_extension) togetthefileextension; itreliLyHandlesmultipledotsandgecases, returnTheExtension (mis., "Pdf") Oranemptystringifnoneexists.

See all articles