第一篇:讓PHP程序員工作更高效(共)
讓PHP程序員工作更高效的四大神奇
做程序猿「媛」是一個(gè)苦逼的活,大周六地早起在技術(shù)群里招呼,看到?jīng)]有啥人響應(yīng),說(shuō)了一句,「估計(jì)都沒(méi)有醒」,然后一位哥們拋過(guò)來(lái),「在加班」!做 Web 開(kāi)發(fā)更是一個(gè)苦逼的活,不像是做 iOS,搞定客戶(hù)端,基本上就萬(wàn)事大吉了。做 Web 開(kāi)發(fā)不僅僅是要做后端,前端也需要了解和熟悉!
做前后端通吃的 DevOps 全棧工程師絕對(duì)是最苦逼的活,不但需要做開(kāi)發(fā),而且還要了解運(yùn)維、優(yōu)化,不會(huì)運(yùn)維的工程師絕對(duì)不是一個(gè)好架構(gòu)師!
但所幸的事,一個(gè)優(yōu)秀的工程師盡管很忙,盡管要熟悉前后端、系統(tǒng)、運(yùn)營(yíng)、優(yōu)化,但是在他的工具箱里,放著一大堆工具,讓這種生活變得不那么苦逼。這里就介紹四個(gè)讓我們 DevOps 生活變得美好的神器。分別是 Xdebug、XHProf、OneAPM 和 SocketLog。Xdebug
作為開(kāi)發(fā)人員,睡得最踏實(shí)的事是對(duì)自己寫(xiě)的代碼了如指掌,無(wú)論是從功能層面,還是性能層面。而做 Web PHP 開(kāi)發(fā),比較棘手的一件事情就是代碼的調(diào)試。作為腳本語(yǔ)言,在遠(yuǎn)程服務(wù)器端運(yùn)行,客戶(hù)端生成的全是 HTML 代碼,一般認(rèn)為我們無(wú)法準(zhǔn)確地調(diào)試運(yùn)行的情況,更不要說(shuō)單步調(diào)試、變量監(jiān)控等事情了。其實(shí)這是有誤解的,有一個(gè) PHP 擴(kuò)展 Xdebug 能讓方便地讓我們調(diào)試遠(yuǎn)程服務(wù)器上運(yùn)行的代碼。
方法很簡(jiǎn)單,從 Xdebug 下載最新版的源代碼。wget 解壓:
tar –zxvf xdebug-2.3.3.tgz cd xdebug-2.3.3 phpize./configure –with-php-config=/usr/bin/php-config make make install
再增加相應(yīng)的配置到 php.ini,需要注意有兩點(diǎn):
1.xdebug 是 zend_extension 2.端口默認(rèn)是 9000,和 php-fpm 的缺省端口沖突,所以這里換用 9100 [xdebug] zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9100
這樣就裝好了,就是如此簡(jiǎn)單,下面我們可以開(kāi)始使用了。以 ThinkPHP 應(yīng)用開(kāi)發(fā)做例子吧。ThinkPHP 典型的單入口應(yīng)用,調(diào)用層次相對(duì)復(fù)雜。所以想要了解調(diào)用堆棧還是比較麻煩的。要想得到某一行的調(diào)用堆棧,可以使用 PHP 自帶的 debug_backtrace 函數(shù)可以獲得,但是不怎么形象,返回來(lái)一個(gè)數(shù)組而已。而 Xdebug 就能讓這一切可視化起來(lái)。
配合 Xdebug 使用的是 Netbeans 自帶的調(diào)試工具。首先通過(guò)首選項(xiàng)修改了一下 PHP 調(diào)試的端口,從9000改成9100,其他不用動(dòng)。注意 在第一行停止 是選上的,這將在 PHP 程序調(diào)試時(shí),運(yùn)行到第一行 PHP 代碼時(shí)停止,在 ThinkPHP 中,即入口文件 index.php 的第一行停止。
在本例中,筆者做了一個(gè)租車(chē)管理系統(tǒng)的示例,項(xiàng)目名為 zuches。將代碼部署在 http://localhost/zuches 能訪(fǎng)問(wèn)的地方,索引文件是 index.php。
由于 index.php 是入口文件,所以在 index.php 上點(diǎn)擊右鍵,選擇調(diào)試。
然后 Netbeans 自動(dòng)打開(kāi)了如下地址,進(jìn)入調(diào)試狀態(tài) : http://localhost/zuches/index.php?XDEBUG_SESSION_START=netbeans-xdebug 同時(shí)運(yùn)行位置指示停留到了 index.php 的第一行。如下:
點(diǎn)擊繼續(xù)運(yùn)行,由于在 IndexController.class.php 的 index 方法中加上了斷點(diǎn),所以位置指示又停留在了相應(yīng)的斷點(diǎn)處。
這個(gè)時(shí)候,我們可以查看中斷時(shí)候的調(diào)用堆棧和變量了。通過(guò)堆??梢苑奖愕囟ㄎ坏礁鞫ㄎ坏念?lèi)和相應(yīng)方法。
各種變量,無(wú)論是局部變量和實(shí)例屬性,無(wú)論是 cookie,還是提交數(shù)據(jù),都能在變量表中看到,一目了然。
總之,Xdebug 讓我們即使做的是服務(wù)器端頁(yè)面和 API 開(kāi)發(fā),也可以像桌面應(yīng)用開(kāi)發(fā)一樣,調(diào)試每一行代碼了。
Xdebug 除了使用來(lái)進(jìn)行單步調(diào)試之外,還能收集請(qǐng)求中的執(zhí)行日志,記錄每一個(gè)函數(shù)的執(zhí)行過(guò)程。這些日志可以用 wincachegrind 等工具進(jìn)行分析,看到函數(shù)的調(diào)用棧和所花的時(shí)間。這里不再贅述,我們也不是很推薦,因?yàn)?XHProf 在這塊要輕量級(jí)和強(qiáng)大的多,不用如此費(fèi)勁地下載日志,分析日志。XHProf 如前文所述,對(duì)于 PHP 中函數(shù)調(diào)用棧和性能分析,XHProf 將 Xdebug 開(kāi)的先河繼承并發(fā)揚(yáng)光大。XHProf 也是 PHP 擴(kuò)展,不過(guò)不建議從 http://pecl.php.net/package/xhprof 上下載,版本已有近2年沒(méi)有更新了,最好從 https://github.com/phacility/xhprof 上下載。下載編譯配置和使用過(guò)程都很簡(jiǎn)單。配置只需要加上如下兩行:
``` [xhprof] extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xhprof.so 然后將要相應(yīng)的 XHProf 代碼配置到需要監(jiān)控的頁(yè)面中,即可以獲得整個(gè)頁(yè)面的執(zhí)行中,各函數(shù)的調(diào)用報(bào)表。XHProf 提供了示例,配置成功運(yùn)行如下:
如何看到上面圖中的效果呢?將 examples、xhprof_html、xhprof_lib 三個(gè)目錄放到瀏覽器能訪(fǎng)問(wèn)到的地方,比如 localhost 的主目錄內(nèi)。修改 examples/sample.php 中的
然后訪(fǎng)問(wèn) http://localhost/examples/sample.php 即可以得到輸出結(jié)果如下:
從 examples/sample.php 中可以看到,對(duì)于頁(yè)面的監(jiān)測(cè)分析,在頁(yè)面頂部使用 xhprof_enable 開(kāi)始,而性能的分析的結(jié)束,則是在頁(yè)面底部使用 xhprof_disable 結(jié)束。這樣每次監(jiān)控,都需要增加一段代碼,所以為了規(guī)范起見(jiàn)。對(duì) XHProf 相關(guān)的操作進(jìn)行了封裝。繼續(xù)采用上例 ThinkPHP 版租車(chē)系統(tǒng)的例子,看看如何集成 XHProf 分析。首先將對(duì) XHProf 的操作封裝成了一個(gè)類(lèi)。
save_run($xhprof_data, $profiler_namespace);$profiler_url = sprintf('http://'.$_SERVER['HTTP_HOST'].'/xhprof_html/index.php? run=%s&source=%s', $run_id, $profiler_namespace);echo '
';} }在這個(gè)封裝的類(lèi)中,首先檢測(cè)了 xhprof_enable 函數(shù)是否存在,這可以用于判斷是否成功安裝配置了 xhprof 擴(kuò)展。其次設(shè)置了參數(shù),特別值得一提的是使用函數(shù) register_shutdown_function 來(lái)注冊(cè)一個(gè)操作,這個(gè)操作在頁(yè)面結(jié)束之前,會(huì)自動(dòng)運(yùn)行。這樣,在分析頁(yè)面性能之時(shí),只需要在 ThinkPHP 應(yīng)用的 index.php 上加上兩行,即可以了。比如:
require_once ”xhprof.php“;XHProf::init(”zuches");
運(yùn)行后,得到如下效果:
并且每一個(gè)頁(yè)面,都有這樣的輸出。點(diǎn)擊「Profiler output」即得到了報(bào)表。
在本例中,可以看到最后的集成方法,運(yùn)行時(shí)間超過(guò)了2 S,是值得關(guān)注并優(yōu)化了。從報(bào)表中,可以首先看到各個(gè)方法或者函數(shù)的調(diào)用次數(shù),運(yùn)行時(shí)間,以及可以層層點(diǎn)進(jìn)去看到父子層級(jí)的調(diào)用關(guān)系。
需要注意的是,在線(xiàn)上,如上使用 XHProf 要慎重,即使打開(kāi),也要有限制條件地打開(kāi),比如當(dāng)前用戶(hù)是某些調(diào)試開(kāi)發(fā)者用戶(hù)時(shí)才打開(kāi)。否則,普通用戶(hù)看到這樣的輸出,則不明所以,給用戶(hù)帶來(lái)困惑,當(dāng) 然,我們也可以不輸出,而將數(shù)據(jù)直接存儲(chǔ),在后臺(tái)系統(tǒng)中查看,這樣用戶(hù)就感受不到了。有一個(gè)工具,可以完全消除這些糾結(jié)。那就是 OneAPM,在第四部分我們?cè)俳榻B。SocketLog
作為程序員,除了新功能開(kāi)發(fā)之外,最常見(jiàn)的一個(gè)工作就是查錯(cuò),尤其是遠(yuǎn)程用戶(hù)的查錯(cuò),還是一個(gè)很痛苦的過(guò)程。當(dāng)前又加上了微信開(kāi)發(fā),API 開(kāi)發(fā)等操作。對(duì)于微信內(nèi)、API 由遠(yuǎn)程用戶(hù)所調(diào)用的時(shí)候,情況多變,查錯(cuò)也更加地麻煩。這個(gè)時(shí)候,我們的第三個(gè)神器登場(chǎng)了。那就是 SocketLog。
SocketLog 是國(guó)內(nèi)知名 PHP 開(kāi)發(fā)者羅飛的作品,羅飛是 ThinkPHP 的核心開(kāi)發(fā)者,也是優(yōu)才學(xué)院全棧工程師主力講師。現(xiàn)任三生社群 CTO。SocketLog 的 github 地址為: https://github.com/luofei614/SocketLog,在項(xiàng)目的主頁(yè)上,詳細(xì)地介紹了用法和所用的技術(shù)。這里簡(jiǎn)單地匯總講解一下。
SocketLog 的使用,主要要分成三個(gè)步驟,第一步是安裝 Chrome 插件??梢詮?github 下載的安裝包中去安裝,或者可以從 Chrome 應(yīng)用商店下載。第二步是需要啟動(dòng) Socket 服務(wù),Socket 服務(wù)是 WebSocket 協(xié)議的,早期版本是 PHP 編寫(xiě)的服務(wù)器,新的版本已經(jīng)使用 Node.js 來(lái)實(shí)現(xiàn)了。啟動(dòng)方法很簡(jiǎn)單,進(jìn)入解壓后的目錄。執(zhí)行 node server/index.js 即可。
安裝好插件之后,就在 Chrome 上看到如下圖標(biāo)?;疑硎緵](méi)有連接上。
同時(shí)啟動(dòng)了服務(wù)器,做好設(shè)置,就會(huì)看到圖標(biāo)變成藍(lán)色了。
需要注意的是,盡管我們這里監(jiān)聽(tīng)地址配置成了本地地址,其實(shí)也可以配置遠(yuǎn)程地址。不過(guò)遠(yuǎn)程地址的話(huà)記得打開(kāi)服務(wù)器上的防火墻,因?yàn)橐话?229端口在防火墻中是關(guān)閉的。SocketLog 的原理,是在服務(wù)器端,往 WebSocket 服務(wù)器上寫(xiě)數(shù)據(jù),作為客戶(hù)端的 Chrome 插件,即能收到數(shù)據(jù)。所以不管是遠(yuǎn)程 API 調(diào)用,還是網(wǎng)頁(yè)訪(fǎng)問(wèn),只要在程序中往這個(gè) WebSocket 服務(wù)器寫(xiě)了數(shù)據(jù),只要監(jiān)聽(tīng)了這個(gè) Websocket 服務(wù)的客戶(hù)端都能收到相應(yīng)的調(diào)試日志。
第三步是埋代碼。使用方法也很簡(jiǎn)單。比如我們?cè)谏厦娴?ThinkPHP 的 index.php 加入兩行代碼。會(huì)看到如下輸出。
然后我們?cè)谄渌K端上也訪(fǎng)問(wèn)一下這臺(tái)機(jī)器的這個(gè)頁(yè)面地址,看看是否能得到輸出呢?開(kāi)始沒(méi)有任何輸出效果。因?yàn)槿笔∏闆r下是不記錄普通用戶(hù)所調(diào)用的 slog 的。在 slog 之上的語(yǔ)句加上這一行,就有了。
slog(array('force_client_id'=>'test'),'set_config');
Test 這個(gè)插件的用戶(hù),收到了所有的 slog 消息。如下圖所示:
并且這種輸出,無(wú)論是別的用戶(hù)觸發(fā),而還后臺(tái)服務(wù)程序,均可以輸出。所以非常地方便,開(kāi)發(fā)人員在自己的機(jī)器上就收集到了想要收集的用戶(hù)所觸發(fā)的調(diào)試信息。
然后為了體現(xiàn)對(duì) SQL 語(yǔ)句的監(jiān)聽(tīng)。我們?cè)?ThinkPHP/Library/Think/Db/Driver.class.php 的第1139行加上 slog($str),然后再訪(fǎng)問(wèn)頁(yè)面,就得到了如下輸出,可見(jiàn)實(shí)現(xiàn)了對(duì) SQL 日志的監(jiān)控。
SocketLog 的功能看起來(lái)雖然簡(jiǎn)單,但是卻非常有用、好用,是不可多得的開(kāi)發(fā)神器。有關(guān) SocketLog 的更多介紹和使用說(shuō)明,建議現(xiàn)在就立刻下載,并且進(jìn)入 github 主頁(yè)好好地研究吧!OneAPM
從上面的使用來(lái)看,SocketLog 和 XHProf 都有兩個(gè)不足之處,一是需要埋代碼,二是只是基于單獨(dú)一個(gè)頁(yè)面會(huì)話(huà)的。而 OneAPM 相對(duì)來(lái)講,就更強(qiáng)大了,可以理解為云端 SaaS 版的 XHProf 和更強(qiáng)大的 SocketLog。不過(guò)有著更為強(qiáng)大的優(yōu)勢(shì)。比如: OneAPM 的 PHP 探針,安裝完成之后,并不需要在代碼中埋入任何代碼。
在數(shù)據(jù)收集的過(guò)程中,不需要開(kāi)發(fā)和運(yùn)維的參與,探針全自動(dòng)收集,并提交到遠(yuǎn)程服務(wù)器。由于數(shù)據(jù)累積,所以支持歷史報(bào)表,以及比 XHProf 和 SocketLog 更豐富的功能。
PHP 只是 OneAPM 所支持的一種語(yǔ)言,它可以支持多種語(yǔ)言,HTML5、iOS、Android、Java、.NET、python、Node.js、PHP、ruby 等。
OneAPM 的安裝過(guò)程也比較簡(jiǎn)單,不過(guò)由于是 SaaS 服務(wù),所以得上官網(wǎng)注冊(cè)一個(gè)賬號(hào)。登錄了之后,在應(yīng)用程序里,點(diǎn)擊添加,再選中 PHP,就進(jìn)入了安裝探針的說(shuō)明。
分為如下幾步: 1.獲取授權(quán)編號(hào)
OneAPM 授權(quán)憑證,用于配置和身份識(shí)別。2.下載 OneAPM PHP agent 安裝程序 3.解壓 OneAPM PHP Agent
tar-xzf OneAPM_php_Agent_2.3.11.tar.gz
4.安裝 OneAPM PHP Agent 定位路徑至您的安裝包所在文件夾 cd oneapm-php5-linux-install-script 執(zhí)行安裝命令
sudo./oneapm-install install 5.輸入 License Key 請(qǐng)點(diǎn)擊步驟1中的「生成授權(quán)編號(hào)按鈕」成功安裝,界面如下:
若出現(xiàn)以下信息,則代表安裝成功。
OneAPM is now installed on your system.Congratulations!
當(dāng)頁(yè)面出現(xiàn)以下提示時(shí),啟動(dòng) Daemon And then start php-agent in /usr/bin/oneapm-daemon
運(yùn)行以下指令來(lái)啟動(dòng) Daemon sudo /usr/bin/oneapm-daemon
重啟 Apache 或你使用的 web 調(diào)度程序 「如 php-fpm 」 6.靜候5分鐘,開(kāi)啟 OneAPM 之旅 靜候5分鐘,等待應(yīng)用程序向 OneAPM 發(fā)送應(yīng)用程序性能數(shù)據(jù),即可開(kāi)始使用 OneAPM 應(yīng)用性能管理。
OneAPM 收集的數(shù)據(jù)很豐富。將收集的響應(yīng)時(shí)間數(shù)據(jù),分為四個(gè)大塊: Web 事務(wù),就是頁(yè)面業(yè)務(wù)邏輯本身 數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的連接和數(shù)據(jù)讀取
錯(cuò)誤統(tǒng)計(jì),對(duì)所有類(lèi)型的錯(cuò)誤做了歸類(lèi)統(tǒng)計(jì) 外部服務(wù),即外部 API 等的設(shè)備
以筆者的站點(diǎn)為例,12小時(shí)的數(shù)據(jù)如下圖:
從上面這個(gè)圖,我們看到響應(yīng)時(shí)間,慢的達(dá)到了600 ms 以上,那是什么導(dǎo)致的呢?我們可以分別查看:
可見(jiàn) Web 事務(wù)比較穩(wěn)定,可以比較清楚地看到平均的響應(yīng)時(shí)間在 50ms-75ms之間。
數(shù)據(jù)庫(kù)響應(yīng)時(shí)間也很短,在幾 ms 這個(gè)級(jí)別。而外部服務(wù)就明顯在幾百 ms 這個(gè)級(jí)別,還有的高達(dá) 600 ms。
不說(shuō)別的,就通過(guò)這簡(jiǎn)單的報(bào)表,從目前看,就可以定位到,想要做優(yōu)化,從外部服務(wù)的響應(yīng)時(shí)間上下手優(yōu)化,帶來(lái)的效果是最大的。
下面我們?cè)賮?lái)看看三個(gè)細(xì)化一層的報(bào)表,在 Web 事務(wù)統(tǒng)計(jì)中,盡管平均數(shù)很低,但是也列出了響應(yīng)時(shí)間最長(zhǎng)的5個(gè)請(qǐng)求。如下:
從上面的數(shù)據(jù)可以看出,響應(yīng)時(shí)間最長(zhǎng)的幾個(gè),主要突出在 bind.php,這個(gè)是負(fù)責(zé) QQ 登錄的請(qǐng)求,需要向騰訊請(qǐng)求數(shù)據(jù)。
而在數(shù)據(jù)庫(kù)一欄中,可以看到最慢的5個(gè)表格的情況。
在外部的服務(wù)中,果不出所料,是對(duì)微博、微信、QQ 登錄、七牛上傳、支付寶通知等外部服務(wù),所占時(shí)間最長(zhǎng)。如下圖所示。
這只是普通的統(tǒng)計(jì)報(bào)表,對(duì)于具體的某一個(gè)慢的頁(yè)面,更有詳細(xì)的調(diào)用分析。
比如上面的 bind.php,果真最慢的是從網(wǎng)絡(luò)上獲取數(shù)據(jù)。也就是說(shuō),第三方登錄時(shí),從第三方網(wǎng)站取數(shù)據(jù)花了絕大部分時(shí)間。去查看詳情,有兩個(gè)不足之處,一是需要埋代碼,二是只是基于單獨(dú)一個(gè)頁(yè)面會(huì)話(huà)的。而 OneAPM 稱(chēng)為慢事務(wù)追蹤,拉到頁(yè)面的最底部就能看到。
在后臺(tái)報(bào)表中,我們同樣也能看到是哪些 SQL 語(yǔ)句慢。比如如下是 bind.php 中慢的 SQL 語(yǔ)句。
更為重要的是,還有所有錯(cuò)誤信息的收集,也一目了然。
所以無(wú)論從功能之強(qiáng)大,還是易用之方便,有兩個(gè)不足之處,一是需要埋代碼,二是只是基于單獨(dú)一個(gè)頁(yè)面會(huì)話(huà)的。而 OneAPM 不愧是商業(yè)化的 SaaS 服務(wù),比 XHProf 勝去了不少。在筆者的項(xiàng)目中,已經(jīng)大量使用。并取得了好的效果。
以上四個(gè)項(xiàng)目,讓我們對(duì)自己所寫(xiě)的代碼,更加成竹在胸,無(wú)論是執(zhí)行過(guò)程還是調(diào)優(yōu)著手了都有了充分的把握。特意對(duì)比,匯總整理的這四大神器,希望它們能改善每一位 PHP 開(kāi)發(fā)者的生活,讓我們的 PHP 開(kāi)發(fā)不再那么地苦逼!【編輯推薦】
技術(shù)人必讀:從編程到管理——程序員的晉升之路
程序員學(xué)會(huì)八大開(kāi)發(fā)技巧 漲薪不是問(wèn)題
程序員分享接私活心得 曬曬私活成果
免費(fèi)IDE編輯器才是Java程序員的最?lèi)?ài)
程序員都應(yīng)該學(xué)寫(xiě)“規(guī)范”的代碼
第二篇:PHP程序員
**的個(gè)人簡(jiǎn)歷
個(gè)人資料
姓名: **電子郵件: ******@qq.com
名族: 漢出生日期: 1991/1/3
學(xué)歷: 本科居住地址: 深圳福田
性別: 男手機(jī)號(hào)碼: 186***7739
4求職意向
到崗時(shí)間:即時(shí)
期望職位:php程序員
工作性質(zhì):全職
專(zhuān)業(yè)技能
1、熟練掌握PHP,HTML,DIV+CSS,Javascript,Ajax,jQuery等Web開(kāi)發(fā)技術(shù)。
2、熟練使用PDO、MySQL方式操作MySQL數(shù)據(jù)庫(kù)系統(tǒng),熟悉MySQL事物及存儲(chǔ)過(guò)程。
3、熟悉HTML,DIV+CSS前臺(tái)頁(yè)面技術(shù)和XML的使用。
4、熟悉網(wǎng)頁(yè)靜態(tài)化、Smarty緩存,thinkPHP緩存,掌握Web防SQL注入。
5、孰悉MVC架構(gòu)開(kāi)發(fā)思想模式,熟練使用Smarty模板,ThinkPHP框架,ZendFramework框架。
6、熟練掌握Z(yǔ)end Studio, Dreamweaver,Notepad++, EclipsePHP等常用Web開(kāi)發(fā)工具;
7、了解Linux基本操作。
項(xiàng)目經(jīng)驗(yàn)? 項(xiàng)目一
項(xiàng)目名稱(chēng):地球新聞網(wǎng)
軟件環(huán)境:
開(kāi)發(fā)工具:
項(xiàng)目描述: linux+apache+mysql+php Zend Studio 1.該項(xiàng)目是一個(gè)集各種新聞的網(wǎng)站。2.前臺(tái)采用div+css,javascript等
技術(shù)進(jìn)行頁(yè)面布局,Javascript和Jquery技術(shù)制作下拉菜單、表單驗(yàn)證、復(fù)選框等效果。3.后臺(tái)采用全面向?qū)ο箝_(kāi)發(fā),良好的運(yùn)用了MVC三層架
構(gòu)模式。
責(zé)任描述:獨(dú)立開(kāi)發(fā)
項(xiàng)目體會(huì):通過(guò)開(kāi)發(fā)這次項(xiàng)目,使我對(duì)制作一個(gè)網(wǎng)站有了一個(gè)全面的了解,也同時(shí)增
加了我的技術(shù)能力;通過(guò)該網(wǎng)站使我了解只有想不到,沒(méi)有做不到。同時(shí)
也想到在這個(gè)發(fā)展迅速的社會(huì),我們只有不斷努力學(xué)習(xí)新的技術(shù)才能滿(mǎn)足
客戶(hù)的要求。
? 項(xiàng)目二
項(xiàng)目名稱(chēng):聚焦購(gòu)物商城
軟件環(huán)境:
開(kāi)發(fā)工具:
項(xiàng)目描述: windows+apache+mysql+php Zend Studio 8.0 該項(xiàng)目是一個(gè)大型的網(wǎng)站商城,采用thinkPHP主流框架開(kāi)發(fā)。
前臺(tái)包括:商品列表、搜索、商品詳細(xì)頁(yè)、注冊(cè)、登錄、購(gòu)物車(chē)、會(huì)員
中心、評(píng)論等。后臺(tái)有:商品管理、訂單管理、會(huì)員管理、商家管理等。
滿(mǎn)足用戶(hù)購(gòu)物流程的各種需求
責(zé)任描述: 負(fù)責(zé)完成了MySQL數(shù)據(jù)表、字段、索引的分析與創(chuàng)建,主頁(yè)的圖片輪換,商品詳細(xì)
頁(yè),購(gòu)物車(chē)模塊,登錄注冊(cè)等功能,以及后臺(tái)商品管理模塊。
項(xiàng)目體會(huì):通過(guò)此次項(xiàng)目的實(shí)戰(zhàn),讓我對(duì)thinkPHP的掌握更加深刻,同時(shí)給我感覺(jué)的是使用模板的開(kāi)發(fā)速度之快,更實(shí)現(xiàn)的HTML的代碼與PHP代碼的分
離,使得擁有更好的擴(kuò)展以及維護(hù)。
工作經(jīng)驗(yàn)
2012/8—2013/4業(yè)聚醫(yī)療器械(深圳)有限公司技術(shù)員 工作感想
之前的公司主要是生產(chǎn)和研發(fā)介入性醫(yī)療器械的一家公司,我的工作任務(wù)主要從事公司導(dǎo)管支架的研發(fā),研發(fā)多種不同尺寸型號(hào)的球囊擴(kuò)張導(dǎo)管。在我的工作中,使我學(xué)到了很多東西,讓我變得更加細(xì)心,做事情更加注重細(xì)節(jié),更有時(shí)間觀念等等。
教育經(jīng)歷
? 2013/4—2013/8達(dá)內(nèi)PHP培訓(xùn)php程序員主要學(xué)習(xí)了:linux系統(tǒng)常用操作命令,HTML/CSS,Javascript/Jquery/Ajax的前臺(tái)技術(shù),學(xué)習(xí)了用Linux系統(tǒng)和Windows系統(tǒng)開(kāi)發(fā)項(xiàng)目,學(xué)習(xí)了Smarty模板,Zendframework,thinkPHP框架的使用,學(xué)習(xí)了DEDECMS二次開(kāi)發(fā)。
在學(xué)習(xí)的過(guò)程中,自己獨(dú)立完成了一個(gè)小項(xiàng)目《地球新聞網(wǎng)》,和同學(xué)合作完
成了一個(gè)商城網(wǎng)站《聚焦購(gòu)物》,通過(guò)這兩個(gè)項(xiàng)目的實(shí)戰(zhàn),為我以后的工作打
下了堅(jiān)實(shí)的基礎(chǔ)。
? 2008/9—2012/7湖北信息工程專(zhuān)修學(xué)院電子商務(wù)本科主要學(xué)習(xí)了:計(jì)算機(jī)應(yīng)用基礎(chǔ),管理學(xué),電子商務(wù)概論,網(wǎng)頁(yè)設(shè)計(jì)與制作,電子商務(wù)法,商務(wù)溝通與談判及商業(yè)職業(yè)道德專(zhuān)業(yè)課程,安全教育等課程。
通過(guò)這些課程的學(xué)習(xí),使我對(duì)電子商務(wù)系統(tǒng)建設(shè)與管理打下了良好的基礎(chǔ),同時(shí)也使我擁有較強(qiáng)的溝通能力和職業(yè)道德水準(zhǔn)。
個(gè)人評(píng)價(jià) 1.本人細(xì)心,樂(lè)觀積極心態(tài),吃苦耐勞,勇于挑戰(zhàn)自我,熱愛(ài)學(xué)習(xí),喜歡總結(jié);
2.具備良好的團(tuán)隊(duì)精神,能很好的與團(tuán)隊(duì)協(xié)作開(kāi)發(fā),有良好的溝通能力,喜歡交朋友;
3.性格開(kāi)朗,陽(yáng)光,喜歡籃球,游泳,羽毛球等體育運(yùn)動(dòng)。
第三篇:PHP程序員面試題
北京融入網(wǎng)絡(luò)科技有限公司
PHP工程師面試題
1、請(qǐng)寫(xiě)一個(gè)實(shí)現(xiàn)中文字串截取無(wú)亂碼的方法。(超出部分用’…..’替換)。
2、ThinkPHP框架中,下列定義有什么不同?
$userModel = M(“User”);
$userMode l= D(“User”);
3、如果讓你模擬登陸微信公眾平臺(tái)并設(shè)置微信的開(kāi)發(fā)模式中的URL和Token,你會(huì)如何去做?(思路或代碼皆可)。
4、談?wù)剬?duì)你對(duì)PHP的認(rèn)識(shí)或你擅長(zhǎng)的技術(shù)。
5、假設(shè)有一個(gè)博客系統(tǒng),數(shù)據(jù)庫(kù)存儲(chǔ)采用mysql,用戶(hù)數(shù)量為1000萬(wàn),預(yù)計(jì)文章總數(shù)為10億,每天有至少10萬(wàn)的更新量,每天訪(fǎng)問(wèn)量為5000萬(wàn),對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)操作的比例超過(guò)10:1,你如何設(shè)計(jì)該系統(tǒng),以確保其系統(tǒng)高效,穩(wěn)定的運(yùn)行?
提示:可以從數(shù)據(jù)庫(kù)設(shè)計(jì),系統(tǒng)框架,及網(wǎng)絡(luò)架構(gòu)方面進(jìn)行描述,可以自由發(fā)揮。
6、你經(jīng)常去那些網(wǎng)站?有沒(méi)有自己的博客或git 開(kāi)源項(xiàng)目。
/ 1
第四篇:php程序員個(gè)人簡(jiǎn)歷
PHP 程序員簡(jiǎn)歷
基 本 信 息 姓 年 名: 齡: Xxx 21 Xxxx 性 學(xué) 別: 歷: 男 專(zhuān)科 PHP 程序員xxx@163.com 畢業(yè)院校: 電 話(huà):
期望職位: 郵箱地址:
專(zhuān) 業(yè) 技 能 核心語(yǔ)言: 核心語(yǔ)言: 熟練應(yīng)用 PHP+MySQL 技術(shù),能在 WAMP 環(huán)境下熟練編程。理解對(duì)于 Web 網(wǎng)站開(kāi)發(fā)的安全性 安全性要求,例如防 SQL 注射、令牌加密 注射、令牌加密等技術(shù)。安全性 防 理解 Web 開(kāi)發(fā)流程,具有 OO 思想,能獨(dú)立開(kāi)發(fā)網(wǎng)站。框架技術(shù): 框架技術(shù): 熟練使用 smarty 模板引擎技術(shù), TP 框架開(kāi)發(fā)網(wǎng)站。對(duì)三層結(jié)構(gòu)、MVC 的開(kāi)發(fā)(設(shè)計(jì)模式)有較好的理解。MVC 數(shù) 據(jù) 庫(kù): 熟練應(yīng)用 MySQL SQL Server2005 數(shù)據(jù)庫(kù),以及使用 SQL 語(yǔ)言 MySQL、SQL Server2005 語(yǔ)言。前臺(tái)展現(xiàn): 前臺(tái)展現(xiàn): 熟識(shí) HTML、XHTML 網(wǎng)頁(yè)技術(shù),能熟練應(yīng)用 DIV+CSS 樣式布局設(shè)計(jì)出符合 Web2.0的頁(yè)面,熟練應(yīng)用JavaScript、Ajax 技術(shù)實(shí)現(xiàn)對(duì)于客戶(hù)端的腳本驗(yàn)證,能夠 熟練使用Jquery類(lèi)庫(kù) 類(lèi)庫(kù)實(shí)現(xiàn)對(duì)頁(yè)面即點(diǎn)即改等功能。類(lèi)庫(kù) 開(kāi)發(fā)工具: 開(kāi)發(fā)工具: 能夠使用 ZendStudio-5.5.0 等 PHP 開(kāi)發(fā)工具。掌握 PhotpShop、Dreamweaver 網(wǎng)頁(yè)開(kāi)發(fā)工具的使用。熟悉 php168,Ecshop 二次開(kāi)發(fā)工具的使用。
項(xiàng) 目 經(jīng) 驗(yàn) 人事管理系統(tǒng) 應(yīng)用程序)人事管理系統(tǒng)(應(yīng)用程序)軟件環(huán)境: 編程工具: 責(zé)任描述: WAMP EditPlus 組內(nèi)討論需求分析以及數(shù)據(jù)建模,功能獨(dú)立開(kāi)發(fā)完成 無(wú)論對(duì)于大型公司,中小型公司,都避免不了對(duì)員工的管理,對(duì)于每個(gè)公司的管理者,在任何方面都需要一個(gè)既提供標(biāo)準(zhǔn)有提供管理的系統(tǒng);對(duì)于公司的員工也希望能夠了解 項(xiàng)目描述: 自己的表現(xiàn)及在公司的職位、職責(zé); 讓公司 對(duì)員工的管理更方便,通過(guò)本系統(tǒng)能有效地管理工資發(fā)放、員工的考勤動(dòng)態(tài) 還可實(shí)現(xiàn)員工的自我查看和管理;以提高公司的執(zhí)行效率和經(jīng)濟(jì)效益。該項(xiàng)目主要應(yīng)用了 smarty + Ajax 等技術(shù)由于 php 是一種弱的語(yǔ)言,并不能實(shí)現(xiàn)面向?qū)?項(xiàng)目感想: 象的多態(tài)(重載),所以只是用到了面向?qū)ο蟮木幊趟枷?。在開(kāi)發(fā)的過(guò)程中也使我更加熟悉
基于 Smarty + CMS 的開(kāi)發(fā)模式。天元茶葉網(wǎng)(二次開(kāi)發(fā))天元茶葉網(wǎng)(168 二次開(kāi)發(fā))軟件環(huán)境: 開(kāi)發(fā)工具: WAMP ZendStudio-5.5.0
第五篇:PHP程序員簡(jiǎn)歷參考
姓 名 代林
手機(jī):*** ·Email: linlinpusd@sina.com 居住地: 上海市閘北區(qū) ·性別:男 ·出生日期:01·01
個(gè)人概況
畢業(yè)院校:海南經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院
專(zhuān) 業(yè):電子商務(wù)
學(xué) 歷:大專(zhuān)
期望職位:PHP程序員
項(xiàng)目經(jīng)驗(yàn):基于Apache下電子商務(wù)購(gòu)物Estore系統(tǒng)、中小型企業(yè)及團(tuán)體餐飲訂餐系統(tǒng)、基于Ajax的網(wǎng)頁(yè)聊天工具
專(zhuān)業(yè)技術(shù) 核心語(yǔ)言:
在windows和linux環(huán)境下,熟練安裝Apache、MySQL,熟練配置好解析php的環(huán)境。
熟練應(yīng)用PHP+`MySQL技術(shù),能在LAMP環(huán)境下熟練編程。
理解對(duì)于Web網(wǎng)站開(kāi)發(fā)的安全性要求,例如防SQL注射、令牌加密等技術(shù)。理解Web開(kāi)發(fā)流程,具有OO思想,能獨(dú)立開(kāi)發(fā)網(wǎng)站??蚣芗夹g(shù):
熟練使用smarty模板引擎技術(shù), TP框架開(kāi)發(fā)網(wǎng)站。
對(duì)三層結(jié)構(gòu)、MVC的開(kāi)發(fā)(設(shè)計(jì)模式)有較好的理解。數(shù) 據(jù) 庫(kù):
熟練應(yīng)用MySQL、SQL Server2005數(shù)據(jù)庫(kù),以及使用SQL語(yǔ)言。前臺(tái)展現(xiàn):
熟識(shí) HTML、XHTML 網(wǎng)頁(yè)技術(shù),能熟練應(yīng)用 DIV+CSS 樣式布局設(shè)計(jì)出符合Web2.0的頁(yè)面,熟練應(yīng)用JavaScript、Ajax 技術(shù)實(shí)現(xiàn)對(duì)于客戶(hù)端的腳本驗(yàn)證,能夠熟練使用Jquery類(lèi)庫(kù)實(shí)現(xiàn)對(duì)頁(yè)面即點(diǎn)即改等功能。開(kāi)發(fā)工具:
能夠使用ZendStudio-5.5.0等PHP開(kāi)發(fā)工具。
掌握PhotpShop、Dreamweaver網(wǎng)頁(yè)開(kāi)發(fā)工具的使用。熟悉php168,Ecshop二次開(kāi)發(fā)工具的使用。
培訓(xùn)認(rèn)證:
2012年12月在杰普軟件培訓(xùn)公司進(jìn)行培訓(xùn),培訓(xùn)期間熟練掌握并運(yùn)用以下內(nèi)容
1.PHP基礎(chǔ)編程2.PHP高級(jí)編程3.mysql數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的增刪改查 4.mysql與php結(jié)合的數(shù)據(jù)庫(kù)高級(jí)編程5.Javascript的使用6.XML的使用7.Ajax的應(yīng)用8.cvs,數(shù)據(jù)的并發(fā)訪(fǎng)問(wèn)控制
項(xiàng)目經(jīng)驗(yàn):
Estore(購(gòu)物網(wǎng)站)
軟件環(huán)境: PHP+MYSQL+APACHE 開(kāi)發(fā)語(yǔ)言:JavaScript,html,css
編程工具: EditPlus 責(zé)任描述: 研究需求分析以及數(shù)據(jù)建模,功能獨(dú)立開(kāi)發(fā)完成
項(xiàng)目描述: 無(wú)論對(duì)于大型商務(wù)系統(tǒng),中小型系統(tǒng),都必須要有一個(gè)明確的主題思路,無(wú)論對(duì)于使用者還是管理者,在任何方面都需要一個(gè)既提供標(biāo)準(zhǔn)有提供管理的系統(tǒng);
該項(xiàng)目主要應(yīng)用了 smarty + javascript等技術(shù)由于php是一種弱的語(yǔ)言,并不能實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)(重載),所以只是用到了面向?qū)ο蟮木幊趟枷搿T陂_(kāi)發(fā)的過(guò)程中也使我更加熟悉基于Smarty + CMS的開(kāi)發(fā)模式。
餐飲管理(訂餐系統(tǒng))軟件環(huán)境:PHP+MYSQL+APACHE 開(kāi)發(fā)工具:ZendStudio-5.5.0
開(kāi)發(fā)語(yǔ)言:JavaScript,html,css
項(xiàng)目描述:建立一個(gè)完善的客戶(hù)管理系統(tǒng),通過(guò)不同用戶(hù)的不同需求,進(jìn)行相應(yīng)的調(diào)配和處理,提高對(duì)訂餐系統(tǒng)進(jìn)行配置、管理的便捷性。
責(zé)任描述:前期設(shè)計(jì)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中創(chuàng)建相關(guān)聯(lián)的表;實(shí)現(xiàn)模塊:用戶(hù)登錄,依據(jù)權(quán)限用戶(hù)對(duì)后臺(tái)操作,包括后臺(tái)管理用戶(hù)admin和普通用戶(hù)的編輯菜單,添加菜單,查看已付款定單,修改admin密碼,所有人員消費(fèi)記錄,查看充值記錄,查看未付款訂單,帳號(hào)充值。該項(xiàng)目是獨(dú)立完成的!
項(xiàng)目感想:通過(guò)對(duì)該系統(tǒng)的進(jìn)一步深入了解,發(fā)掘出該項(xiàng)目適合一些中小型企業(yè)項(xiàng)目的訂購(gòu)系統(tǒng)的開(kāi)發(fā)以及更深入的修改,對(duì)訂購(gòu)(訂餐)系統(tǒng)有了更深的了解和認(rèn)識(shí)!
根據(jù)客戶(hù)的需求,然后利用產(chǎn)品的內(nèi)核,進(jìn)行系統(tǒng)的擴(kuò)展和修改。
WEB聊天室構(gòu)建
軟件環(huán)境:PHP+MYSQL+APACHE 開(kāi)發(fā)語(yǔ)言:JavaScript,html,css
開(kāi)發(fā)工具:ZendStudio-5.5.0 項(xiàng)目描述:基于Ajax的web聊天室,用戶(hù)登錄成功后,顯示在線(xiàn)用戶(hù),并在同一頁(yè)面可以進(jìn)行聊天。
責(zé)任描述:設(shè)計(jì)注冊(cè)登錄頁(yè)面以及聊天室的主界面;利用ajax技術(shù)進(jìn)行對(duì)用戶(hù)名的即時(shí)驗(yàn)證;通過(guò)session保存用戶(hù)的用戶(hù)名,并更改用戶(hù)狀態(tài);用ajax,php與mysql的結(jié)合顯示在線(xiàn)用戶(hù);對(duì)聊天內(nèi)容的一些特殊字符的處理與顯示。
Ecshop二次開(kāi)發(fā)
軟件環(huán)境:PHP+MYSQL+APACHE 開(kāi)發(fā)工具:ZendStudio-5.5.0 項(xiàng)目感想: 對(duì)二次開(kāi)發(fā)又有了深入的了解,在開(kāi)發(fā)過(guò)程中熟悉了網(wǎng)上購(gòu)物的過(guò)程,購(gòu)物車(chē)的實(shí)現(xiàn)
開(kāi)發(fā)語(yǔ)言:JavaScript,html,css
自我評(píng)價(jià):
自信、樂(lè)觀、責(zé)任心強(qiáng)。具有較好的團(tuán)隊(duì)組織能力、分析問(wèn)題和宣傳策劃活動(dòng)能力、協(xié)調(diào)能力等。學(xué)習(xí)方面也有較強(qiáng)的求知欲與良好的學(xué)習(xí)能力。為人真誠(chéng),慣于換位思考;對(duì)自己要求嚴(yán)格,做事情講究效率;對(duì)程序的開(kāi)發(fā)及測(cè)試方面很感興趣;有較強(qiáng)的學(xué)習(xí)能力,適應(yīng)行業(yè)的要求和新技術(shù)的挑戰(zhàn);有較強(qiáng)的求知欲、較強(qiáng)的學(xué)習(xí)能力。