@ raphael-at-digital-pianism ขอให้ฉันโพสต์รายการสิ่งที่ฉันคิดว่าผิดกับ XML UI ของ adminhtml grid UI ดังนั้นต่อไปนี้:
เกิดอะไรขึ้นกับส่วนประกอบ XML ของ adminhtml grid UI
- รอบข้อเสนอแนะช้าในระหว่างการพัฒนา
- ยากที่จะเข้าใจ
- ยากที่จะทำการดีบั๊กหากมีข้อผิดพลาด (ส่วนใหญ่จะเปรียบเทียบกับ XML ในคอร์)
- เปิดเผยรายละเอียดการใช้งานมาก
- ส่งเสริมการคัดลอกและวาง
- XML ไม่ได้มีไว้สำหรับมนุษย์ที่จะอ่านและเขียน
- ยากที่จะทดสอบ
- ไม่ชัดเจนว่ามีตัวเลือกอื่นใดบ้าง
- มากมายสำเร็จรูปและเวทมนตร์ (ที่เลวร้ายที่สุดของโลกทั้งสอง)
- ควบคู่ไปกับแนวคิดในการแสดงข้อมูลตารางฐานข้อมูล
- สตริงชื่อที่ซ้ำกันจำนวนมากในไฟล์
"คิดหาทางออกที่ดีกว่า"
ฉันก็ยังไม่ได้ แต่นี่เป็นความคิดคร่าวๆว่าฉันในฐานะนักพัฒนาจะต้องการสร้างกริดและรูปแบบ adminhtml ได้อย่างไร
- สร้างการนำไปปฏิบัติ
GridDataSourceInterface
- ส่วนประกอบกริดใช้
GridDataSourceInterface::getGridItemType()
วิธีการดึงชื่อคลาสหรือชื่ออินเตอร์เฟส
- อินเทอร์เฟซถูกสะท้อนและ getters ทั้งหมดถูกใช้เพื่อกำหนดคอลัมน์ที่เป็นไปได้
- ชนิดคอลัมน์ถูกอนุมานจากชนิดส่งคืน
- ประเภทที่ไม่สามารถอนุมานได้โดยอัตโนมัติเนื่องจากประเภทคอลัมน์ที่ถูกต้องจะถูกละเว้น
GridDataSourceInterface
เช่นการดำเนินการสามารถใช้ในการมองเห็นและการกำหนดค่าคอลัมน์ไม่ใช่ค่าเริ่มต้นประเภทโดยใช้วิธีการสื่อความหมายที่ดีที่จำเป็น
ประโยชน์ที่ได้รับ:
- IDE ช่วยนิยามของกริด (และแบบฟอร์ม) ผ่านวิธีการเติมข้อความอัตโนมัติ
- ค่าเริ่มต้นที่เหมาะสม
- การดำเนินการไม่เชื่อเรื่องพระเจ้า
- สำหรับเอนทิตีอย่างง่ายจะต้องเขียนโค้ดเพียงเล็กน้อยเท่านั้น
- เปรียบเทียบกับวิธี XML แล้วไม่มีการสูญเสียคุณสมบัติ
- ความสามารถในการขยายผ่านตัวรับ
- ถ้าคลาสอินเทอร์เฟซเสร็จสิ้นการกำหนดกริดและแบบฟอร์มสามารถเป็นเพียงการประกาศเป็น XML (แต่ง่ายกว่ามาก)
- ตรงกับ "วิธีคิด" ของวีโอไอพีสำหรับชั้นสัญญาบริการ
- ไม่มีการเปลี่ยนแปลงการโต้ตอบปัจจุบันกับรหัสส่วนหน้า (ทราฟฟิกข้ามเส้นลวดเดียวกัน)
- การเรียงลำดับคอลัมน์ส่วนหน้าและการกำหนดค่าสามารถทำงานต่อไปได้เหมือนเดิม
- ไม่มี MOAR XML
เกี่ยวกับคำถามเดิมฉันไม่คิดว่าการใช้รูปแบบ Magento 1 แบบเก่าบล็อกเพื่อสร้างส่วนต่อประสาน adminhtml เป็นสิ่งที่ถูกต้อง
ฉันแค่สนับสนุนการประกาศกริดแบบ XML ใหม่ควรจะถูกแทนที่ด้วยสิ่งที่ดีกว่าโดยเร็วที่สุด