php代碼混淆為什么我們要培養(yǎng)自己的編碼規(guī)范?(圖)php源碼混淆類(lèi)加密

2023-11-07    分類(lèi): 網(wǎng)站建設(shè)

我們?yōu)槭裁匆囵B(yǎng)自己的編碼標(biāo)準(zhǔn)?

當(dāng)我們編寫(xiě)代碼時(shí),一個(gè)好的編碼標(biāo)準(zhǔn)可以給我們帶來(lái)很多意想不到的效果。至少有以下好處:

1、提高我們的編碼效率。整齊統(tǒng)一的代碼方便我們復(fù)制粘貼!

2、提高代碼可讀性。

3、展示我們的專(zhuān)業(yè)知識(shí)。別人看了我們的代碼,發(fā)現(xiàn)整個(gè)代碼的編寫(xiě)過(guò)程整齊劃一,瞬間就上去了!

4、便于團(tuán)隊(duì)合作。大家都用同一個(gè)規(guī)范,這樣就省去了各種寫(xiě)法,協(xié)調(diào)一致!

編碼規(guī)范由代碼規(guī)范和注釋規(guī)范兩大塊組成

其實(shí)我們寫(xiě)的php腳本其實(shí)是由兩部分組成,分別是代碼的編寫(xiě)和代碼的注解!不同的框架,甚至不同的公司,在這方面都會(huì)有不同的看法。這就是剛才所說(shuō)的,只是對(duì)自己的寫(xiě)作規(guī)范的一個(gè)總結(jié)!希望對(duì)其他朋友有所啟發(fā)

1、代碼編寫(xiě)規(guī)范

文件夾命名:

對(duì)同一文件夾使用小寫(xiě)字母。比如存放控制器的文件夾可以直接命名為

文件命名:

如果是文件,那么文件的命名要保持同名一致,統(tǒng)一使用大駝峰大小寫(xiě)。如..php,對(duì)應(yīng)的類(lèi)名是,

如果是常用的工具腳本,那么統(tǒng)一使用小駝峰案例,比如.php

類(lèi)名的命名:

同類(lèi)名使用大駝峰,類(lèi)

方法名命名:

統(tǒng)一使用小駝峰格,一般用動(dòng)詞+秩的形式來(lái)描述方法的功能,比如發(fā)送短信。

在面向?qū)ο笾?,遵循相同的?guī)則,但有一些不同:

public getUserName()
protected _getTotalAmount()
private _setblanceAmount()

變量命名約定:

關(guān)于變量,我們需要多說(shuō)幾句:

1、無(wú)論是面向?qū)ο筮€是非面向?qū)ο蟮恼Z(yǔ)法網(wǎng)站建設(shè),變量都統(tǒng)一使用小駝峰式,如:$。

但是在面向?qū)ο笾芯筒灰粯恿?,?dāng) , , , 或?qū)傩郧凹?_ 作為區(qū)分

public $startposition = 1;
protected $_salaryAmount =1000;
private $_sex = 'formale';

2、如果是常量,統(tǒng)一使用大寫(xiě),下劃線(xiàn)分隔。

define('CURRENT_SCRIpT', 'index.php');
const TRANSACTION_TYpE = 'income';

3、全局變量,大駝峰大小寫(xiě),前綴_,所有單詞首字母大寫(xiě)。因?yàn)橹雷兞康淖饔糜蚝苤匾?,所以局部變量和全局變量要分清楚?/p>

$;

$;

縮進(jìn)

關(guān)于編碼的縮進(jìn),我們統(tǒng)一使用制表符縮進(jìn)!有人可能會(huì)問(wèn),為什么空格縮進(jìn)不適用?

原因很簡(jiǎn)單php 代碼混淆,大部分編輯器都支持制表符等于多少個(gè)空格,使用空格不是必須的!

計(jì)算符號(hào)

所有二元運(yùn)算符都應(yīng)該在前面和前面加空格

$name = 'zero';
$age > 18 ? 'adult' : 'children';

通用過(guò)程報(bào)表規(guī)劃

我們同意所有流程語(yǔ)句的大括號(hào)都在單獨(dú)的行上。原因:如果遇到比較復(fù)雜的業(yè)務(wù)邏輯,會(huì)有很多花括號(hào)的嵌套,所以我們會(huì)混淆對(duì)應(yīng)的花括號(hào)!

1、分支聲明

if($age >= 18 && $age <= 30) 
{
 echo 'young man';
}
else if($age > 30 && $age <= 60)
{
 echo 'middle aged';
}
else
{
 echo 'old man';
}
//下面這段代碼高手我們一個(gè)問(wèn)題,在if語(yǔ)句中,即使在可以不要花括號(hào)的情況下,花括號(hào)也是要寫(xiě)上的
if($age > 60)
{
 echo 'I am very old';
}
switch($status)
{
 case 'forbiden':
 echo 'login forbidden';
 break;
 case 'normal':
 echo 'login in';
 break;
 default:
 echo 'status is wrong' :
 break;
}

2、循環(huán)語(yǔ)句

