亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > PhpCMS > 正文

PHPCMS代碼分析的一些想法

2024-09-10 07:15:31
字體:
來源:轉載
供稿:網友

最近準備分析PHPCMS的整站代碼,下面這段話,寫的不錯,看了,受益匪淺,現在收藏下.

1. PHP語言沒有學好就不要去分析PHPCMS的代碼

我不太認可這種觀點,因為掌握PHP語言是進行代碼分析的必要條件但不是充分條件,是不是PHP語言學好了我們就可以很好的分析代碼呢?回答是否定的,代碼分析不但需要掌握PHP語法,還需要有代碼分析和閱讀的技巧,如果沒有代碼分析和閱讀的技巧,光有PHP語法知識,分析工作一定很難做下去,至于代碼分析的技巧是什么,我會在下面談到,反過來,如果具有代碼分析的技巧,我們PHP語法也不需要學得很精通,當然學得好總是有好處的,沒有副作用的.Vevb.com

這個結論的得出其實不難理解。PHP是計算機的語言,漢語和英語是人的語言,試想想,我們幾個人敢說我們的漢語很精通,中國的漢字至少有6萬多個,我們日常用的也就是常用的3000個和次常用的3000個,我們有很多字都不認識,有很多成語都不知道什么意思。但是我們閱讀和理解都不成問題,因為我們一直在用,我們看到不懂的字詞時,我們都會連猜帶蒙,這就是技巧,也適用于讀程序和讀英語文章.

再看看英語,國家培養的大學生通過了英語四級、六級考試,詞匯量都在五六千左右,可是英語還是說不出口,英文文章還是寫不出來,甚至看不懂,為什么呢?我們用的太少了。因此,計算機語言的學習,掌握基本語法后,我們應該更多的去寫程序,去讀程序,在用的過程中再學習和提高,否則,結果只能和英語一樣,寫不出程序也讀不懂程序,再說了,PHP語言學得好,就是所有的語法都掌握,所有的函數都掌握碼?那誰也做不到,做到了也沒有用,否則要字典、要參考手冊做什么?因此,只要學會了PHP的基本語法,就應該立刻去分析代碼了,邊用邊學,否則,永遠只能紙上談兵。

2. 如何做代碼分析,也就是上面提到的代碼分析技巧

代碼分析一定要把握程序的主干和全局,我們第一眼看到PHPCMS的代碼時,都會頭大,因為這時我們看到了無數的葉子,我們要做的是從繁雜的葉子中理出枝條、主干和根本,只有掌握了枝條、主干和根本,才能把繁雜的葉子穿起來,否則,我們只能陷入細節的泥沼中難以自拔,甚至是一葉障目,只見樹木不見森林,對系統缺乏宏觀的把握.

技巧一:要有把握全局的眼光和意識

PHPCMS本質上說是一個MIS系統,所有網頁上的操作80%(我的估計不一定準確)應該是對數據庫中相應表的添加、刪除和修改操作。因此,對于這80%的數據庫操作相關的功能模塊,我們可以用同樣的一個主線去分析。這個主線就是:頁面操作(包括:數據編輯和提交)->調用相應的代碼文件->相應的支撐函數->數據庫訪問。

技巧二:數據訪問功能的主線,所以我們一定要從功能使用上入手,而不是從代碼文件出發,如果分析咨詢模塊,就用IE打開咨詢的頁面,從IE的地址欄觀察到調用的PHP文件名,然后我們再找到這個代碼文件去分析,這樣才有針對性,而且我們在讀代碼的時候可以和界面上的操作關聯起來,這樣非常有利于我們理解代碼.

分析代碼的時候只要用一個語句就可以搞定了。在代碼文件的頭部寫上ECHO語句,用來確認我們要分析的代碼文件確實被調用,如果這個代碼文件沒有被調用,我們就不要分析,因為我們就想知道界面上的功能是如何用代碼實現的,我們就去找相應的代碼文件。

IF和ELSE塊中寫上ECHO語句,用來判斷是IF分支被執行還是ELSE分支被執行,我們只分析被執行的分支,不執行的分支先略去。這就是找主干的技巧,我們要快速的從很多的代碼中找出哪些要看,哪些不要看(不執行的就不去看),不能眉毛胡子一把抓,而是要快速的切入主題。當然如果想要知道變量的值,還要用ECHO打印出來。直到最后找到數據庫操作的SQL語句。

