เฟรมเวิร์กการพัฒนา imi coroutine คือเฟรมเวิร์กการพัฒนา PHP coroutine ที่ใช้ Swoole โดยรองรับการพัฒนาบริการของโปรโตคอลกระแสหลัก เช่น Http, Http2, WebSocket, TCP, UDP และ MQTT เหมาะอย่างยิ่งสำหรับไมโครเซอร์วิสทางอินเทอร์เน็ต การส่งข้อความโต้ตอบแบบทันที และ IM , Internet of Things และสถานการณ์อื่น ๆ ! -
ส่วนประกอบหลัก:
เซิร์ฟเวอร์ HttpApi, WebSocket, TCP, UDP, MQTT
พูลการเชื่อมต่อ MySQL (มาสเตอร์สเลฟ + โหลดบาลานซ์)
พูลการเชื่อมต่อ Redis (มาสเตอร์สเลฟ + โหลดบาลานซ์)
ORM ที่ใช้งานง่ายสุด ๆ (Db, Redis, Tree)
การอัปเดตร้อนแรงระดับมิลลิวินาที
เอโอพี
ภาชนะใส่ถั่ว
แคช
การอ่านและเขียนการกำหนดค่า (Config)
การแจกแจง
เหตุการณ์
ซุ้ม
ตรวจสอบความถูกต้อง
ล็อค
บันทึก
งานอะซิงโครนัส (งาน)
ข้อกำหนดด้านสิ่งแวดล้อม:
Redis、MySQL
บันทึกการอัปเดตกรอบงานการพัฒนา imi coroutine:
เวอร์ชัน 2.0.11
ยกระดับ
Hot update รองรับการรีโหลดไฟล์คอนฟิกูเรชัน
เพิ่มเซิร์ฟเวอร์::getConnections(), เซิร์ฟเวอร์::getConnectionCount()(#203)
รองรับการเขียนข้อมูลลงในโมเดลแบบไดนามิก แต่ไม่รองรับ toArray() และการทำให้เป็นอนุกรม
การตรวจสอบ SQL รองรับการตรวจจับข้อยกเว้น
การเริ่มต้นสภาพแวดล้อมของผู้ปฏิบัติงานรองรับการแสดงผลข้อมูลเครือข่าย
with() เชื่อมโยงคุณลักษณะการโหลดล่วงหน้า
เวอร์ชันนี้ใช้โมเดลที่เกี่ยวข้องกับการสืบค้นพร้อมฟีเจอร์ ซึ่งสามารถลดจำนวนการสืบค้นและปรับปรุงประสิทธิภาพของการสืบค้นที่เกี่ยวข้อง
รองรับการตั้งค่าด้วย=trueในคำอธิบายประกอบที่เกี่ยวข้องเพื่อเปิดใช้งานการโหลดล่วงหน้าอัตโนมัติ
สนับสนุนการตั้งค่า withFields={"Specify serialized fields"} ในคำอธิบายประกอบการเชื่อมโยง
รองรับการเรียกเมธอด with() หลัง Model::query() เพื่อระบุชื่อแอตทริบิวต์ที่เกี่ยวข้องที่โหลดไว้ล่วงหน้า
รองรับการเรียกเมธอด with() หลัง Model::query() เพื่อระบุการเรียกกลับที่สอดคล้องกับชื่อแอตทริบิวต์ที่เกี่ยวข้องที่โหลดไว้ล่วงหน้า
รองรับการเรียก withField() หลังจาก Model::query() เพื่อระบุโมเดลและฟิลด์ที่สอบถามระหว่างการทำให้เป็นอนุกรม
Model::queryRelationsList() รองรับการสืบค้นที่โหลดไว้ล่วงหน้า
การเพิ่มประสิทธิภาพ
ปรับปรุงประสบการณ์การพัฒนา (#197)
เพิ่มประสิทธิภาพการสแกนไฟล์ภายใต้ Swoole
เข้ากันได้กับสถานการณ์ที่ปิดชื่อย่อของ Swoole
ปรับ AppContexts::APP_PATH ให้เหมาะสมเพื่อให้ถือเป็นเส้นทางที่แน่นอน
ปรับความทนทานต่อข้อผิดพลาดของข้อยกเว้นที่เกิดจากข้อผิดพลาด json ให้เหมาะสม
การปรับปรุงการทดสอบหน่วย (#202)
สร้างการกำหนดเส้นทาง HTTP ใหม่เพื่อปรับปรุงประสิทธิภาพ (#200)
ปรับให้เหมาะสมพร้อมท์เมื่อชนิด ArrayList ไม่สอดคล้องกัน
เมื่อสร้างโมเดล ให้ตั้งค่าเมธอด getter ของฟิลด์ประเภท json เป็นการส่งคืนข้อมูลอ้างอิงเพื่ออำนวยความสะดวกในการแก้ไขข้อมูล
เพิ่มประสิทธิภาพโค้ดบางส่วน
ซ่อมแซม
แก้ไขปัญหาที่การกำหนดค่า @app.overrideDefaultIgnoreNamespace และ @app.overrideDefaultIgnorePaths ไม่มีผล
แก้ไขปัญหาที่ initUri() จะถูกทริกเกอร์เมื่อคำขอดำเนินการ setUri()
แก้ไขปัญหาการแปลงส่วนประกอบการอนุญาตเป็นรูปต้นไม้ (#201)
แก้ไขปัญหาที่ SessionId ถือเป็นเซสชันปกติเมื่อเป็นสตริงว่าง
แก้ไขความล้มเหลวในการแยกวิเคราะห์ SessionJson ที่ว่างเปล่า
แก้ไข SwooleRedisServerUtil
แก้ไข WorkermanUDP ไม่สามารถรับ packetData จากบริบทคำขอได้
แก้ไขปัญหาที่พารามิเตอร์ฟิลด์ที่ระบุของคำอธิบายประกอบ ManyToMany, PolymorphicToMany และ PolymorphicManyToMany ไม่ถูกต้อง