Стандарты оформления кода и размещение файлов
Отступы
В качество отступа используется один символ табуляции.
/**
* Allowed object properties
* @var array
*/
protected $_allowedProperties = array(
'count',
'siteuser'
);
Переменные
Запись типа переменной в ее идентификаторе (венгерская нотация), регистр символов lowerCamelCase.
// Определяем коэффициент пересчета
$fCurrencyCoefficient = $oShop_Item->Shop_Currency->id > 0 && $oShop->Shop_Currency->id > 0
? Shop_Controller::instance()->getCurrencyCoefficientInShopCurrency(
$oShop_Item->Shop_Currency, $oShop->Shop_Currency
)
: 0;
Классы
Имя начинается с названия модуля и соответствует фактическому расположению файла в файловой системе, в качестве разделителя используется андерскор «_».
/**
* Online shop.
*
* @package HostCMS 6\Shop
* @version 7.x
* @author Hostmake LLC
* @copyright © 2005-2022 ООО "Хостмэйк" (Hostmake LLC), https://www.hostcms.ru
*/
class Shop_Item_Controller extends Core_Servant_Properties
{
}
Функций и методы
Регистр символов lowerCamelCase, в именах аргументов не используется венгерская нотация. Имена protected и private методов начинаются с андерскор «_». Функции и методы вызываются без отступа между именем и открывающейся скобкой.
class Shop_Item_Controller extends Core_Servant_Properties
{
/**
* Allowed object properties
* @var array
*/
protected $_allowedProperties = array(
'count',
'siteuser'
);
/**
* Price array
* @var array
*/
protected $_aPrice = array();
/**
* Calculate the cost with tax and discounts
* @param float $price price
* @param Shop_Item_Model $oShop_Item item
* @param boolean $bRound round prices
* @return array
* @hostcms-event Shop_Item_Controller.onBeforeCalculatePrice
* @hostcms-event Shop_Item_Controller.onAfterCalculatePrice
*/
public function calculatePrice($price, Shop_Item_Model $oShop_Item, $bRound = TRUE)
{
// do smth.
}
}
Значения логического типа и NULL
Записываются в верхнем регистре: TRUE, FALSE, NULL.
// Group condition for shop item $this->group !== FALSE && $this->_groupCondition();
Управляющие структуры
В управляющих структурах всегда используются фигурные скобки. Управляющие структуры отделяются от открывающейся скобки пробелом.
if (!$this->item)
{
// Load model columns BEFORE FOUND_ROWS()
Core_Entity::factory('Shop_Item')->getTableColumns();
}
Комментарии
Комментарии должны соответствовать синтаксису комментариев PHPDoc.
/**
* Calculate the cost with tax and discounts
* @param float $price price
* @param Shop_Item_Model $oShop_Item item
* @param boolean $bRound round prices
* @return array
* @hostcms-event Shop_Item_Controller.onBeforeCalculatePrice
* @hostcms-event Shop_Item_Controller.onAfterCalculatePrice
*/
public function calculatePrice($price, Shop_Item_Model $oShop_Item, $bRound = TRUE)
{
// do smth.
}
Именование классов и размещение файлов
Файлы классов размещаются в директории modules, имя класса начинается с названия модуля, разделителем служит символ «_». Имена файлов и директорий указываются в нижнем регистре. Если имя класса не содержит ни одного разделителя, то директория устанавливается равной имени файла.
Например, класс Core размещается в modules/core/core.php, класс Informationsystem_Group_Model размещается в modules/informationsystem/group/model.php