10 year(s) ago
KRUMO下载地址:http://krumo.sourceforge.net/ Google search gave me some useful results trying to solve my problems. I found Krumo at http://krumo.sourceforge.net/. It’s a PHP debugging tool, replacement for print_r() and var_dump(). After setting up Krumo and running it on Magento it gave me exactly what I wanted. It gave me the object type of the dumped file; in this case it gave me object type of $this. If your using an IDE studio with code completion support like NuSphere PhpED, ZendStudio or NetBeans and you decide to do something like $this-> you won’t get any methods listed. I haven’t yet seen the IDE that can perform this kind of smart logic and figure out the context of $this by it self. What you can do is use the information obtained by krumo::dump($this). In order to use the Krumo at first place, we need to set it up to be used with Magento. After you download the Krumo, unarchive and copy it to some folder inside Magento root folder. I created /developer folder and copied all Krumo files to it. Next you open the krumo.ini file and set the full path to Krumo folder (see the following image). After setting up krumo.ini all you need to do is to include class.krumo.php into any file you wish to use it (see the following image). Performing krumo::dump($this) on /app/design/frontend/default/default/template/catalog/product/view.phtml file will return object type, Mage_Catalog_Block_Product_View. Now if you do Mage_Catalog_Block_Product_View:: your’re IDE supporting code completion will give you a drop down of all the available methods (see the following image), let’s say canEmailToFriend(); Mage_Catalog_Block_Product_View::canEmailToFriend(); Now all you need to do is to replace Mage_Catalog_Block_Product_View with $this like $this->canEmailToFriend(); And your done. All of this may look like “why do I need this“. What you need it a smart IDE, one that can figure out the context of $this by it self and call the methods accordingly. No IDE currently does that, if I’m not missing on something. Krumo debugger tool has few other neat tricks in its sleeves. It can retrieve a list of all the available classes, constants and so on (see the following image). For now I see no better solution to retrieve the object context of $this across all those Magento files. Hope this was helpful for you.