คำถามติดแท็ก code-analysis

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 โดยพื้นฐานแล้วคำถามของฉันยังคงเป็น: มาตรฐานนี้บันทึกไว้ที่ไหน และ / …

5
ฉันจะได้รับรายชื่อการเขียนคลาสทั้งหมดได้อย่างไร
มีวิธีแสดงรายการการเขียนซ้ำทั้งหมดและอาจเกิดข้อขัดแย้งอื่น ๆ นอกเหนือจากการตรวจสอบไฟล์การกำหนดค่าทั้งหมดหรือไม่ ฉันต้องวิเคราะห์บางโครงการที่มีส่วนขยายและการแก้ไขที่กำหนดเองจำนวนมากและต้องการทำให้เป็นอัตโนมัติมากที่สุดเท่าที่จะเป็นไปได้ สิ่งที่สำคัญที่สุดคือการตรวจหาส่วนขยายที่เขียนคลาสเดียวกัน แต่ฉันต้องการให้มีรายการของการเขียนทั้งหมดใหม่อีกครั้งเพื่อเก็บภาพรวม ในขณะนี้ฉันเก็บรักษารายการนี้ด้วยตนเองในสเปรดชีต ฉันพบส่วนขยายนี้ ("ส่วนขยายความขัดแย้ง")ใน Magento Connect แต่ตัดสินโดยคำวิจารณ์และบันทึกย่อประจำรุ่นที่ดูเหมือนว่าจะล้าสมัย

2
Magento 2 - แนวปฏิบัติที่ดีในการใช้ / หลีกเลี่ยง Magic getters?
Magic getters on Varien_Object(M1) และDataObject(M2) เป็นเรื่องธรรมดา แต่ด้วย Magento 2 มันรู้สึกผิดที่จะใช้มัน ดี: ง่ายต่อการอ่าน / เขียน ไม่ดี มันทำให้เกิดปัญหาเมื่อใช้ตัวเลขในคีย์ (ดู: วีโอไอพี 2: วิธีที่แตกต่างกันในการรับฟิลด์ของคอลเลกชันหรือรับคุณสมบัติของผลิตภัณฑ์ที่กำหนดเองโดยใช้เคสอูฐ ) เครื่องมือวิเคราะห์รหัสบ่นเกี่ยวกับวิธีการที่ไม่มีอยู่ คำถาม ด้วย Magento 2 เรามีสองวิธีใหม่: getDataByKey($key) getDataByPath($path) มีเหตุผลที่ดีที่จะยังคงใช้getData($key)หรือผู้ได้รับเวทมนตร์? แก้ไข: @Vinai ขอบคุณ ฉันไม่ได้พูดถึง@methodวิธีการเพราะวิธีการของฉันแตกต่างกันมาก มันช่วย IDE เท่านั้น แต่ไม่มีผลกระทบต่อสิ่งอื่น มีการรวม PR หลาย ๆ อันที่เป็น "การปรับให้เหมาะสมที่สุดของไมโคร" อย่างที่ต้องการ(int)แทนintval()หรือรับขนาดของอาเรย์ภายนอกลูป (แม้กระทั่งสำหรับอาเรย์ขนาดเล็ก) ในทางกลับกันมี ผู้ได้รับเวทมนตร์ที่มี "ค่าใช้จ่าย" ตามที่ …

2
สตริง“ # @ +” &“ # @ -” หมายถึงอะไรในความคิดเห็น?
ฉันเห็นสตริง "# @ +" & "# @ -" มากมายในความคิดเห็นของคลาส Magento 2 บางคลาส \Magento\Customer\Api\Data\AttributeMetadataInterface interface AttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface { /**#@+ * Constants used as keys of data array */ const ATTRIBUTE_CODE = 'attribute_code'; ... const IS_SEARCHABLE_IN_GRID = 'is_searchable_in_grid'; /**#@-*/ ... } จุดประสงค์ของเครื่องหมายเหล่านี้คืออะไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.