真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CodingStandards

參考鏈接:https://www.drupal.org/docs/develop/standards/coding-standards

Indenting and Whitespace 縮進(jìn)和空格

使用2個(gè)空格,不是tabs。

在倉(cāng)山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷(xiāo),外貿(mào)網(wǎng)站建設(shè),倉(cāng)山網(wǎng)站建設(shè)費(fèi)用合理。

行的結(jié)束不應(yīng)該有空格。

所有的文本文件的在行的結(jié)尾以換行符\n結(jié)尾。

PHP文件開(kāi)頭的所有塊應(yīng)該使用空行分割。這包括/**@file*/塊,命名空間聲明和use語(yǔ)句以及文件中的后續(xù)代碼。

So,for example,a file header might look as follows:

 


namespace This\Is\The\Namespace;

use Drupal\foo\bar;

/**
 * Provides example.
*/
class ExampleClassName {}

.module文件


/**
 * @file
 * Provides example functionality
*/

use Drupal\foo\Bar;

/**
 * Implements hook_help().
*/
function example_help($route_name){

Operators 運(yùn)算符

為了便于閱讀,所有的二元運(yùn)算符(兩個(gè)值之間的運(yùn)算)例如 + ,-,=,!=,==,>等應(yīng)該在運(yùn)算符前后有個(gè)空格。

 

$foo = $bar;
// not
$foo=$bar;

一元運(yùn)算符(僅操作一個(gè)值得運(yùn)算符)(例如++,--)在運(yùn)算符與其操作的變量或數(shù)字之間不應(yīng)有空格。

檢查弱類(lèi)型不等式必須使用!=運(yùn)算符,<> 不能使用與PHP中。

Control Structures 控制結(jié)構(gòu)

控制結(jié)構(gòu)包括:if, for, while, switch等。

Here is a sample if statement,since it is the most complicated of them:

 

if(condition1 || condition2) {
  action1;
}
elseif (condition3 && condition4) {
  action2;
}
else {
  defaultaction;
}

Note:Don't use "else if" -- awalys use elseif.

控制語(yǔ)句應(yīng)該在控制關(guān)鍵字和左括號(hào)之間有個(gè)空格,以便將它們與函數(shù)調(diào)用區(qū)分開(kāi)來(lái)。即使在技術(shù)上可選的情況下也要使用花括號(hào)。

For switch statements:

 

switch (condition) {
  case 1:
    action;
    break;

  case 2:
    action;
    break;

  default:
    defaultaction;
}

For d-while statements:

 

do {
  actions;
} while ($condition);

模板控制語(yǔ)句 .tpl.php

 

  


  

Line length and wrapping

以下規(guī)則適用于代碼。 有關(guān)注釋的規(guī)則,請(qǐng)參閱Doxygen和注釋格式約定

通常,所有代碼不應(yīng)超過(guò)80個(gè)字符。

包含更長(zhǎng)函數(shù)名,函數(shù)和類(lèi)定義,變量聲明的可以超過(guò)80個(gè)字符。

控制條件超過(guò)80個(gè)字符可以這樣寫(xiě):

 

if ($something['with']['something']['else']['in']['here'] ==
mymodule_check_something($whatever['else'])) {
  // ...
}
if (isset($something['what']['ever']) && $something['what']['ever'] >
$infinite && user_access('galaxy')) {
  // ...
}
if (preg_match('@(/|\\)(\.\.|~)@', $target) && strpos($target_dir,
$repository) !== 0) {
  return FALSE;
}

不應(yīng)該將條件包裝成多行。

控制結(jié)構(gòu)條件也不應(yīng)該試圖贏得“最少線(xiàn)條代碼獎(jiǎng)”中的最緊湊條件:

 

// DON'T DO THIS!
if ((isset($key) && !empty($user->uid) && $key == $user->uid) ||
(isset($user->cache) ? $user->cache : '') == ip_address() || isset($value)
&& $value >= $time())) {
  // ...
}

