एक चीज $installer
जो मुझे उपयोग करने के बारे में पसंद है जो मैं वास्तव में जोड़ना चाहता हूं वह यह है कि इसे किसी और चीज के साथ बदलना या वर्ग के दायरे से बाहर चलाना आसान बनाता है।
1. इसे प्रतिस्थापित करना:
$installer = $this;
/* @var $installer Mage_Core_Model_Resource_Setup */
// Do basic stuff
$installer = Mage::getSingleton('eav/entity_setup', 'eav_setup');
/* @var $installer Mage_Eav_Model_Entity_Setup */
/// Do stuff with attributes
2. बाहर का दायरा:
$ php -a
php> requirement_once 'app / Mage.php';
php> दाना :: init ();
php> के लिए 'ऐप / कोड / लोकल / वेंडर / मॉड्यूल / डेटा / वेरगर्मोडुले_सेटअप / डेटा-अपग्रेड-0.1.1-0.1.2.php' की आवश्यकता होती है;
अपग्रेड काम किया!
डीबग डेटा डंप: सरणी (4) {
'आईडी' =>
पूर्णांक (123)
'फू' =>
स्ट्रिंग (3) "बार"
}
data-upgrade-0.1.1-0.1.2.php
होने के साथ :
//$installer = $this;
$installer = Mage::getResourceSingleton('core/setup', 'vendormodule_setup');
/* @var $installer Mage_Core_Model_Resource_Setup */
// Do lots of stuff ...
echo "Upgrade worked!\n";
echo "Debug data dump: ";
var_dump($debug);
तो यह रोकता है Fatal error: Using $this when not in object context