中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

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

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

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

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

2、提高代碼可讀性。

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

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

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

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

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

文件夾命名:

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

文件命名:

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

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

類名的命名:

同類名使用大駝峰,類

方法名命名:

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

在面向?qū)ο笾校裱嗤囊?guī)則,但有一些不同:

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

變量命名約定:

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

1、無論是面向?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)一使用大寫,下劃線分隔。

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

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

$;

$;

縮進(jìn)

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

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

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

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

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

通用過程報(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è)問題,在if語(yǔ)句中,即使在可以不要花括號(hào)的情況下,花括號(hào)也是要寫上的
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)論書寫規(guī)范

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

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

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

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

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

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

代碼注釋的類型

1、屏蔽評(píng)論

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

2、行評(píng)論

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

實(shí)際案例

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

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

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

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

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

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

二、文件和目錄命名

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

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

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

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

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

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

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

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

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

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

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

-- //

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

——css //css文件

——js //js文件

——lib //共享類庫(kù)

—— //模板文件

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

-- //緩存文件

- //文檔

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

——

- //上傳文件

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

四、 命名約定

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

a) 程序整體采用駝峰式命名,以小寫字母開頭,名稱要有意義。( ())

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

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

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

2.類和接口命名:

a) 以大寫字母開頭。

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

c) 類名與類文件名一致。

d) 程序中的所有類名都是唯一的。

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

接口命名規(guī)則:

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

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

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

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

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

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

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

i) 使用全部小寫字母。

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

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

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

五、注解規(guī)范

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

2.文件注釋:文件注釋一般放在文件頂部,包括程序描述、作者、項(xiàng)目名稱、文件名、時(shí)間日期、版本信息,以及重要的使用說明(類調(diào)用、注意事項(xiàng), ETC。) 。版本更改應(yīng)修改版本號(hào)并添加注釋。

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

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

/**

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

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

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

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

*/

六、代碼風(fēng)格

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

2.語(yǔ)句換行:盡量保證一行程序語(yǔ)句是一個(gè)句子;盡量不要讓一行代碼過長(zhǎng),80個(gè)字符以內(nèi);如果一行代碼過長(zhǎng),請(qǐng)使用類似'.='的方法換行; 對(duì)數(shù)據(jù)庫(kù)的SQL語(yǔ)句進(jìn)行操作時(shí),盡量不要在函數(shù)中寫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 有超過 $d 個(gè)學(xué)生';

($,$,$平均);

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

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

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

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

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

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

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

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
长白| 犍为县| 安塞县| 晋江市| 利辛县| 翼城县| 山阴县| 邯郸县| 泰安市| 宁陕县| 墨竹工卡县| 行唐县| 峨眉山市| 蒲江县| 包头市| 玉山县| 竹山县| 巴林右旗| 天水市| 灵山县| 江达县| 彭山县| 虎林市| 日喀则市| 武威市| 正阳县| 大同县| 五台县| 井研县| 越西县| 九龙城区| 西贡区| 汝南县| 堆龙德庆县| 长春市| 涡阳县| 开阳县| 沈阳市| 古浪县| 会同县| 崇明县|