// Key is only valid if it matches the current usr's ID, as otherwise
other
// users could access any user's things.
$is_valid_user = (isset($key) && !empty($user->uid) && $key == $use->uid);
$is_valid_cache = (isset($user->cache) ? $user->cache == ip_address() :
FALSE);
$is_valid_query = $is_valid_cache || (isset($value) && $value >= time());

if ($is_valid_user || $is_valid_query) {
  // ...
}

Function Calls 函數(shù)調(diào)用

函數(shù)應(yīng)該在函數(shù)名稱(chēng),左括號(hào)和第一個(gè)參數(shù)之間沒(méi)有空格,逗號(hào)和每個(gè)參數(shù)之間有空格,最后一個(gè)參數(shù),右括號(hào)和分號(hào)之間沒(méi)有空格。

 

$var = foo($bar, $baz, $quux);

Function Delarations 函數(shù)聲明

帶有默認(rèn)值的參數(shù)出現(xiàn)在參數(shù)列表的末尾。如果合適,要返回有意義的值。

匿名函數(shù)應(yīng)該在函數(shù)和它的參數(shù)之間有個(gè)空格,如下所示例:

 

array_map(function ($item) use (id) {
  return $item[$id];
},$itmes)

Calss Constructor Calls

當(dāng)調(diào)用的函數(shù)沒(méi)有類(lèi)構(gòu)造函數(shù)時(shí),也要包含括號(hào):

 

$foo = new MyClassName();
// 這也是為了與有參數(shù)的構(gòu)造函數(shù)保持一致
$foo2 = new MyClassName($arg1, $arg2);

請(qǐng)注意,如果類(lèi)名是一個(gè)變量,那么首先計(jì)算變量以獲取類(lèi)名,然后再調(diào)用:

 

$bar = 'MyClassName';
$foo = new $bar();
$foo2 = new $bar($arg1, $arg2);

Arrays

數(shù)組應(yīng)該使用短陣列語(yǔ)法進(jìn)行格式化,每個(gè)元素之間使用一個(gè)空格(逗號(hào)之后),關(guān)聯(lián)數(shù)組使用=>運(yùn)算符,前后使用空格:

 

$some_array = ['hello', 'world', 'foo' => 'bar'];

注意,如果聲明數(shù)組的行超過(guò)80個(gè)字符,則應(yīng)該每個(gè)元素分成自己的行,并縮進(jìn)一級(jí):

 

$form['title'] = [
  '#type' => 'textfield',
  '#title' => t('title'),
  '#size' => 60
  '#maxlength' => 128,
  '#description' => t('The title of your node.'),
]

注意,最后一個(gè)元素末尾的逗號(hào),如果其他元素稍后放置末尾,有助于防止錯(cuò)誤解析。

請(qǐng)注意,PHP5.4之前的版本不支持短矩陣語(yǔ)法。這意味著Drupal7和Drupal7核心的語(yǔ)法的項(xiàng)目沒(méi)有明確要求使用。

Quotes 引號(hào)

Drupal沒(méi)有強(qiáng)制使用單引號(hào)與雙引號(hào)的硬性標(biāo)準(zhǔn)。在可能的情況下,保持代碼的一致性,尊重其他開(kāi)發(fā)人員的風(fēng)格。

默認(rèn)情況下使用單引號(hào),除下面情況:

1.刻意的在線(xiàn)變量插值,"

$header

";

2.包含單引號(hào)的字符串,如翻譯等,"He's a good person.";

String Concatenations

始終在圓點(diǎn)(.)和連接部分使用空格提高可讀性。

 


$string = 'Foo' . $bar;
$string = bar() . 'foo';
$string = 'Foo' . 'bar';

在連接簡(jiǎn)單變量時(shí),可以使用雙引號(hào)并在其添加變量;否則,使用單引號(hào)。

 


$string = "Foo $bar";

在使用連接賦值運(yùn)算符(.=)時(shí),與賦值運(yùn)算符一樣,在每一邊使用空格。

 

$string .= 'Foo';
$string .= $bar;
$string .= baz();

Including Code

