关于Magento编程的基本问题

时间:2010-12-07 05:32:58

标签: php oop api magento

我在Magento中找到了很多代码片段,例如

$variable_name = Mage::app()->function_name();

这是一个例子

$websites = Mage::app()->getWebsites(true, true);

这个函数调用什么(调用?)呢?语法不熟悉,我需要一些基本的解释,以便我可以更好地跟踪代码。

4 个答案:

答案 0 :(得分:3)

为自己设置一个像Eclipse with PDT这样的好IDE。它的代码完成工具是天赐之物。

例如,当您键入 M A 时,它会自动将其完成Mage::并提供静态函数列表,包括app()。在那之后类型 - > G E T W 并且它会显示另一个函数列表,getWebsites()将在您键入时被选中,突出显示时将解释所需的参数和概述(从PHPDoc收集),以解释它的作用。

如果你有这样的工具,你永远不会问“实际上这个函数调用了什么?”在网站上。

答案 1 :(得分:3)

这实际上是两个单独的方法调用。

$result = Mage::app()->getWebsites();

第一个是

$o = Mage::app();

这是在“班级法师”上调用static method app,可以在

中找到
app/Mage.php

::运算符调用静态类方法。如果你不明白这意味着什么,那就想想“左边的类,右边的方法,你不能在方法中使用$ this变量”。

因此,此方法调用返回一个对象,该对象几乎肯定是Mage_Core_Model_App,位于

app/code/core/Mage/Core/Model/App.php

因此上面的一个班轮可以改写为

$o = Mage::app();
$result = $o->getWebsites();

希望有助于揭开神秘面纱的神秘面纱。

答案 2 :(得分:1)

您可能会看到的一件事是zend框架中的“魔术吸气剂和制定者”。我知道它让我有点困惑。在zend框架中,你可以调用gets和sets,而不需要在任何地方定义和实际的函数,如果没有函数定义那么它只是附加你调用set的对象的任何东西。

答案 3 :(得分:0)

您正在设置一个变量来包含函数返回的内容。要查看此方法确切返回的内容,您必须转储值或检查方法。通过它的外观,它将设置包含网站对象的值,以后可以通过此变量进行迭代或访问