microsymfony?
เกี่ยวกับ ?
Microsymfony เป็นโครงกระดูก Symfony 7.2 บนสเตียรอยด์พร้อมใช้งาน
ฉันได้โพสต์บล็อกยาวอธิบายปรัชญาเบื้องหลังและวิธีการใช้งาน:
- แนะนำเทมเพลตแอปพลิเคชัน microsymfony
กฎข้อเดียว: การพึ่งพาที่จำเป็นเพียงอย่างเดียวคือ PHP !
PS : หากคุณต้องการใช้เวอร์ชัน Symfony 6.4 LTS ล่าสุดในไฟล์ composer.json ของคุณให้แทนที่ทั้งหมดที่เกิดขึ้น 7.2 ด้วย 6.4 และเรียกใช้ composer up
สารบัญ
- การสาธิต
- เริ่มต้นอย่างรวดเร็ว
- กับ Symfony Binary
- กับ Frankenphp
- ความต้องการ
- กองซ้อน
- คุณสมบัติ
- คุณสมบัติสาขา
- โครงสร้างพื้นฐาน
- ฐานข้อมูล
- การใช้เครื่องมือ
- หมายเหตุ
- symfony ux
- ไฟล์กำหนดค่า PHP
- แนวทางปฏิบัติที่ดีอื่น ๆ
- การอ้างอิง
- การบริจาค
- ความปลอดภัย
- การให้เครดิต
- ใบอนุญาต
- สร้างด้วย microsymfony
การสาธิต?
เพราะการสาธิตสดนั้นดีกว่าคำอธิบายทั้งหมดเสมอ:
- การสาธิตสดที่ https://microsymfony.ovh
- การสาธิตสดขับเคลื่อนโดย Frankenphp ที่ https://frankenphp.microsymfony.ovh
เริ่มต้นอย่างรวดเร็ว⚡
กับ Symfony Binary?
คุณต้องติดตั้ง Symfony Binary และ Composer ในเครื่อง
ในการสร้างโครงการใหม่จากแท็กสุดท้ายรัน:
composer create-project strangebuzz/microsymfony && cd microsymfony
จากนั้นเริ่มเซิร์ฟเวอร์ PHP ด้วย Make:
หรือกับ Castor:
เปิด https://127.0.0.1:8000 (พิจารณาพอร์ต 8000 ของคุณฟรี) และสนุก! -
PS : คุณสามารถใช้ปุ่มสีเขียว "ใช้แม่แบบนี้⇩" ที่ด้านบนขวาของหน้าแรกของโครงการ GitHub สิ่งนี้สร้างที่เก็บใหม่จากสาขาหลักแทนที่จะเป็นรุ่นสุดท้าย ฉันรับประกันได้ว่าการกระทำทั้งหมดในหลักนั้นมีเสถียรภาพ คุณสามารถตรวจสอบได้ว่างาน CI ที่เกี่ยวข้องคือ✅
กับ Frankenphp?
นอกจากนี้เรายังสามารถใช้ Frankenphp เพื่อเรียกใช้ microsymfony คุณต้องติดตั้ง Docker ในเครื่อง
สร้างโครงการใหม่จากเทมเพลต GitHub Run:
docker run --rm -it -v $PWD:/app composer:latest create-project strangebuzz/microsymfony && cd microsymfony
ติดตั้งรันไทม์ Symfony Frankenphp:
docker run --rm -it -v $PWD:/app composer:latest require runtime/frankenphp-symfony
จากนั้นเรียกใช้:
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
เปิด https: // localhost และสนุก! -
PS : บน Windows แทนที่ $PWD ด้วย "%cd%"
นอกจากนี้คุณยังสามารถใช้สาขา Frankenphp โดยตรง
ข้อกำหนด⚙
- PHP 8.2 (ทำงานร่วมกับ PHP 8.3 และ PHP 8.4)
- Symfony CLI
ข้อกำหนดทางเลือก?
- ส่วนขยาย XDEBUG PHP หากคุณต้องการเรียกใช้รายงานการครอบคลุมรหัส
- นักวิ่ง Castor Task หากคุณไม่ต้องการใช้ Make และ Makefile
สแต็ค?
- PHP 8.2 ถึง 8.4
- Symfony 7.2
- กิ่งไม้ 3.8
- สิ่งเร้า Hotwired 3.2 และ Turbo 8.0
- phpunit 11.5
- Pico CSS 2.0
คุณสมบัติ
Microsymfony จัดส่งคุณสมบัติเหล่านี้พร้อมใช้งาน:
- นักวิ่งสองคน
- ทำ (แหล่งที่มา) (สาธิต)
- Castor (แหล่งที่มา) (สาธิต)
- การวิเคราะห์แบบคงที่ด้วย phpstan 2
- มาตรฐานการเข้ารหัสด้วย PHP-CS-Fixer
- การทดสอบ (สาธิต)
- ตัวอย่างการทดสอบหน่วย
- ตัวอย่างการทดสอบการรวม
- ตัวอย่างการทดสอบการทำงาน
- ตัวอย่างการทดสอบ API
- ตัวอย่างการทดสอบ E2E
- ครอบคลุมรหัสที่ 100% (เกณฑ์ที่กำหนดค่าได้)
- รายงานความครอบคลุมเกี่ยวกับการตรวจสอบ
- GitHub CI (การกระทำ)
- ทดสอบผลงาน
- งานผ้าสำลีงาน
- งานด้านความปลอดภัย
- Asset Mapper+Stimulus (เอกสาร)
- วานิลลา JS (แหล่งที่มา) (สาธิต)
- ดึงข้อมูลบนจุดสิ้นสุด JSON ของแอปพลิเคชัน (แหล่งที่มา) (สาธิต)
- เทมเพลตข้อผิดพลาดที่กำหนดเอง
คุณสมบัติสาขา?
สาขาคุณสมบัติไม่ได้รวมอยู่ในสาขาหลัก แต่ใช้เพื่อทดสอบการรวมของไลบรารีผู้ขายใหม่หรือสร้าง POC ตัวอย่างเช่นคุณเคยใฝ่ฝันที่จะทดสอบการพูดคุย Laravel Orm ในโครงการ Symfony หรือไม่? จากนั้นโคลนสาขา eloquent และเรียกใช้ composer install && make load-fixtures
โครงสร้างพื้นฐาน
- Frankenphp (PR, Branch, rebased เมื่อปี 2024-11-17)
- Symfony-Docker (PR, สาขา, rebased เมื่อปี 2024-11-17)
ฐานข้อมูล?
«ฐานข้อมูล»สาขาเหล่านี้มีจุดมุ่งหมายเพื่อแสดงรายการระเบียนจากฐานข้อมูล SQLite
- หลักคำสอน DBAL (PR, สาขา, rebased เมื่อปี 2024-12-22)
- ELOQUENT ORM (PR, Branch, rebased เมื่อปี 2024-11-17)
เครื่องมือ?
- TaskFile (PR, Branch, rebased เมื่อปี 2024-11-17)
- Twigstan (PR, สาขา, rebased เมื่อปี 2024-11-17)
- Twig-CS-Fixer (PR, สาขา, rebased เมื่อ 2024-11-21)
หนึ่งจะ rebase สาขาเหล่านั้นเป็นประจำเพื่อให้พวกเขาทันสมัยอยู่เสมอ
หมายเหตุ?
symfony-ux
แบบฟอร์มเทอร์โบถูกปิดใช้งานในสินทรัพย์/app.js ในการเปิดใช้งานคุณสมบัติสำหรับฟอร์มที่กำหนดให้เพิ่มแอตทริบิวต์ data-turbo="true" ลงในนั้น หรือเปลี่ยนพารามิเตอร์ Turbo.setFormMode เป็น on เพื่อเปิดใช้งานคุณสมบัติทั่วโลก ในทั้งสองกรณีรหัสคอนโทรลเลอร์ของคุณจะต้องได้รับการแก้ไขตามนั้น
ไฟล์กำหนดค่า PHP
หากคุณติดตั้งไลบรารี Symfony ใหม่สูตร Flex สามารถเพิ่มไฟล์ YAML ลงในโครงการของคุณ ไฟล์ YAML เหล่านี้ถูกโหลด แต่คุณสามารถแปลงเป็น PHP เช่นไฟล์การกำหนดค่าอื่น ๆ ตัวอย่างเช่นในการแปลงการกำหนดค่า YAML messenger เป็น PHP ด้วยการทำให้ง่าย, รัน:
vendor/bin/config-transformer convert config/packages/messenger.yaml
แนวปฏิบัติที่ดีอื่น ๆ ?
- การใช้ไฟล์กำหนดค่า PHP แทน YAML (แหล่งที่มา)
- การใช้ประเภทที่เข้มงวดในไฟล์ PHP ทั้งหมด (แหล่งที่มา)
- การใช้รูปแบบ ADR ในคอนโทรลเลอร์แอ็คชั่น (แหล่งที่มา) (DOC)
- ไฟล์ posposer.json ถูกทำให้เป็นมาตรฐานด้วย ergebnis/composer-normalize
- การใช้ปลั๊กอิน Bin Composer เพื่อติดตั้งและเรียกใช้ PHP-CS-Fixer
การอ้างอิง
- วิธีเปลี่ยนจาก YAML configs เป็น PHP วันนี้ด้วย symplify (tomasvotruba.com)
- PHPSTAN 2.0 เปิดตัวด้วยระดับ 10 และช้าง! (phpstan.org)
- รูปแบบ ADR ที่ดีกว่าสำหรับตัวควบคุม Symfony ของคุณ (StrangeBuzz.com)
- การกำหนดค่า TaskFile ของฉันสำหรับ symfony (jmsche.fr)
- คุณควรใช้ phpstans bleed edge (backendtea.com)
- การประชุมการตั้งชื่อที่ดีสำหรับเส้นทางคอนโทรลเลอร์และเทมเพลต? (jolicode.com)
- การพัฒนาแอปพลิเคชันส่วนหน้าสไตล์ Symfony (dunglas.dev)
- ตรวจสอบความครอบคลุมการทดสอบอัตโนมัติด้วย Travis, phpunit สำหรับคำขอดึง gitHub (ocramius.github.io)
- การติดตั้งและใช้ PHP-CS-Fixer (StrangeBuzz.com)
- Castor การเดินทางข้ามทะเลของนักวิ่งงาน (jolicode.com)
- การเริ่มต้นโครงการ Symfony ของคุณด้วยฐานรากที่มั่นคง (StrangeBuzz.com)
- การจัดการการทดสอบโครงการ Symfony ของคุณ (StrangeBuzz.com)
- แนวทางปฏิบัติที่ดีที่สุดของ Symfony ของคุณคืออะไร? (StrangeBuzz.com)
- การตั้งค่าเวิร์กโฟลว์ CI/CD สำหรับโครงการ Symfony ด้วยการกระทำของ GitHub (StrangeBuzz.com)
- แนวทางปฏิบัติที่ดีที่สุดของ Symfony Framework (symfony.com)
มีส่วนร่วม?
โปรดดูรายละเอียดที่มีส่วนร่วมและ code_of_conduct
ความปลอดภัย ?
โปรดดูรายละเอียดความปลอดภัย
การให้เครดิต
- ขดลวด (ผู้ดูแลหลัก)
- ผู้มีส่วนร่วมทั้งหมด
ใบอนุญาต⚖
ใบอนุญาต MIT (MIT) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม
สร้างด้วย microsymfony
- placehold.ovh (2024-12-01)
- appartement-tourcoing.com (2024-11-30)
- Easyadmin Mercure Demo (2023-05-24)