技巧三:在代碼文件的任何位置用ECHO語句打印調試信息,這個主線就分析完了,我們把函數或者代碼文件的調用關系記錄下來就是詳細設計文檔,然后再花時間去分析細枝末節的東西.

3. PHPCMS代碼分析就是給代碼加注釋

經過上面的分析,我們有些人可能已經掌握了代碼分析技巧,有些人可能沒有,然后大家上來可能就開始給代碼加注釋了,認為這就是代碼分析。這樣做我也不是很認可,我認為首先要做的是畫出函數或者代碼文件之間的調用關系圖。有了關系圖之后,再給代碼加注釋。我們現在做的工作是反向工程,對我們最有價值的是概要設計文檔和詳細設計文檔。概要設計文檔(如圖)

比如:咨詢功能有index.php調用post.php, list.php, show.php以及reply.php。詳細設計文檔(如圖)

比如:post.php對其他函數或代碼文件如何調用,最后需要的概要設計文檔和詳細設計文檔的具體內容和格式可能比這個要更規范和詳細,我這里只是為了說明問題,希望能起到拋磚引玉的作用.

這樣做的好處是我們看了post的詳細設計文檔就一目了然,知道調用了哪些全局函數(藍色),知道調用了哪些類的方法(紅色)。

以后如果我們寫類似的功能或者修改完善某個功能時,就可以參考這幅圖來做了,至于代碼中的注釋倒是其次的事情了,如果我們把每一行代碼都注釋上,本身沒有必要,而且也不科學,因為PHPCMS代碼本身的變量名、函數名都是有意義的英文單詞,代碼本身就是很好的注釋,如果加上很多注釋其實多此一舉,反而增加了今后閱讀代碼人的閱讀工作量,另外也不利于代碼的維護,改了代碼之后還要改注釋.

當然對于某些關鍵算法或者比較復雜的算法另當別論。

技巧四:代碼分析先繪制設計文檔,再添加注釋,還是先把握主干,再深入細節.

代碼文件名的命名

