Mikrosymfony?
Tentang ?
Microsymfony adalah kerangka aplikasi Symfony 7.2 pada steroid, siap digunakan.
Saya telah membuat posting blog panjang yang menjelaskan filosofi di belakang dan cara menggunakannya:
- Memperkenalkan template aplikasi mikrosymfony
Satu aturan: Satu -satunya ketergantungan wajib adalah PHP !
PS : Jika Anda ingin menggunakan versi Symfony 6.4 LTS terakhir dalam file composer.json Anda, ganti semua kemunculan 7.2 dengan 6.4 dan jalankan composer up .
Daftar isi
- Demo
- Start cepat
- Dengan biner Symfony
- Dengan Frankenphp
- Persyaratan
- Tumpukan
- Fitur
- Cabang fitur
- Infrastruktur
- Database
- Perkakas
- Catatan
- Symfony UX
- File konfigurasi PHP
- Praktik bagus lainnya
- Referensi
- Berkontribusi
- Keamanan
- Kredit
- Lisensi
- Dibangun dengan mikrosymfony
Demo?
Karena demo langsung selalu lebih baik dari semua penjelasan:
- Demo langsung di https://microsymfony.ovh
- Demo Langsung Didukung oleh Frankenphp di https://frankenphp.microsymfony.ovh
Mulai Cepat ⚡
Dengan biner Symfony?
Anda harus memasang biner simfony dan komposer secara lokal.
Untuk membuat proyek baru, dari tag terakhir, jalankan:
composer create-project strangebuzz/microsymfony && cd microsymfony
Kemudian mulailah server PHP dengan Make:
Atau dengan Castor:
Buka https://127.0.0.1:8000 (mempertimbangkan port 8000 Anda gratis) dan nikmati! ?
PS : Anda juga dapat menggunakan tombol hijau "Gunakan templat ini ⇩" di kanan atas beranda proyek GitHub. Ini menciptakan repositori baru dari cabang utama alih -alih rilis terakhir. Saya menjamin bahwa semua berkomitmen di utama stabil; Anda dapat memverifikasi bahwa pekerjaan CI yang terkait adalah ✅.
Dengan Frankenphp?
Kami juga dapat menggunakan FrankenPHP untuk menjalankan mikrosymfony. Anda harus memasang Docker secara lokal.
Buat proyek baru dari template github, jalankan:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
Instal runtime Frankenphp Symfony:
docker run --rm -it -v $PWD:/app composer:latest require runtime/frankenphp-symfony
Kemudian jalankan:
docker run
-e FRANKENPHP_CONFIG="worker ./public/index.php"
-e APP_RUNTIME=Runtime\FrankenPhpSymfony\Runtime
-v $PWD:/app
-p 80:80 -p 443:443
-d
dunglas/frankenphp
Buka https: // localhost dan nikmati! ?
PS : Di Windows, ganti $PWD dengan "%cd%" .
Anda juga dapat secara langsung menggunakan cabang Frankenphp.
Persyaratan ⚙
- PHP 8.2 (juga bekerja dengan PHP 8.3 dan PHP 8.4)
- Symfony Cli
Persyaratan opsional?
- Ekstensi PHP XDEBUG jika Anda ingin menjalankan laporan cakupan kode
- Pelari Tugas Castor Jika Anda tidak ingin menggunakan Make dan Makefile -nya
Tumpukan?
- PHP 8.2 hingga 8.4
- Symfony 7.2
- Ranting 3.8
- Stimulus Hotwired 3.2 dan Turbo 8.0
- Phpunit 11.5
- Pico CSS 2.0
Fitur
Microsymfony mengirimkan fitur -fitur ini, siap digunakan:
- Dua pelari tugas
- Buat (sumber) (demo)
- Castor (Sumber) (demo)
- Analisis statis dengan phpstan 2
- Standar pengkodean dengan php-cs-fixer
- Tes (demo)
- Contoh tes unit
- Contoh Tes Integrasi
- Contoh tes fungsional
- Contoh tes API
- Contoh tes E2E
- Cakupan kode pada 100% (ambang batas yang dapat dikonfigurasi)
- Laporan Cakupan tentang Pengawas
- GitHub CI (Tindakan)
- Menguji output pekerjaan
- Output pekerjaan serat
- Output pekerjaan keamanan
- Aset mapper+stimulus (dokumentasi)
- Vanilla JS (Sumber) (demo)
- Ambil titik akhir JSON dari aplikasi (sumber) (demo)
- Template kesalahan khusus
Cabang fitur?
Cabang fitur tidak digabungkan di cabang utama tetapi digunakan untuk menguji integrasi perpustakaan vendor baru atau membuat POC. Misalnya, apakah Anda pernah bermimpi menguji fasih, Laravel Orm, pada proyek simfony? Kemudian klon cabang eloquent , dan jalankan composer install && make load-fixtures .
Infrastruktur
- FRANKENPHP (PR, Cabang, Rebased pada 2024-11-17)
- Symfony-Docker (PR, Cabang, Rebased pada 2024-11-17)
Database?
Cabang «database» ini bertujuan untuk menampilkan daftar catatan dari database SQLite.
- Doktrin Dbal (PR, Cabang, Rebased pada 2024-12-22)
- ORM yang fasih (PR, cabang, dibebaskan kembali pada 2024-11-17)
Perkakas?
- Taskfile (PR, Cabang, Rebased pada 2024-11-17)
- Twigstan (PR, Cabang, Dibebani pada 2024-11-17)
- Twig-CS-Fixer (PR, Branch, Rebased pada 2024-11-21)
Seseorang akan merebut kembali cabang -cabang itu secara teratur sehingga mereka selalu up to date.
Catatan?
Symfony-ux
Formulir turbo dinonaktifkan dalam aset/app.js. Untuk mengaktifkan fitur untuk formulir yang diberikan, tambahkan atribut data-turbo="true" ke dalamnya. Atau ubah parameter Turbo.setFormMode ke on untuk mengaktifkan fitur secara global. Dalam kedua kasus, kode pengontrol Anda harus dimodifikasi sesuai.
File konfigurasi PHP
Jika Anda menginstal perpustakaan Symfony baru, resep Flex dapat menambahkan file YAML ke proyek Anda. File YAML ini dimuat, tetapi Anda dapat mengubahnya menjadi PHP seperti file konfigurasi lainnya. Misalnya, untuk mengonversi konfigurasi messenger YAML menjadi PHP dengan Simplify, Run:
vendor/bin/config-transformer convert config/packages/messenger.yaml
Praktik bagus lainnya?
- Menggunakan file konfigurasi PHP bukan YAML (Sumber)
- Menggunakan tipe ketat di semua file php (sumber)
- Menggunakan pola ADR dalam pengontrol tindakan (sumber) (DOC)
- File Composer.json dinormalisasi dengan Ergebnis/Komposer-Normalisasi
- Penggunaan plugin Bin Komposer untuk menginstal dan menjalankan php-cs-fixer
Referensi
- Cara beralih dari konfigurasi yaml ke php hari ini dengan symplify (tomasvotruba.com)
- Phpstan 2.0 dirilis dengan Level 10 dan Elephpants! (phpstan.org)
- Pola ADR yang lebih baik untuk pengontrol Symfony Anda (StrangeBuzz.com)
- Konfigurasi TaskFile Saya untuk Symfony (JMSCHE.FR)
- Anda harus menggunakan PHPStans Bleeding Edge (backendtea.com)
- Konvensi penamaan yang bagus untuk rute, pengontrol, dan templat? (jolicode.com)
- Pengembangan Aplikasi Front-End, Symfony-Style (S) (Dunglas.dev)
- Pemeriksaan Cakupan Uji Otomatis dengan Travis, Phpunit untuk Permintaan Tarik GitHub (Ocramius.github.io)
- Menginstal dan Menggunakan FP-CS-Fixer (StrangeBuzz.com)
- Castor, sebuah perjalanan melintasi lautan pelari tugas (jolicode.com)
- Inisialisasi Proyek Symfony Anda dengan Yayasan Solid (StrangeBuzz.com)
- Mengorganisir Tes Proyek Symfony Anda (StrangeBuzz.com)
- Apa praktik terbaik simfony Anda? (StrangeBuzz.com)
- Menetapkan alur kerja CI/CD untuk proyek Symfony berkat tindakan GitHub (StrangeBuzz.com)
- Praktik Terbaik Kerangka Symfony (Symfony.com)
Berkontribusi?
Silakan lihat Kontribusi dan Code_OF_Conduct untuk detailnya.
Keamanan?
Silakan lihat keamanan untuk detailnya.
Kredit
- Koil (pemelihara primer)
- Semua kontributor
Lisensi ⚖️
Lisensi MIT (MIT). Silakan lihat file lisensi untuk informasi lebih lanjut.
Dibangun dengan mikrosymfony
- Placehold.ovh (2024-12-01)
- Apartemen-tok-tourcoing.com (2024-11-30)
- Easyadmin Mercure Demo (2023-05-24)