久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

WordPress:WordPress Coding Standards

來自站長百科
Sutrong討論 | 貢獻(xiàn)2008年5月27日 (二) 11:00的版本
(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航: 上一級 | WordPress | 首頁 | WordPress中文論壇 | WordPress主機(jī) | CMS程序 | 論壇程序 | ECShop | ShopNC | PowerEasy

一些WordPress代碼結(jié)構(gòu)遺留下來的部分對于PHP的開發(fā)在類型上是不一致的。 WordPress致力于通過幫助用戶維護(hù)代碼一致性,維持整潔易讀的程度來逐漸改變這點。

編寫WordPress 代碼的時候,要記得以下幾點,不論是核心程序代碼, 插件,或者是 WordPress 主題。指導(dǎo)方針與 Pear 標(biāo)準(zhǔn)相似,但是在某些關(guān)鍵地方也有不同。

也可以參見wp-hackers 列表中的這個文章


還有一篇關(guān)于被提議的內(nèi)嵌文檔標(biāo)準(zhǔn)的頁面.

單引號和雙引號
適當(dāng)?shù)臅r候使用單引號和雙引號。如果你不能評測字符串中的東西的時候,使用單引號。字符串無法擺脫HTML 引號,因為你只可以改變你的引用方式,如:
echo "<a href='$link' title='$linktitle'>$linkname</a>";
echo '<a href="/static/link" title="Yeah yeah!">Link name</a>';
唯一的例外是JavaScript,它有時要求雙或者單引號。屬性中的文本必須通過attribute_escape()處理,這樣單或者雙引號不需要結(jié)束屬性的值,也不會導(dǎo)致XHTML 不合法而導(dǎo)致安全問題。
縮進(jìn)
縮進(jìn)通常反映出邏輯結(jié)構(gòu)。使用真正的制表符不要使用空格,這通過客戶端允許得到最大的適應(yīng)性。
例外: 如果代碼排列整齊了會使你的代碼塊更易讀的話,你可以做一些簡單的制表符縮進(jìn),然后把不同的地方用空格標(biāo)記:
[tab]$foo   = 'somevalue';
[tab]$foo2  = 'somevalue2';
[tab]$foo34 = 'somevalue3';
[tab]$foo5  = 'somevalue4';
注意制表符如何用來做簡單的縮進(jìn),和空格只是用來讓每行排列整齊。
Brace 格式
Brace應(yīng)該用于多行代碼塊:
if ( condition ) {
    action1();
    action2();
} elseif ( condition2 && condition3 ) {
    action3();
    action4();
} else {
   defaultaction();
}
此外如果你有特別長的代碼塊,考慮是否可以分成兩個或者更多的短些的塊或者函數(shù)。如果你認(rèn)為這種長代碼不可避免,請在末尾做一個簡單的注釋,這樣人們可以在看過之后知道結(jié)束括號結(jié)束了什么。 -- 尤其是適合邏輯塊,超過35行的代碼,當(dāng)然任何代碼都是可以做出注釋的。
單行程序塊可以省略大括號:
if ( condition )
    action1();
elseif ( condition2 )
    action2();
else
    action3();
include_once vs. require_once
了解 include_oncerequire_once之間的不同,適當(dāng)?shù)氖褂盟鼈?。引?a target="_blank" rel="nofollow noreferrer noopener" class="external autonumber" 這兩種結(jié)構(gòu)除了在如何處理故障方面,其他的都是一樣的。當(dāng)require() 導(dǎo)致一個致命錯誤的時候,include() 生成一個警告。" 致命錯誤停止代碼執(zhí)行。
常規(guī)表達(dá)
Perl 兼容常規(guī)表達(dá)(PCRE, preg_ 函數(shù))應(yīng)該被優(yōu)先用在 它們的POSIX 副本.
不要使用簡寫PHP
不要使用簡寫PHP 開始標(biāo)簽 (<? ... ?> 或者 <?=$var?>)。要一直使用完全的PHP 標(biāo)簽 (<?php ... ?>). 確認(rèn)關(guān)閉PHP標(biāo)簽后移除空白空格。
空格用法
在逗號后面要加一個空格,在邏輯和分配算子兩邊也要加上空格如 "x == 23", "foo && bar", "array( 1, 2, 3 )", , 同樣在打開和關(guān)閉if, elseif, foreach, forswitch 語句的括號兩邊也加上空格 (如foreach ( $foo as $bar ) { ...). 定義一個函數(shù)的時候,這樣做: function myfunction( $param1 = 'foo', $param2 = 'bar' ) { 在調(diào)用函數(shù)的時候,這樣做: myfunction( $param1, funcparam( $param2 ) );
格式化 SQL 聲明
如果十分復(fù)雜而不能辨別的話,當(dāng)格式化SQL聲明的時候你可以把它分成幾行,然后縮進(jìn)。多數(shù)聲明在一行內(nèi)運行良好。聲明的SQL部分如UPDATE 或者 WHERE一定要大寫。
升級數(shù)據(jù)庫的函數(shù)盡量減少參數(shù)應(yīng)該盼望參數(shù)在傳遞過程中減少丟失。溢出應(yīng)該在盡可能接近請求的時候完成。最適合的時候是正在使用 $wpdb->prepare()時。
$wpdb->prepare()是一個方法,為SQL請求控制溢出,引用和int-casting。它使用一個格式化的sprintf()格式的的子集。如 :
$var = "dangerous'"; // raw data that may or may not need to be escaped
$id  = some_foo_number(); // data we expect to be an integer, but we're not certain

$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) );
%s 是用于字符串占位符的,%d是用于整型占位符。注意它們沒有被'引用'! $wpdb->prepare()會照應(yīng)好溢出和引用的。這樣的好處就是我們不需要記住手動使用$wpdb->escape(),這樣一眼就能看出是否有什么溢出,因為它在請求發(fā)生的那一刻就起作用了。
數(shù)據(jù)庫請求
避免直接改動數(shù)據(jù)庫。如果有一個定義過的函數(shù)可以得到你想要的數(shù)據(jù),就用它,數(shù)據(jù)庫提取(使用函數(shù)代替請求)對保證你的代碼的向前兼容性有幫助,這樣結(jié)果在內(nèi)存中找到后,它可以用數(shù)倍更快的速度。如果你必須改動數(shù)據(jù)庫的話,通過發(fā)布信息到wp-hackers 郵件列表聯(lián)系幾個開發(fā)人員。他們可能會考慮為下一個WordPress 版本開發(fā)一個新的函數(shù)來達(dá)到你想要的功能。
變量, 函數(shù)和算子
如果你不使用變量,就不要創(chuàng)建。這包括請求在內(nèi)。于數(shù)據(jù)庫交換數(shù)據(jù)時使用函數(shù)wpdb類。
三重算子是可以的,聲明為真時要記得測試,否則它會混淆。
// GOOD example:
// (if statement is true) ? (do this) : (if false, do this);
$musictype = ('jazz' == $music) ? 'cool' : 'blah';

另外一個重點是在上邊的例子中,當(dāng)做邏輯比較的時候,要把變量放到右邊,象上邊那樣。如果你忘記了等號,它會出現(xiàn)一個解析錯誤而不是判斷為真或者停止聲明。它并不占用過多的時間,所以這如果避免了一個錯誤,是值得的。

:單獨行為了簡潔省略括號

if ( condition )
    action1();
elseif ( condition2 )
    action2();
else
    action3();