Questions tagged «code-analysis»

2
为什么Magento ECG编码标准中不允许这么多的PHP函数?
Magento ECG编码标准似乎(至少是某种形式)是Magento 1扩展的标准: https://github.com/magento-ecg/coding-standard 但是我不理解所有规则背后的原因,仅代码嗅探器规则和它们的消息并没有多大帮助。是否有关于该标准的详细文档?我知道常见的最佳做法和开发人员指南,但找不到有关这些编码标准的任何具体信息。 最让我困扰的是不使用PHP函数的严格性。 例如:为什么每个与文件系统相关的PHP函数都被禁止? 我想,你应该使用Varien_Io_File,Varien_File_Object等等。但即使是核心开发人员不知道所有的瓦瑞恩类的,你经常会发现类似的事情在Mage_ImportExport_Model_Import_Adapter_Csv: $this->_fileHandler = fopen($this->_source, 'r'); 因此,核心并非经常是最好的例子。 其他恕我直言的可疑禁用功能: 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 本质上,我的问题可以归结为:该标准记录在哪里?和/或是否存在“代替这些本机PHP函数使用的东西”的列表?

5
如何获得所有类重写的列表?
除了查看所有配置文件之外,是否有办法列出所有重写以及其他潜在冲突?我必须分析一些具有大量扩展和自定义修改的项目,并希望尽可能地自动化。 最重要的是要检测重写同一类的扩展,但是我也想保留所有重写的列表,以保持概述。目前,我在电子表格中手动维护此列表。 我在Magento Connect上找到了这个扩展名(“扩展名冲突”),但从评论和发行说明来看,它似乎已经过时了。

2
Magento 2-使用/避免使用吸气剂的良好实践?
Varien_Object(M1)和DataObject(M2)上的魔术吸气剂是常见的做法,但是使用Magento 2时,使用它会感到错误。 好: 容易读/写 坏 在键中使用数字时会引起问题(请参阅:Magento 2:使用驼峰式大小写的不同方式获取集合的字段或获取自定义产品属性) 代码分析工具抱怨不存在的方法 题 使用Magento 2,我们有两种新方法: getDataByKey($key) getDataByPath($path) 是否有充分的理由继续使用getData($key)或使用任何吸气剂? 编辑: @Vinai谢谢。我没有提及该@method方法,因为我的方法大不相同。 它仅对IDE有帮助,对其他方面没有影响。 有几个mergedf PR是“微优化”的,例如在循环外(甚至对于小型阵列)强制转换为数组大小或(int)替代intval()数组大小。 另一方面,有 神奇的吸气剂,正如马吕斯(Marius)所说的那样有些“开销”。 strtolower(trim(preg_replace('/([A-Z]|[0-9]+)/', "_$1", $name), '_')); getData($key) Mehtods还必须额外进行2-3次检查... if ('' === $key) { if (strpos($key, '/')) { if ($index !== null) { 对于自己的代码,完全同意倾向于使用实际方法,但是在相同情况下,这是不可能的...例如,您创建了一个自定义事件... $value = $observer->getVar_1(); $value = $observer->getData('var_1'); $value = …

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'; /**#@-*/ ... } 这些标记的目的是什么?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.