我有以下代码:
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(array('name', 'price', 'small_image', 'status'), 'inner')
->addCategoryFilter(Mage::getModel('catalog/category')->load($catid));
$_helper = $this->helper('catalog/output');
foreach ($_productCollection as $_product):
echo $_product->getProductUrl();
endforeach
Run Code Online (Sandbox Code Playgroud)
我想学习如何发现我可以在对象上使用的方法.
例如$ _product-> getProductUrl()使用方法getProductUrl()来获取url,但我需要价格并且不知道调用它的方法.使用print_r并没有为我提供足够的信息来发现它们是什么.我认为它们位于MAGE核心的控制器中.我有商业错误,我已经厌倦了看:http://docs.magentocommerce.com/ 但我发现自己有时会丢失.
有没有人知道这方面的好教程还是可以指导我解决这个问题?
Ala*_*orm 22
首先,在模型和块中,任何带有get或者实际上set 可能是从对象的_data数组中拉出的魔法的方法.您可以在此对象中查看所有数据
var_dump($object->getData());
Run Code Online (Sandbox Code Playgroud)
因此,如果此数组具有名为的键some_data,则可以调用名为的方法getSomeData
echo $object->getSomeData();
Run Code Online (Sandbox Code Playgroud)
但请记住,某些方法将具有以和开头的实际方法,因此请始终检查类定义. getset
其次,您可以使用PHP反射函数(或更完整但复杂的PHP反射类API)来查看对象是什么类,然后获取该类的方法列表
首先,使用get_class获取对象类的名称.
$class_name = get_class($object);
Run Code Online (Sandbox Code Playgroud)
然后,传递get_class_methods以获取对象上所有可调用方法的列表
$class_name = get_class($object);
$methods = get_class_methods($class_name);
echo "Methods for class $class_name \n<br />\n";
foreach($methods as $method)
{
var_dump($method);
}
Run Code Online (Sandbox Code Playgroud)
这将为您提供所有类方法的列表.然后,您可以使用Commercebug错误的Class/URI Lookup选项卡快速查看定义类的文件,以查看方法定义.请记住,一些方法将在祖先类中定义.花时间学习IDE或像ctags这样的程序非常值得投资,广告他们会让你快速跳到单个类定义.
| 归档时间: |
|
| 查看次数: |
11265 次 |
| 最近记录: |