while($condition)
{
 statesments......;
}
foreach($arrayList as $arrayKey => $arrayItem)
{
 states......;
}
do
{
 statements......; 
}
while($condition)
for($start; condition; changenumber)
{
 statements......;
}

2、評(píng)論書(shū)寫(xiě)規(guī)范

很多人說(shuō)好的代碼不需要注釋。其實(shí)我個(gè)人認(rèn)為這是一句廢話(huà)(或許他是對(duì)的php 代碼混淆,除非他是整個(gè)團(tuán)隊(duì)中唯一的一個(gè),他什么都做,不需要看別人的代碼)。

個(gè)人觀點(diǎn)是:多寫(xiě)點(diǎn)評(píng)論,不管是對(duì)團(tuán)隊(duì)其他人還是自己,都很友好!

根據(jù)個(gè)人經(jīng)驗(yàn),注解至少有以下功能:

1、有助于提高代碼的可讀性,畢竟看你的評(píng)論比看你的代碼容易多了!

2、非常適合規(guī)劃自己的代碼布局!這樣做的原因是因?yàn)樗c代碼注釋的類(lèi)型有關(guān)?!坝欣诖a的布局”,這種東西好像有點(diǎn)懸,光說(shuō)是看不懂,需要實(shí)例來(lái)支持!

3、因?yàn)槲覀兊淖⒔庖?guī)范是符合要求的,所以這個(gè)工具還可以生成代碼的大致描述,相當(dāng)于一本說(shuō)明書(shū)!

代碼注釋的類(lèi)型

1、屏蔽評(píng)論

塊評(píng)論,我覺(jué)得主要用在三個(gè)地方。php腳本的描述,一個(gè)大功能模塊的描述,當(dāng)注釋不能寫(xiě)在一行的時(shí)候,也應(yīng)該放在塊注釋中

2、行評(píng)論

行評(píng)論,我個(gè)人認(rèn)為他與塊評(píng)論一起工作!一般用來(lái)描述一個(gè)大功能模塊的具體細(xì)節(jié)!

實(shí)際案例

關(guān)于語(yǔ)法的具體使用細(xì)節(jié),這里就不多說(shuō)了。官網(wǎng)說(shuō)的再清楚不過(guò)了。

從上面的例子可以看出代碼的布局大致如何,但是在實(shí)踐中還是需要慢慢摸索

以下是一些php編程規(guī)范供大家參考。

一、文件標(biāo)簽:

1.所有 php 文件都標(biāo)有完整的 php 標(biāo)簽。不推薦使用短標(biāo)簽(短標(biāo)簽容易與xml混淆,php從5.4開(kāi)始默認(rèn)不支持短標(biāo)簽)。

2.對(duì)于 php-only 代碼文件,建議在末尾省略 '?>'。這是為了防止多余的空格或其他字符影響代碼。

二、文件和目錄命名

1.程序文件名和目錄名用有意義的英文命名,不要使用拼音和無(wú)意義的字母,只允許字母、數(shù)字、下劃線(xiàn)和下劃線(xiàn),必須以'.php'結(jié)尾(模板文件除外),在多個(gè)單詞之間使用駝峰式大小寫(xiě)。

示例: //該類(lèi)統(tǒng)一采用:..php

//接口統(tǒng)一采用:..php

//其他按自己的方式:.{}.php

三、文件目錄結(jié)構(gòu)

標(biāo)準(zhǔn)化的目錄結(jié)構(gòu)便于團(tuán)隊(duì)協(xié)作開(kāi)發(fā)和后期維護(hù)。

--app //獨(dú)立應(yīng)用

—— //單個(gè)類(lèi)文件,共享類(lèi)文件

--conf/inc //配置文件或目錄

--data //數(shù)據(jù)文件或目錄

--doc //程序相關(guān)文檔

-- //

—— //所有圖片文件存放路徑

——css //css文件

——js //js文件

——lib //共享類(lèi)庫(kù)

—— //模板文件

——tmp //臨時(shí)文件目錄

-- //緩存文件

- //文檔

—— //編譯后的模板文件

——

- //上傳文件

—— //后臺(tái)管理文件目錄

四、 命名約定

1.變量命名:pHp 中的變量區(qū)分大小寫(xiě)。有效的變量名稱(chēng)以數(shù)字、字母或下劃線(xiàn)開(kāi)頭,后跟任意數(shù)量的字母、數(shù)字和下劃線(xiàn)。

a) 程序整體采用駝峰式命名,以小寫(xiě)字母開(kāi)頭,名稱(chēng)要有意義。( ())

b) pHp 全局變量鍵值兩邊都有'_',中間用駝峰命名。($[''])

c) 普通變量整體采用駝峰式,建議在變量前加前綴表示類(lèi)型。不確定類(lèi)型以大寫(xiě)字符開(kāi)頭。

d) 函數(shù)名稱(chēng)應(yīng)盡可能有意義并盡可能縮寫(xiě)。

2.類(lèi)和接口命名:

a) 以大寫(xiě)字母開(kāi)頭。

b) 由多個(gè)單詞組成的變量名,單詞之間沒(méi)有空格,每個(gè)單詞的首字母大寫(xiě)。

c) 類(lèi)名與類(lèi)文件名一致。

