skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
public
»
Стандарты
»
Стандарты оформления PHP кода
public:standarts:kod
====== Стандарты оформления PHP кода ====== - Правильное именование переменных и функций. - Имена глобальных переменных и констант должны вводиться в верхнем регистре - Префикс переменной определяет её тип. Для переменной типа string следует использовать префикс «s», например <php>$sInput</php>. Для bool – «b». Для объектов – это «o», например, <php>$oBook</php>, для массива - «a». При этом, если у нас есть массив с данными одного типа, то помимо префикса массива, нужно указывать еще и тип элементов массива, например, <php>$aoBooks</php>. Кстати, предусмотрен префикс и для смешанных типов mixed – «m». - Переменные, определенные в классе, как private всегда носят префикс «_», например, <php>$_oController</php> - Временные переменные и итераторы следует называть коротко. Например, i, j, k, l, m, n. Для строковых и числовых временных переменных рационально использование названий без префикса, например <php>$name, $pass, $counter</php>. - Переменные, использующие несколько слов в названии, пишутся слитно, без знака «_». Например, <php>$oBookComment</php>. Но если речь идет о константе или глобальной переменной, то здесь целесообразно использование знака «_». Например, <php>$CACHE_DIR</php>. - Для имен методов и функций следует применять те же правила, что и для переменных. Начинаться имена методов и функций должны с символов в нижнем регистре. - При создании модели объекта с неопределенной выборкой, например, <php>$oShopItems = Core_Entity::factory(‘shop_item’)</php> имя переменной должно быть во множественном числе с содержанием префикса o - object. При уточнении выборки и получении массива объектов <php>$aoShopItems = $oShopItems->findAll()</php> префикс должен быть ao - array of objects. При создании модели конкретного объекта имя переменной должно быть в единственном числе, например, <php>$oShopItem = Core_Entity::factory(‘shop_item’, 25)</php>. - Использование пустого пространства и фигурных скобок. - Чтобы усилить логическую структуру кода, следует использовать переносы строк – пустое пространство. Не бойтесь ставить переносы строк, давайте коду как можно больше свободы, но без излишеств - двойные переносы строк делать не следует. - Cледует разбивать блоки инициализации ряда переменных по логическому смыслу, например<code php> $name = "testname"; $login = "testlogin"; $pass = "testpass"; $oSite = Core_Entity::factory('site', $site_id); $oUser = Core_Entity::factory('user', $user_id); $oController = new Core_Controller($oUser); </code>Первый блок с переменными содержит какие-то предустановленные значения. Второй – создание объектов. Третий – контроллера. Следует записать так:<code php> $name = "testname"; $login = "testlogin"; $pass = "testpass"; $oSite = Core_Entity::factory('site', $site_id); $oUser = Core_Entity::factory('user', $user_id); $oController = new Core_Controller($oUser); </code> - Управляющие конструкции – условия и циклы следует отделять переносами. Например, <code php> $bonus = 0; /* Вычисляем сумму бонусов товаров */ foreach ($aoShopOrderItems as $oShopOrderItem) { $bonus += $this->getBonus($oShopOrderItem->shop_item_id); } return $bonus; </code> - Фигурные скобки всегда следует отделять переносом строки. - Отступы - Отступы внутри управляющих конструкций должны присутствовать обязательно. - Также отступы и переносы строк следует использовать в сложных условиях и в сложных конструкциях, подразумевающих создание вложенных объектов.<code php> if (isset(Core_Page::instance()->object) && strpos( get_class(Core_Page::instance()->object), 'Informationsystem_Controller_Show' ) !== false ) { $Informationsystem_Controller_Show ->addEntity( Core::factory('Core_Xml_Entity') ->name('current_group_id') ->value(intval(Core_Page::instance()->object->group)) )->addEntity( Core::factory('Core_Xml_Entity') ->name('current_item_id') ->value(intval(Core_Page::instance()->object->item) ) ); }</code> - Не используйте оператор <php>echo</php> для вывода HTML-кода. Следует использовать закрывающие и открывающие PHP-теги: <html><?php ?></html> - Вставки кода должны быть окружены копирайтами с комментарием. Пример <code php>/** * В этой строке должен быть комментарий о том, что делает код внутри комментариев. * * @author Kuts Artem, KAD Systems (©) 2017 * @date 18-11-2017 * Начало >> */ /** * << Конец * @author Kuts Artem, KAD Systems (©) 2017 * @date 18-11-2017 */</code> - Параметры методов класса указываются в порядке: входные значения, изменяемые значения, выходные значения. - При написании кода допускается использовать языковые конструкции совместимые с версией интерпретатора 5.2.2+, такая совместимость [[https://www.hostcms.ru/hostcms/system-requirements/|заявлена в требованиях]] к последней версии HostCMS, и такую совместимость необходимо поддерживать в своем коде.
public/standarts/kod.txt
· Last modified: 09.07.18 в 16:29 by
Артем Куц
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top