Почему локальные переменные в Magento имеют префикс подчеркивания? - PullRequest
3 голосов
/ 16 октября 2010

Как продолжение до предыдущего вопроса Интересно, кто-нибудь знает, почему все шаблоны Magento объявляют свои переменные с подчеркиванием.Шаблоны - это файлы .phtml include -ed из Mage_Core_Block_Template::fetchView(), их локальные переменные удаляются в конце функции и никогда не становятся глобальными.

Так какой смысл подчеркивать?

Ответы [ 2 ]

3 голосов
/ 18 октября 2010

Здесь нет однозначного ответа, но я считаю, что это просто внутреннее соглашение по написанию кода команды magento.Я уверен, что вы знаете историю префикса подчеркивания *1002* в программировании в целом.Нет ничего сложного в том, чтобы думать, что

локальные переменные, используемые в скрипте представления, которые слабо связаны с объектом, похожи на частные или защищенные переменные

другими словами, подчеркивание служит предупреждением о том, что

эй, содержимое этой переменной не просто принадлежит этому представлению, оно принадлежит чему-то другому

Partпроблема в том, что нет никаких «официальных» рекомендаций от Zend или кого-либо еще, какие соглашения об именах следует использовать в файлах phtml.

3 голосов
/ 17 октября 2010

Я думаю, что это соответствует соглашению об именах ZF:

http://framework.zend.com/manual/en/coding-standard.naming-conventions.html#coding-standard.naming-conventions.variables

Для переменных экземпляра, которые объявлены с модификатором "private" или "protected", первый символимени переменной должно быть одно подчеркивание.Это единственное приемлемое применение подчеркивания в имени переменной.Переменные-члены, объявленные как public, никогда не должны начинаться с подчеркивания.

...