magento 设置全局变量或函数 (Session, Registry 和 Function)

1. Magento: Get and set variables in session

To set a Magento session variable:

Php代码
$myValue = 'Hello World';
Mage::getSingleton('core/session')->setMyValue($myValue);

To Retrieve:

Php代码
$myValue = '';
$myValue=Mage::getSingleton('core/session')->getMyValue();

To Unset:

Php代码
Mage::getSingleton('core/session')->unsMyValue();

或者

Php代码
/* Core Session */ 
Mage::getSingleton('core/session')->setYourVariable('data');
$Data = Mage::getSingleton('core/session')->getYourVariable();

/* Customer Session */ 
Mage::getSingleton('customer/session')->setYourVariable('data');
$Data = Mage::getSingleton('customer/session')->getYourVariable();

/* Admin Session */ 
Mage::getSingleton('admin/session')->setYourVariable('data');
$Data = Mage::getSingleton('admin/session')->getYourVariable();

2. Magento’s Registry Pattern

The three registry methods are

Php代码
Mage::register
Mage::unregister
Mage::registry

The register method is how you set a global-like variable.

Php代码
Mage::register('some_name'$var);

Then, later in the request execution, (from any method), you can fetch your variable back out

Php代码
$my_var = Mage::registry('some_name');

Finally, if you want to make you variable unavailable, you can use the unregister method to remove it from the registry.

Php代码
Mage::unregister('some_name');

更多参考: http://alanstorm.com/magento_registry_singleton_tutorial

3.  Create Global Function In Magento

This code will allow you to add a function that can be called from anywhere within Magento. It extends the helper class

1) Create a file named ‘Mycode.xml’ and copy it to app/etc/modules/ – it should look like this:

Xml代码
<?xml version="1.0"?>
<config>
 <modules>
 <Mycode_Function>
 <active>true</active>
 <codePool>local</codePool>
 </Mycode_Function>
 </modules>
</config>

2) Create the directory app/code/local/Mycode/Function/etc and then create a file named ‘config.xml’ In it copy:

Xml代码
<?xml version="1.0"?>
<config>
 <modules>
 <Mycode_Function>
 <version>1.0.0</version>
 </Mycode_Function>
 </modules>
 <global>
 <helpers>
 <function>
 <class>Mycode_Function_Helper</class>
 </function>
 </helpers> 
 </global>
</config>

3) Create the directory app/code/local/Mycode/Function/Helper and then create a file named ‘Data.php’ In it copy:

Php代码
<?php
class Mycode_Function_Helper_Data extends Mage_Core_Helper_Abstract
{
    public function test(){
    return 'works';
    }
}

You can now call this function like so

Php代码
<?php
     echo Mage::helper('function')->test();
?>

未经允许不得转载:哈勃私语 » magento 设置全局变量或函数 (Session, Registry 和 Function)

本文共2232个字 创建时间:2018年5月16日12:29   

分享到:更多 ()