d) 程序中的所有類(lèi)名都是唯一的。

e) 抽象類(lèi)應(yīng)以 .

接口命名規(guī)則:

i) 采用與類(lèi)相同的命名規(guī)則,但在其名稱(chēng)前添加“i”字符網(wǎng)站模板,表示接口。

ii) 盡量使其與實(shí)現(xiàn)它的類(lèi)名保持一致。

3.數(shù)據(jù)庫(kù)命名:在數(shù)據(jù)庫(kù)相關(guān)的命名中,不會(huì)出現(xiàn)大寫(xiě)。

a) 所有表名都使用小寫(xiě)字母。

b) 表名使用相同的前綴,且前綴不能為空。

c) 對(duì)于由多個(gè)單詞組成的表名,使用“_”間隔。

d) 表字段命名規(guī)則。

i) 使用全部小寫(xiě)字母。

ii) 多個(gè)單詞不使用下劃線(xiàn)分隔。

iii) 用表名的第一個(gè)字母為常用字段添加前綴。

iv) 避免使用關(guān)鍵字和保留字。

五、注解規(guī)范

1.程序注釋?zhuān)簩?xiě)在代碼前面而不是后面,單行代碼按自定義寫(xiě)在代碼末尾;大段注釋采用/**/的形式,通常在文件或函數(shù)的頂部,'//在代碼內(nèi)部使用';評(píng)論不宜過(guò)多;代碼注釋?xiě)?yīng)該描述原因而不是什么,并向代碼閱讀者提供最重要的信息。

2.文件注釋?zhuān)何募⑨屢话惴旁谖募敳浚ǔ绦蛎枋?、作者、?xiàng)目名稱(chēng)、文件名、時(shí)間日期、版本信息,以及重要的使用說(shuō)明(類(lèi)調(diào)用、注意事項(xiàng), ETC。) 。版本更改應(yīng)修改版本號(hào)并添加注釋。

3.類(lèi)和接口注解:一般來(lái)說(shuō),一個(gè)文件只包含一個(gè)類(lèi)。

4.方法和函數(shù)注解:方法和函數(shù)注解是前面寫(xiě)的,通常需要標(biāo)明信息的主要可見(jiàn)性、參數(shù)類(lèi)型和返回值類(lèi)型。

/**

* 連接數(shù)據(jù)庫(kù)

* @$ 數(shù)據(jù)庫(kù)服務(wù)器地址

* @$ 數(shù)據(jù)庫(kù)用戶(hù)名

* @$ 數(shù)據(jù)庫(kù)密碼

*/

六、代碼風(fēng)格

1.縮進(jìn)和空格:使用4個(gè)空格作為縮進(jìn),不要使用Tab鍵;分配變量時(shí),等號(hào)兩邊要留空格。($url = '$_GET['url']';)

2.語(yǔ)句換行:盡量保證一行程序語(yǔ)句是一個(gè)句子;盡量不要讓一行代碼過(guò)長(zhǎng),80個(gè)字符以?xún)?nèi);如果一行代碼過(guò)長(zhǎng),請(qǐng)使用類(lèi)似'.='的方法換行; 對(duì)數(shù)據(jù)庫(kù)的SQL語(yǔ)句進(jìn)行操作時(shí),盡量不要在函數(shù)中寫(xiě)SQL語(yǔ)句,而是先用變量定義SQL語(yǔ)句,然后在執(zhí)行操作的函數(shù)中調(diào)用定義的變量。

3.更好的習(xí)慣:在你的代碼中使用下面列出的方法讓你的代碼更優(yōu)雅。

1):使用php中已經(jīng)存在的常量,而不是自己定義。

示例://換行符

回聲 $msg."\r\n";

回聲$味精,;

它是php中預(yù)定義的常量,表示一行的結(jié)束。根據(jù)所使用的系統(tǒng),代碼更具可移植性。

2):在 echo 中使用逗號(hào)作為連接符比使用 '.' 更美觀。作為連接器代碼。

3):?jiǎn)我?hào)比雙引號(hào)效率高,但在用法上有區(qū)別。學(xué)習(xí)使用函數(shù)。

示例://回聲

echo '每個(gè)'.$.' 大約有 '.($avg).'';

//

$ = '每個(gè) %s 有超過(guò) $d 個(gè)學(xué)生';

($,$,$平均);

4) : 詳細(xì)評(píng)論

5):不要濫用語(yǔ)法糖。句法糖是一種語(yǔ)言中的一條潛規(guī)則,即一種不具有普遍代表性的語(yǔ)法。

舉兩個(gè)例子,如何寫(xiě)出好的代碼

最經(jīng)典的算法,獻(xiàn)給面試路上的你

如果您現(xiàn)在正在面試 pHp,請(qǐng)查看基本面試問(wèn)題

文章題目:php代碼混淆為什么我們要培養(yǎng)自己的編碼規(guī)范?(圖)php源碼混淆類(lèi)加密
網(wǎng)站路徑:http://muchs.cn/news45/292945.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、域名注冊(cè)、定制開(kāi)發(fā)、商城網(wǎng)站網(wǎng)站收錄、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)