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。

时间: 2024-10-03 22:29:15

Mageton 单例模式,工厂模式,观察者模式的相关文章

php基础---单例模式&&工厂模式

//PHP设计模式 //工厂模式:工厂类 用于创建对象 interface Dongwu { function say(); } class Mao implements Dongwu { public function say() { echo "喵喵!我是一只小野猫!"; } } //工厂类,用来创建猫类 class GongChang { public static function GetObj($className) { return new $className(); }

单例模式工厂模式

单例模式 单例模式的目的就是为了控制特定的类只产生一个对象. 产生单例的步骤: 1.构造方法私有化(在构造方法前面加prevate static finall)为的是不让其他类创建该类的实例化对象. 2.在类中自己创建自己的实例化对象. 3.写一个方法,返回该实例化对象. 4.在该类中还可以写其他的方法. 具体的代码如下: public class Danli { // 构造方法私有化,让其他类调用不到 private Danli() { } // 在类中自己创建自己的实例化对象, privat

PHP 设计模式 单例模式 工厂模式 注册模式

1.工厂模式,工厂方法或者类生成对象,而不是在代码中直接new 2.单例模式,使某个类的对象仅允许创建一个 3.注册模式,全局共享和交换对象 项目文件目录 入口文件 index.php 1 <?php 2 /** 3 * Created by PhpStorm. 4 * Author: Administrator 5 * Date: 14-11-22 6 * Time: 下午3:42 7 */ 8 9 define('BASEDIR',__DIR__); 10 include BASEDIR.'

常见的设计模式:单例模式、工厂模式、观察者模式、装饰模式与适配器模式

常见的设计模式:单例模式.工厂模式.观察者模式.装饰模式与适配器模式 这里可以阅读Terry Lee的设计模式系列来理解学习一下 1.4.1 单例模式 .NET设计模式(2):单件模式(Singleton Pattern)  http://terrylee.cnblogs.com/archive/2005/12/09/293509.html 1.4.2 抽象工厂模式 .NET设计模式(3):抽象工厂模式(Abstract Factory) http://terrylee.cnblogs.com/

PHP模式设计之单例模式、工厂模式、注册树模式、适配器模式、观察者模式

php模式设计之单例模式 什么是单例模式? 单例模式是指在整个应用中只有一个实例对象的设计模式 为什么要用单例模式? php经常要链接数据库,如果在一个项目中频繁建立连接数据库,会造成服务器资源的很大浪费,在团队合作项目中,也能够避免不同的程序员实例自己的对象,造成人为的系统消耗. 单例模式的三大原则 1.构造函数需要标记为非public(防止外部使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化 2.拥有一个保存类的实例的静态成员变量$_instance 3.拥有一个可

单例模式和工厂模式(百度文库)

模式中的单例模式分为:饿汉模式和懒汉模式. 顾名思义: 饿汉模式是对食物(Singleton)比较渴望的,所有一开始就new了一个来满足(食欲) 饿汉式: public class Singleton{   private static Singleton singleton = new Singleton ();   private Singleton (){}   public static  Singleton getInstance(){return singletion;}   } 饿

php面向对象单例模式、工厂模式及6大原则

一.单例模式目的:为了控制对象的数量(只能够有一个,相当于类的计划生育)做法1.将类的构造函数做成私有的2.在类里面做了一个公有的函数来造对象3.将该函数变为静态的4.在函数里面加控制 class Ren { public $name; static public $dx; //静态成员变量用来存储该对象 private function __construct() //把构造函数设置为私有,类的外部就不能用new造对象了 { } static function DuiXiang() //做一个

php单例模式与工厂模式

单例模式:单例模式又称为职责模式,它用来在程序中创建一个单一功能的访问点,通俗地说就是实例化出来的对象是唯一的. 所有的单例模式至少拥有以下三种公共元素:1. 它们必须拥有一个构造函数,并且必须被标记为private2. 它们拥有一个保存类的实例的静态成员变量3. 它们拥有一个访问这个实例的公共的静态方法 代码: <?php class ren { public $name; private static $dx;//存储对象 //声明一个私有的实例变量 private function __c

PHP 设计模式 笔记与总结(6)基础设计模式:工厂模式、单例模式和注册树模式

三种基础设计模式(所有面向对象设计模式中最常见的三种): ① 工厂模式:使用工厂方法或者类生成对象,而不是在代码中直接new 在 Common 目录下新建 Factory.php: <?php namespace Common; class Factory{ static function createDatabase(){ //$db = new \Common\Database; $db = new Database; return $db; } } index.php: <?php de