Что означает "::` в php magento?
В приведенном ниже коде что означает или делает оператор ::
?
<?php $_helper = Mage::helper('catalog/category') ?>
Также, что именно делает helper
?
2 answers
В терминах PHP ::
является оператором разрешения области . Используется для доступа к статическим элементам класса.
В Magento, Mage::helper()
, здесь helper()
- СТАТИЧЕСКАЯ функция, указанная в файле Mage.php
, например public static function helper($name)
.
Из вашего примера, Mage::helper('catalog/category')
, это вернет объект помощника Mage_Catalog_Helper_Category
. Проверьте эту строку в определении функции helper
, $helperClass = self::getConfig()->getHelperClassName($name);
В PHP, :: specify scope resolution operator,
Его собственные функции php для getting static function,variable
из файла php.
Mage::helper() means static helper function is defined inside `app/Mage.php file`.
Сначала получите вспомогательную функцию из Mage.php
файл,
public static function helper($name)
{
$registryKey = '_helper/' . $name;
if (!self::registry($registryKey)) {
$helperClass = self::getConfig()->getHelperClassName($name);
self::register($registryKey, new $helperClass);
}
return self::registry($registryKey);
}
Вспомогательная функция вызывается первой из файла mage.php
, когда вы можете использовать любого помощника в модуле. Они определяют полный путь к модулю для доступа к нему.
Вы можете получить дополнительную информацию об этом, используя ссылку, Оператор разрешения области действия
$_helper = Mage::helper('catalog/category')
Теперь $_helper переменная получает доступ ко всем функциям Mage_Catalog_Helper_Category.php
файла
Если вы хотите извлечь функции getStoreCategories()
из вышеуказанного файла,
вы можете просто вызвать $_helper->getStoreCategories(false,false,true)
и вернуть объект категории хранилища.