Magento2编码标准

遵循编码标准可确保所有开发人员均根据指定的准则编写代码。 这使代码易于理解,并提供了代码的一致性。 简而言之,我们需要根据标准编码,以提高代码可读性,可维护性和可扩展性;提高代码质量;编写安全代码。

Magento

先决条件
在开发模式下编码,并打开PHP错误报错和错误日志。
命名空间和模块名称
对于我们开发的新模块,名称空间应始终为XXX。
模块名应尽量短,并使用大驼峰式命名法(首字母大写)。
例如:
我们需要新增一个功能,用于展示销量最高的商品,则命名空间为Qianrui,模块名为BestSales。
对于比较小的功能修改,如产品页标题加前缀或者后缀,则命令空间为Qianrui,模块名同Magento的模块名,即:Catalog。
目录结构应该是:
app/code/Qianrui/BestSales
app/code/Qianrui/Catalog
管理菜单
如果自定义模块需要系统设置或用于管理项目的菜单(CRUD),则应在“扩展”下创建相关菜单项(如下所示):
在这里插入图片描述
系统配置
自定义模块的系统配置应位于对应的选项卡下,如下所示:
在这里插入图片描述

设置中至少应包含两个字段:
●Enabled = Yes/No (是否启用模块)
●Debug Mode = Yes/No(是否启用Debug模式)
其他重要注意事项
●配置项需要提供默认值。如果etc/config.xml无法做到,则使用setup脚本。
●菜单和系统配置通过ACL做权限控制。
●菜单和Tab由XXX_Core模块提供。


数据库

如果自定义模块需要更改数据库结构,请遵循此指南。

●自定义模块引入的表应以模块名称作为前缀;如模块名过长,可改用适当的缩略名,但应保持一致(即不应该有的表用全名,有的表用缩略名)。
●表名应小写,下划线分隔和单数(即使用user,而不是users)。
例如:对于模块Qianrui_Slider,它将是:qr_slider。(Qianrui统一简写为qr)
字段
●表字段名称应使用小写字母和下划线分隔。
●新表的PK应该是entity_id(首选)
●自定义表至少应具有以下字段(如果适用):
○entity_id[PK]
○…
○status
○created_at
○updated_at
●如果需要在现有核心表中引入新字段,则需要以XXX_作为前缀。如:qr_
例如:sales_order_address.qr_is_mobile_verified 这可以帮助我们通过直接查看表结构来确定我们进行了哪些更改。而且,它避免了与第三方模块的冲突。
属性
Magento数据库基于EAV(实体属性值)架构,特别是对于实体:类别,产品,客户和客户地址。 如果您需要为上述任何一个实体创建属性,请遵循以下准则:
●始终通过setup脚本创建属性(而不是通过后端创建)
●在属性名称前添加XXX_,如:qr_seller_id
最后,如果需要在任何表中填充数据,请始终使用setup脚本,切勿使用任何直接的SQL更新。


第三方模块(插件)

除非我们没有其他选择,否则强烈建议不要使用第三方模块。
自定义
如果需要自定义第三方模块,则应创建一个具有命名空间XXX且具有与第三方模块相同模块名的自定义模块。
例如,为了自定义第三方模块Magefan_Blog,我们应该将自定义模块创建为:Qianrui_Blog。
为了日后升级,强烈建议不要直接编辑第三方模块。


扩展核心或第三方模块

除了创建全新模块开发新功能以外,我们也可以通过扩展核心模块,第三方模块的方法,来开发新功能,或修改旧功能。
最佳做法
●不要直接使用对象管理器(Object Manager)。请改用构造函数依赖项注入(DI)。
●如果您需要覆写/扩展核心模块和第三方模块,请首先使用Plugin方法
●如果Plugin不适用,请使用Event方法。
●仅在Plugin和Event均不适合的情况下,才使用Preference。
●尽可能编写单元测试
●不同模块应自定义不同的Logger,将日志写到不同文件;而不是统统采用系统默认的Logger,全部写到system.log。
●提供本地化支持,所有文本/消息均应使用函数__()。
为了日后升级,强烈建议不要直接编辑核心代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liguojia1987

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值