php - Magento如何创建动态功能?

标签 php magento

谁能告诉我Magento如何创建动态函数?例如对于产品信息,我们称:

$product = Mage::getModel('catalog/product')->load(29);


$product->getData()以数组格式返回所有数据。但是我们可以从各个函数中获取相同的信息,例如:

$product->getSkuId()
$product->getProdId()
$product->getName()


谁能告诉我Magento如何创建这些动态功能?

最佳答案

Magento正在使用__call魔术方法。当您尝试调用该类中实际上不存在的方法并且如果您在类中定义了__call方法时,将调用__call方法,Magento会使用实际请求的方法的名称并调用另一个方法处理该请求以为您获取特定物品的请求。

编辑

所有Model类都是从Varien_Object类继承的,请参见diagram,并且__get__set__call之类的魔术方法在Varien_Object类中定义,并将由以下类使用。由Varien_Object类继承。您可以在/magento_installation_diretctory/lib/Varien/Object.php中找到此类。

查看Varien_Object类的源代码。

关于php - Magento如何创建动态功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180734/

相关文章:

magento - 难以禁用 magento 扩展

magento - 如何在magento中编辑标签url?

mysql - 使用magento从我的mysql查询中的表中仅获取一列的问题

php - 如何从搜索中获取第一个 YouTube 视频的 URL?

php - 如何使用特定于最后一行的条件回显循环中的特定数据

php - 无法修改 header 信息 - header 已发送(混淆)

Magento 2 如何根据条件禁用类别属性?

php - 当我使用 php 和 html 时,每个单元格都可以编辑吗?

php - PDO PHP bindParam() 重复使用相同的参数

web - Magento:设置刚刚创建的网站的配置值?