Mageton 单例模式,工厂模式,观察者模式

概念不细说了,这边记录用Magento单例模式:例如Mage::app(),Mage::getSingleton('catalog/product')

magento工厂模式:一般在xml配置。

magento观察者模式:事件监听,event。如果找到改事件呢?比如Mage::getSingleton('catalog/product')->load(1),会执行哪些事件呢?

在mage.php文件里面

 

    public static function dispatchEvent($name, array $data = array())
    {
        Varien_Profiler::start('DISPATCH EVENT:'.$name);
        Mage::log($name,null,'event.log',true);
        $result = self::app()->dispatchEvent($name, $data);
        Varien_Profiler::stop('DISPATCH EVENT:'.$name);
        return $result;
    }

 

然后就可以在event.log查看改事件

print_r(array_keys($observer->getEvent()->toArray()));  来获取事件名

 

magento层层调用对象,如何查看当前对象呢?比如:$category=Mage::getModel('catalog/category');

var_dump(get_class($category)); 即可

查看collection中的sql$collection=Mage::getModel('catalog/category')->getCollection();

echo $collection->getSelect();exit();

 

后台页面,前台页面 开启路径提示 就可以看到block。

 

你可能感兴趣的:(观察者模式)