在無(wú)條件的包含一個(gè)類(lèi)文件的地方,使用require_once().在有條件的包含類(lèi)文件的任何地方(工廠方法),請(qǐng)使用include_once().兩個(gè)都確保只包含一次類(lèi)文件。它們共享文件列表。

注意:include_once()和require_once是語(yǔ)句,而不是函數(shù)。您不需要使用括號(hào)包含文件名。

當(dāng)包含同一目錄或子目錄的代碼時(shí),用 . 開(kāi)始文件路徑。

include_once ./includes/mymodule/mymodule_formatting.inc

在drupal7或更高的版本中使用DRUPAL_ROOT:

require_once DRUPAL_ROOT . '/' .varable_get('cache_inc','includes/cache.inc');

To include code in a module:

 

module_load_include('inc', 'node', 'node.admin');

PHP Code Tags

總是使用來(lái)分割PHP代碼,而不是簡(jiǎn)寫(xiě).

從drupal4.7開(kāi)始,代碼文件末尾的?>被省略。這包括模塊和包文件。

1.刪除它可以消除文件末尾不必要的空白,可能導(dǎo)致“文件頭已發(fā)送”錯(cuò)誤,XHML/XML驗(yàn)證問(wèn)題和其他問(wèn)題。

2.文件末尾的結(jié)束分割符是可選的

3.PHP.net本省從文件末尾刪除結(jié)束分割符

Semicolons 分號(hào)

PHP語(yǔ)言在大多數(shù)行末尾都需要分號(hào),但是在代碼塊的末尾可以省略它們。Drupal編碼標(biāo)準(zhǔn)要求有分號(hào),即使在代碼塊的末尾。

 

 -- yes
 -- no

Name Conventions 命名約定

Function and variables 

函數(shù)應(yīng)該使用小寫(xiě)字母命名,單詞要使用下劃線(xiàn)分割。此外函數(shù)名還應(yīng)該使用模塊名/分組名做為前綴,以免沖突。

變量應(yīng)該使用小寫(xiě)字母命名,單詞使用大寫(xiě)字母,例如: $lowerCamelCase 或下劃線(xiàn) $snake_case.但要始終如一,不要混合使用。

Persistent Variables

持久變量(使用Drupal的variable_get() / variable_set()函數(shù)定義/設(shè)置)應(yīng)該使用小寫(xiě)字母命名,使用下劃線(xiàn)分割。它們應(yīng)該使用模塊/分組名稱(chēng)作為前綴,以免模塊之間沖突。

Constants 

1.常量總是使用大寫(xiě),用下劃線(xiàn)分割。

2.模塊定義的常量名稱(chēng)還應(yīng)該以它們的模塊的大寫(xiě)拼寫(xiě)最為前綴。

3.在Drupal 8或更高的版本中,常量應(yīng)該使用const PHP關(guān)鍵字(不是define())來(lái)定義,性能更好。

  注意:const不適合PHP表達(dá)式。定義一個(gè)常量或非文字值時(shí)應(yīng)該使用define():

 

const CACHE_TEMPORARY = -1;

if (!defined('MAINTENANCE_MODE')) {
  define('MAINTENANCE', 'error');
}

Global Variable

如果需要定義全局變量,則其名字應(yīng)該以單個(gè)下劃線(xiàn)開(kāi)頭,后面緊跟模塊/主題名和另一個(gè)下劃線(xiàn)

File Name

所有的文檔文件具有文件擴(kuò)展名.txt,以便于在Windows系統(tǒng)上查看,此外這些文件的文件名應(yīng)該大寫(xiě)(README.txt而不是readme.txt)示例:README.txt,INSRALL.txt,TODO.txt等。

Helper Modules

有幾個(gè)貢獻(xiàn)的模塊可以協(xié)助審查代碼標(biāo)準(zhǔn)的遵從性:

1. Coder

2. Dreditor

3. PAReview

4.Coder Sniffer


新聞名稱(chēng):CodingStandards
地址分享:http://weahome.cn/article/ihjhjj.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部