คำถามติดแท็ก magento-ecg

2
ทำไมฟังก์ชั่น PHP มากมายจึงไม่อนุญาตใน Magento ECG Coding Standard?
มาตรฐานการเข้ารหัส ECG ของ Magento ดูเหมือนจะเป็นทางการ (อย่างน้อยก็) เป็นมาตรฐานสำหรับ Magento 1 ส่วนขยาย: https://github.com/magento-ecg/coding-standard แต่ฉันไม่เข้าใจเหตุผลที่อยู่เบื้องหลังกฎทั้งหมดและการดมกลิ่นรหัสด้วยข้อความของพวกเขาเพียงอย่างเดียวไม่ได้ช่วยอะไรมาก มีเอกสารรายละเอียดเกี่ยวกับมาตรฐานหรือไม่ ฉันรู้วิธีปฏิบัติที่ดีที่สุดทั่วไปและคู่มือนักพัฒนาแต่ไม่พบสิ่งใดที่เฉพาะเจาะจงเกี่ยวกับมาตรฐานการเข้ารหัส สิ่งที่ฉันกังวลมากที่สุดคือความเข้มงวดในการไม่ใช้ฟังก์ชั่น PHP ตัวอย่างเช่น: ทำไมทุกระบบไฟล์ที่เกี่ยวข้องกับฟังก์ชั่น PHP ต้องห้าม ? ผมคิดว่าคุณควรจะใช้Varien_Io_File, Varien_File_Objectฯลฯ แต่แม้นักพัฒนาหลักไม่ได้ตระหนักถึงทุกชั้นเรียน Varien และคุณมักจะพบสิ่งที่ต้องการในMage_ImportExport_Model_Import_Adapter_Csv: $this->_fileHandler = fopen($this->_source, 'r'); ดังนั้นแกนกลางไม่ใช่ตัวอย่างที่ดีที่สุดเช่นเคย ฟังก์ชันที่ต้องห้าม IMHO อื่น ๆ ที่น่าสงสัย: mb_parse_str parse_str parse_url base64_decode ใช่มันถูกใช้ในแบ็คดอร์ แต่การแบนevalควรเพียงพอและมีกรณีการใช้งานที่ถูกต้องเช่นการเข้ารหัสข้อมูลไบนารี่ และนอกเหนือจากjson_decode(ซึ่งไม่ได้รับอนุญาต) ไม่มีผู้ช่วยหลักสำหรับสิ่งนี้ ที่มา: https://github.com/magento-ecg/coding-standard/blob/master/Sniffs/Security/ForbiddenFunctionSniff.php โดยพื้นฐานแล้วคำถามของฉันยังคงเป็น: มาตรฐานนี้บันทึกไว้ที่ไหน และ / …

3
การปฏิบัติตาม ECG: จะทำอย่างไร?
มีบางอย่างเช่นcoding standardสำหรับMagento 1 ที่เรียกว่าECGควรหลีกเลี่ยงสิ่งต่าง ๆ มากมายหรือวิธีการที่ไม่ควรใช้ ลองสร้างรายการที่ครอบคลุมทุกกรณีที่มีการโยน "ข้อผิดพลาด" หรือ "คำเตือน" ในรหัสของคุณ ด้านล่างคุณจะพบรายการพร้อมคำเตือนที่เป็นไปได้ทั้งหมด ฉันจะอัปเดตโพสต์นี้เป็นระยะและเชื่อมโยงไปยังคำตอบที่ได้รับและ upvoted หมายเหตุ:โปรดพยายามหลีกเลี่ยงคำตอบที่ซ้ำกัน;) ดาวน์โหลด: https://github.com/magento-ecg/coding-standard คลื่นไฟฟ้าหัวใจ Sniffs การเรียนการสอน Mysql4 คลาส Mysql4 ล้าสมัยแล้ว วิธีจัดการคลาส“ Mysql4” ที่เลิกใช้แล้วเมื่อเขียนโมเดลทรัพยากรใหม่ โมดูล Magento 1.9 ผิดปกติเมื่อเปลี่ยนโฟลเดอร์ทรัพยากรจาก Mysql4 เป็น Resource การเริ่มต้นวัตถุ การทำให้อินสแตนซ์ของวัตถุโดยตรง (คลาส% s) ไม่ได้รับการสนับสนุนใน Magento protected $disallowedClassPrefixes = array( 'Mage_', 'Enterprise_', ); ... PHP ไปที่ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.