Стандарты оформления кода и размещение файлов

Отступы

В качество отступа используется один символ табуляции.

/**
 * 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

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.