Magento Mage静态类

2011-08-26 11:37:00

Magento的Mage静态类,属于全系统的核心类。里面的方法都很实用。Mage类文件头中有部分初始化包含路径的代码:

define(‘DS’, DIRECTORY_SEPARATOR);
define(‘PS’, PATH_SEPARATOR);
define(‘BP’, dirname(dirname(__FILE__)));

Mage::register(‘original_include_path’, get_include_path());

if (defined(‘COMPILER_INCLUDE_PATH’)) {
$appPath = COMPILER_INCLUDE_PATH;
set_include_path($appPath . PS . Mage::registry(‘original_include_path’));
include_once “Mage_Core_functions.php”;
include_once “Varien_Autoload.php”;
} else {
/**
* Set include path
*/
$paths[] = BP . DS . ‘app’ . DS . ‘code’ . DS . ‘local’;
$paths[] = BP . DS . ‘app’ . DS . ‘code’ . DS . ‘community’;
$paths[] = BP . DS . ‘app’ . DS . ‘code’ . DS . ‘core’;
$paths[] = BP . DS . ‘lib’;

$appPath = implode(PS, $paths);
set_include_path($appPath . PS . Mage::registry(‘original_include_path’));
include_once “Mage/Core/functions.php”;
include_once “Varien/Autoload.php”;
}

Varien_Autoload::register();

很多时候都会迷惑COMPILER_INCLUDE_PATH这个常量是哪里来的,其实这个常量是由magento的默认编译模块Compiler定义的。其他set_include_path的,就只是定义包含路径了而已。

Mage类中属register,unregister,registry,getBaseUrl,getUrl,getModel,getSingleton,getResourceModel,helper.我比较常用,其他的都要看情况了。

Mage::register($key, $value, $graceful = false)
作用:注册变量,这个一般都是传值,比如controller控制器传值到Block,或者Model或者Helper.
参数:$key,键名,随便一个不存在的键名。
$value,键值。既是要保存的值。
$graceful,这个是标志是否要覆盖原有的值,默认是false.如果键名存在,而$graceful又是false,则抛出异常。
Mage::unregister($key)
作用:销毁已经注册的变量值。
参数:$key,键名,任何已经注册了的键名。

Mage::registry($key)
作用:获取注册了的变量。既是获取了已经用Mage::register方法注册了的变量,如没有则返回null,在magento中,如果获取了没有注册的变量,那么可能会出现异常。
参数:$key,键名,任何已经注册了的键名。

Mage::getBaseUrl()
作用:获取网站的根url,也就是url地址。
参数:一般不涉及复杂操作都用默认变量。
Mage::getUrl($route = ”, $params = array())
作用:获取网站的URL路劲,也就是路由。
参数:$route路由名称,类似于cms/index/index/,CMS属于模块名称,该名称由config.xml的frontName标签指定。
$params(),参数,形如index.php?ss=mm的参数。格式为数组

Mage::getModel($modelClass = ”, $arguments = array())
作用:获取数据模型实例对象。
参数:$modelClass 参数形式:’catalog/product’,前面的catalog是模块名,也就是分组的意思,在magento中,block,model,helper的类都是分组的,而product,也就是catalog模块的model文件夹下的product文件。
$arguments 获取该类所需要的参数

Mage::getSingleton($modelClass=”, array $arguments=array())
作用:该方法与getModel取同样的模型,只是该方法会注册变量
参数:与getModel无异。

Mage::getResourceModel($modelClass, $arguments = array())
作用:获取资源模型。一般都会形如catalog/product_collection的,返回数组集合,项目属于Mage::getModel所产生的对象。
参数:与getModel无异。
Mage::helper($name)
作用:获取帮助类对象,一般形如catalog/类名,返回帮助类对象,这个也可以直接用catalog,默认返货helper文件下的data类。
参数:catalog或者catalog/类名

好了,mage静态类中这几个是我经常用到的,其他的在各方面各方面可能用到,这里就不再多说了。

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注