# Magento 2 概述
* [架构]()
* [模块]()
* [主题]()
* [关键概念]()
* [商店、网站和商店浏览]()
* [实体-属性-值 (EAV) 数据库模型]()
* [依赖注入(DI)]()
* [服务合同]()
* [结论]()
本文档概述了 Magento 2,这是一个基于 PHP 构建的广泛使用且功能强大的电子商务平台。Magento 2 提供了大量的特性、功能和自定义选项来创建强大且可扩展的在线商店。本指南将向您介绍 Magento 2 的关键组件和概念,为进一步探索Magento2奠定坚实的基础。
## 架构
Magento 2 遵循模块化架构,可提高灵活性和可扩展性。核心功能分为各种模块,可以根据您的在线商店的要求启用或禁用这些模块。此外,可以开发自定义模块来扩展或修改现有功能。让我们看一下关键的架构组件:
### 模块
模块是 Magento 2 的构建块。每个模块都封装了特定的功能,例如目录管理、结账、客户管理等。它们定义了各自领域的结构、行为和可用 API。模块可以依赖于其他模块,从而创建模块化且灵活的系统。您可以开发自己的模块或利用 Magento Marketplace 中的现有模块。
### 主题
主题定义 Magento 2 商店的视觉外观。主题包括各种组件,例如模板、布局、CSS 和 JavaScript 文件。Magento 2 提供了默认主题,但您可以对其进行自定义或创建自己的主题以满足您的品牌和要求。自定义主题可让您为客户创造独特且个性化的购物体验。
## 关键概念
为了有效地使用 Magento 2,理解支持其架构和功能的关键概念至关重要。让我们探讨其中的一些概念:
### 商店、网站和商店浏览
Magento 2 安装可以有多个商店,每个商店代表一个单独的网站或品牌。每个商店可以有多个网站,每个网站可以有多个商店视图。商店视图定义不同的语言、货币和其他本地化设置。这种层次结构允许您通过单个 Magento 2 安装管理多个在线商店。
### 实体-属性-值 (EAV) 数据库模型
Magento 2 采用 EAV 数据库模型来存储和管理各种数据。它通过提供向实体添加属性的动态方式来实现灵活且可扩展的数据存储。例如,产品目录使用 EAV 模型来存储名称、SKU、价格等产品属性。了解 EAV 模型有助于有效查询和操作 Magento 2 中的数据。
### 依赖注入(DI)
Magento 2 广泛利用依赖注入的概念来管理对象依赖关系。依赖注入允许松散耦合、更容易的测试和更好的代码可维护性。Magento 2 中的 DI 机制依赖于 XML 配置文件和构造函数注入。以下是自定义模块中构造函数注入的示例:
```
namespace Vendor\Module\Model;
use Magento\Framework\App\Config\ScopeConfigInterface;
class MyModel{
private $scopeConfig;
public function __construct(ScopeConfigInterface $scopeConfig)
{
$this->scopeConfig = $scopeConfig;
}
// ...
}
```
### 服务合同(接口: Vendor\Module\Api\*)
服务契约定义了一组公开模块功能的 API 接口。它们提供了一种与底层业务逻辑交互的标准化方法,而无需直接访问实现细节。服务合同增强了 Magento 2 的稳定性和兼容性,允许轻松升级和第三方集成。例如,`ProductRepositoryInterface`提供了创建、读取、更新和删除产品的方法。
```
namespace Magento\Catalog\Api;
use Magento\Catalog\Api\Data\ProductInterface;
interface ProductRepositoryInterface {
public function save(ProductInterface $product);
public function getById($id);
// ...
}
```
## 结论
此概述使您可以一睹 Magento 2 的体系结构和关键概念。了解这些组件和概念对于在 Magento 2 平台上构建和自定义在线商店至关重要。您现在可以更深入地研究每个主题并探索 Magento 2 为电子商务开发提供的强大功能。快乐编码!
- 介绍
- 入门
- Magento 2 安装指南
- Magento2版本和更新
- Magento2基础配置
- 常见问题故障排除
- Magento2 架构
- 架构图表
- 框架组成部分概要
- 开发基础知识
- 模块基础
- 服务合同(Api契约)
- 数据接口和模型
- 前端开发
- 主题开发
- Layout,Block,Template
- Magento2的Javascript
- CSS预处理
- 小部件
- UI组件
- Require js
- Knockout js
- 后端开发
- 模块开发
- Magento的数据库访问+ORM
- CLI命令
- 使用Adminhtml
- Events-事件
- Plugin-插件
- Observer-事件观察者
- Webapi - Magento-api
- Cache - 缓存管理
- Log -日志管理
- Search - 搜索模块
- Email Template - 邮件模板
- Indexer - 索引器
- i18n - 国际化翻译
- Cron-计划任务
- API-模块
- 概述
- Restful api
- GraphQL
- 使用和扩展API
- 测试
- 单元测试
- 集成测试
- 功能测试
- 性能测试
- 静态测试
- Js测试
- 测试工具
- 扩展开发-最佳实践
- 安全
- Magento2的安全功能
- 安全开发-最佳实践
- 性能
- 性能优化 - 最佳实践
- 可扩展性-最佳实践
- 部署-开发流程
- 开发工作流程 - 推荐
- CI/CD持续集成
- 服务器设置
- 案例
- 优化SQL查询
- 定制结账流程
- 文件参考
- acl.xml
- cache.xml
- cron_jobs.xml
- cron_groups.xml
- db_schema.xml
- di.xml
- email_templates.xml
- events.xml
- extension_attributes.xml
- fieldset.xml
- indexer.xml
- layout.xml
- menu.xml
- routes.xml
- system.xml
- view.xml
- webapi.xml
- widget.xml