php 开发指南
文档: https://developer.adobe.com/commerce/php/development/
此文档面向开发者,教你怎么开发 magento。与之相关的有开发者操作指南,后者偏向于教你如何搭建 magento 系统、配置系统、运维。
简介
Adobe Commerce 和 Magento 开源应用程序由模块、主题和语言包组成:
开发者 roadmap
- Declare component dependencies 在
composer.json
中声明组件依赖关系 - Register 使用
registration.php
文件注册组件。 - 使用这些特定于组件的 XML 定义文件:
- 模块:
module.xml
- 主题:
theme.xml
- 语言包:
language.xml
- 模块:
- 分发组件:
- Package your component 以
.zip
格式打包您的组件。 - 如果您将组件上传到 Commerce Marketplace,则其大小应小于 30MB。
- Package your component 以
di config 依赖注入配置
应用程序分以下阶段加载配置:
- 初始 (
app/etc/di.xml
) - 全局 (
<moduleDir>/etc/di.xml
) - 特定区域 (
<moduleDir>/etc/<area>/di.xml
)
area 包括:
- adminhtml
- frontend
- graphql
- webapi_rest
- webapi_soap
- crontab
在引导期间,每个应用程序入口点都会为请求的区域加载适当的 di.xml
文件。
虚拟类型
这个配置文件,创建了一个名为 moduleConfig
的类,该类是 Magento\Core\Model\Config
的一个特定类型,即 type=system
。然后把 Magento\Core\Model\App
的 config
参数配置为了 moduleConfig
类。
其中的 <type>
可以把特定参数传到构造函数中。具体支持:
object
string
boolean
number
init_parameter
const
null
array
示例:
集成配置
Magento\Backend\Block\Context
是 Magento\Framework\View\Element\Context
的子类,其中的配置 Magento\Backend\Model\Url
优先级更高,会覆盖父类中的配置。
优化开发环境
- 使用最新的 PHP 8 版本:建议安装并使用最新受支持的 PHP 8 版本以提高性能。
- 使用 Percona 替代 MySQL 数据库:将 MySQL 数据库替换为 Percona 以获得更好的性能。
- 启用 PHP Opcache:确保安装并启用 PHP Opcache。
- 谨慎使用 Xdebug:Xdebug 默认关闭。仅在需要时启用此功能,因为它需要大量内存并会降低性能。对于 Magento,将 xdebug.max_nesting_level 配置设置为 200 或更高。同时,增加 PHP 可用的内存以提高 Xdebug 性能。
- 安装示例数据:如果需要示例数据,可以使用 Composer 或克隆存储库来安装。
- 关闭 CSS 和 JavaScript 的合并:为加快前端开发速度,关闭 CSS 和 JavaScript 的合并。
- 开启缓存:确保缓存已打开(这是默认行为)。一般来说,开发时只应关闭页缓存和块缓存,测试时应重新打开。
- 开启 Opcache 时间戳验证:在开发中,Opcache 时间戳验证应始终开启。因为在开启 Opcache 并关闭重新验证的情况下进行开发是不可能的,任何 PHP 修改都需要重置缓存。
以下章节需要整理: