Основной вопрос о Magento Programming - PullRequest
0 голосов
/ 07 декабря 2010

Я нашел много фрагментов кода в Magento, таких как

$variable_name = Mage::app()->function_name();

вот пример

$websites = Mage::app()->getWebsites(true, true);

Что делает этот вызов функции (вызовы?)? Синтаксис незнаком, и мне нужно несколько базовых объяснений, чтобы лучше отслеживать код

Ответы [ 4 ]

3 голосов
/ 07 декабря 2010

На самом деле это два отдельных вызова метода.

$result = Mage::app()->getWebsites();

Первый -

$o = Mage::app();

Это вызов static method app для "класса Mage", который можно найти в

app/Mage.php

Оператор :: вызывает методы статического класса.Если вы не понимаете, что это значит, просто подумайте «класс слева, метод справа, и вы не можете использовать переменную $ this внутри метода».

Итак, этот вызов метода возвращаетобъект, который почти наверняка будет Mage_Core_Model_App, который находится в

app/code/core/Mage/Core/Model/App.php

Таким образом, один вкладыш выше может быть переписан как

$o = Mage::app();
$result = $o->getWebsites();

Надежда, которая помогает немного демистифицировать,

3 голосов
/ 07 декабря 2010

Получите себе хорошую IDE, например Eclipse с PDT . Это инструменты завершения кода - находка.

Например, когда вы набираете M A , он автоматически завершает его до Mage:: и предоставляет список статических функций, включая app(). После этого наберите - > G E T W , и появится другое список функций, getWebsites() будет выбран при вводе, а когда выделено, объяснит, какие параметры требуются, и обзор (собранный из PHPDoc), который объясняет, что он делает.

Если бы у вас были такие инструменты, вы бы никогда не спросили: "Что на самом деле делает этот вызов функции?" на сайтах.

1 голос
/ 07 декабря 2010

Одна вещь, которую вы можете увидеть, это "магические геттеры и сеттеры" в среде Zend.Я знаю, что это немного смутило меня.В Zend Framework вы можете вызывать get и set без определения и фактической функции, где-либо определенной, если нет определения функции, то она просто присоединяет все, что вы присваиваете объекту, вызывающему набор.

0 голосов
/ 07 декабря 2010

Вы устанавливаете переменную, которая будет содержать все, что возвращает функция. Чтобы увидеть, что именно возвращает этот метод, вы должны сбросить значение или проверить метод. Судя по всему, он установит значение, которое будет содержать объект веб-сайтов, который впоследствии может быть повторен или доступен этой переменной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...