php文件命名有規律可循,有的php文件里面定義了多個函數,這樣的文件名稱可能是*.func.php,一般放著全局函數或者公共函數,有的里面定義了類,這樣的文件名稱可能是*.class.php,有的一個文件里面即沒有函數的定義,也沒有類的定義,這樣的文件就是就相當一個函數,完成特定的功能,一般文件名就是功能的描述,這樣的文件名稱可能是*.php,比如:post.php, list.php,index.php,等等,有的可能是包含(include,簡寫為inc)文件,里面定義了若干變量或聲明其他包含關系,這樣的文件名稱可能是*.inc.php.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黄色片免费观看| 久久久久久久久久久亚洲| 欧美大成色www永久网站婷| 欧美中文字幕第一页| 国语自产精品视频在线看一大j8| 久久91精品国产| 国产精品亚洲第一区| 国外视频精品毛片| 久热爱精品视频线路一| 欧美在线视频播放| 欧美日韩综合视频| 亚洲欧美日韩天堂一区二区| 久久久久久av| 欧美电影在线观看完整版| 91九色国产视频| 精品久久香蕉国产线看观看亚洲| 欧美精品videos| 国产视频精品在线| 亚洲国产另类 国产精品国产免费| 亚洲精品av在线播放| 日韩av观看网址| 国产91热爆ts人妖在线| 国产成人免费91av在线| 在线日韩中文字幕| 2019中文字幕免费视频| 国产在线观看一区二区三区| 亚洲人成网站在线播| 国外成人性视频| 日韩在线观看高清| 伊人久久大香线蕉av一区二区| 97在线视频免费观看| 久久精品一偷一偷国产| 亚洲激情视频在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 久久偷看各类女兵18女厕嘘嘘| 国产精品96久久久久久| 92福利视频午夜1000合集在线观看| 国产精品入口夜色视频大尺度| 中文字幕亚洲欧美在线| 最新的欧美黄色| 欧美插天视频在线播放| 中文欧美日本在线资源| 亚洲一区二区久久久久久久| 国产精品羞羞答答| 精品久久久久久中文字幕大豆网| 成人黄色免费网站在线观看| 黄色一区二区三区| 亚洲欧美制服综合另类| 日韩精品视频免费专区在线播放| 成人444kkkk在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品91在线观看| 波霸ol色综合久久| 亚洲国产一区二区三区在线观看| 日韩电影大片中文字幕| 国产欧美日韩精品在线观看| 欧美日韩日本国产| 在线成人激情视频| 亚洲人永久免费| 精品国产欧美一区二区三区成人| 啪一啪鲁一鲁2019在线视频| 欧美激情手机在线视频| 亚洲免费av网址| 亚洲欧美在线第一页| 国产日本欧美一区二区三区| 久久成人免费视频| 欧美在线精品免播放器视频| 日韩精品在线私人| 亚洲精品动漫100p| 97香蕉超级碰碰久久免费软件| 91成人天堂久久成人| 国产精品自产拍在线观| 国产区亚洲区欧美区| 欧美亚洲激情在线| 91国产视频在线播放| 国产不卡av在线| 欧美中文字幕在线观看| 欧美成人精品一区二区三区| 中文字幕精品一区二区精品| 国产精品久久久久久久9999| 亚洲日本成人网| 国自在线精品视频| 欧美成人手机在线| 欧美精品第一页在线播放| 高清欧美一区二区三区| 91精品视频在线看| 久久久av亚洲男天堂| 日韩亚洲精品视频| 日韩欧美在线视频免费观看| 中日韩午夜理伦电影免费| 亚洲精品一区中文| 欧洲成人在线观看| 亚洲欧美日韩在线高清直播| 97久久伊人激情网| 精品国产依人香蕉在线精品| 91视频免费网站| 国内精品久久久久久中文字幕| 欧美日韩国产中文精品字幕自在自线| 国产性色av一区二区| 国内精品一区二区三区四区| 欧美黑人xxx| 91av在线影院| 国产精品视频一区二区三区四| 91欧美视频网站| 久久久久久久久国产精品| 亚洲成色www8888| 久久这里有精品视频| 5278欧美一区二区三区| 国产热re99久久6国产精品| 国产成人精品在线观看| 国产精品美乳一区二区免费| 亚洲影院污污.| 欧美日韩国产精品一区| 亚洲国产成人精品电影| 欧美成人精品一区二区| 九色精品美女在线| 欧美另类69精品久久久久9999| 久久天天躁狠狠躁夜夜躁2014| 91老司机在线| 精品久久久久久国产91| 亚洲免费人成在线视频观看| 日韩欧美在线字幕| 日韩专区在线播放| 国产精品入口福利| 97在线看福利| 亚洲嫩模很污视频| 久久久久成人精品| 久久精品人人做人人爽| 亚洲久久久久久久久久久| 成人免费大片黄在线播放| 精品magnet| 中文字幕在线看视频国产欧美在线看完整| 欧美高清在线播放| 国产玖玖精品视频| 91精品美女在线| 国内精品久久久久| 国产精品久久久久7777婷婷| 日韩欧美在线视频免费观看| 精品久久久久久久久久久久久| 亚洲一区二区三区四区在线播放| 在线观看国产成人av片| 成人免费网站在线看| 欧美又大粗又爽又黄大片视频| 国产91在线播放九色快色| 国产精品夜色7777狼人| 日韩电影免费在线观看中文字幕| 久久久久久尹人网香蕉| 久久天天躁夜夜躁狠狠躁2022| 久久精品色欧美aⅴ一区二区| 97av在线播放| 91亚洲精华国产精华| 久久噜噜噜精品国产亚洲综合| 欧美专区第一页| 欧美精品一本久久男人的天堂| 欧美xxxx18国产| 色噜噜国产精品视频一区二区| 久久激情视频久久| 久久久久久91香蕉国产| 国产精品久久久久久中文字| 国产精品情侣自拍| 国产精品一区二区三区免费视频| 这里只有精品视频在线| 日韩视频在线观看免费| 亚洲精品久久久久国产|