我在谷歌上看了又看,但找不到一个网站来解释 6 个模块子文件夹中的每一个是什么。我通常很擅长在谷歌上找东西,但这个一直没有找到。
有人能解释一下 Magento 模块(块、控制器等、Helper、Model、sql)中每个子文件夹之间的区别吗?
我在谷歌上看了又看,但找不到一个网站来解释 6 个模块子文件夹中的每一个是什么。我通常很擅长在谷歌上找东西,但这个一直没有找到。
有人能解释一下 Magento 模块(块、控制器等、Helper、Model、sql)中每个子文件夹之间的区别吗?
简而言之:
Block负责渲染内容(来自前端、后端、电子邮件等的所有内容)。如果内容正在某个地方显示,则很可能是一个块。
控制器负责处理通过 url 发出的所有请求。如果您点击 url http://www.example.com/catalog/product/view/id/9/您点击了controllers/ProductController.php中的目录模块以及viewAction()方法的内部。如果您在 Magento 中点击 URL,则请求会通过一个或多个控制器。
etc包含模块的任何配置 xml 文件。这些负责从 ACL(访问控制列表)到如何访问块/模型等到系统配置设置的所有内容。一些示例文件:
助手- 这些文件是“助手”。它们包含模块共有的功能或其他模块可以访问的功能。其中一项功能是提供翻译。此外,Data.php 是此处包含的默认帮助程序。如果您有系统配置,则需要 Data.php 才能正确显示系统配置。
模型- 这些是您的数据对象。例如,产品或类别是模型。它们提供数据管理功能。它们与模型文件夹中包含的 Resource 文件夹交互以访问数据库,并与 Collections 交互以获取对象集合。
sql - 这些是您的设置脚本。如果配置正确,则安装模块后,可能需要对数据库进行一些更改:向产品添加表、属性或自定义配置。
我建议看看http://alanstorm.com/category/magento
他有许多示例、教程和其他好的技巧,是一个更完整的起点。
了解每个功能的最佳方法是查看核心模块。
Helpers - Magento 的 Helper 类包含实用方法,允许您对对象和变量执行常见任务。例如:$helper = Mage::helper('catalog')
Blocks - 每个 Block 对象将呈现特定的 HTML 位。块对象通过 PHP 代码的组合实现这一点,包括 PHP .phtml 模板文件。Blocks 对象旨在与 Magento 系统交互以从模型中检索数据,而 phtml 模板文件将生成页面所需的 HTML
控制器- 在任何 PHP 系统中,主要的 PHP 入口点仍然是一个 PHP 文件。Magento 也不例外,该文件是 index.php。
Magento 模型- Magento 与当今的大多数框架一样,提供对象关系映射 (ORM) 系统。ORM 让您摆脱编写 SQL 的工作,并允许您纯粹通过 PHP 代码(和其他核心业务逻辑)来操作数据存储
等- 这是您放置配置文件(config.xml、system.xml 和/或 adminhtml.xml)的位置,以告诉 magento 您的模块可以访问什么以及有关您的自定义模块的其他配置(参见示例)
sql - 这是您放置设置脚本的位置(例如,将新表添加到您的 magento db)