- 相關(guān)推薦
PHP程序員要掌握的知識(shí)點(diǎn)
體統(tǒng)掌握好每一個(gè)知識(shí)點(diǎn),在敲代碼的時(shí)候才會(huì)得心應(yīng)手。以下是百分網(wǎng)小編精心為大家整理的PHP程序員要掌握的知識(shí)點(diǎn),希望對(duì)大家有所幫助!更多內(nèi)容請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
一、web 架構(gòu),安全,項(xiàng)目經(jīng)驗(yàn)
2.1 介紹xdebug,apc,eAccelerator,Xcache,Zend opt的使用經(jīng)驗(yàn)。
2.2 使用mod_rewrite,在服務(wù)器上沒(méi)有/archivers/567.html這個(gè)物理文件時(shí),重定向到index.php?id=567 ,請(qǐng)先打開(kāi)mod_rewrite.
首先,打開(kāi)mod_rewrite模塊。
其次,http.conf找到以下代碼段:
Options FollowSymLinks
AllowOverride None
將其中的:AllowOverride None 改為 AllowOverride All ,重啟httpd服務(wù)即可。
然后,在項(xiàng)目根目錄下簡(jiǎn)歷 .htaccess 文件,填寫規(guī)則。
2.3 MySQL數(shù)據(jù)庫(kù)作發(fā)布系統(tǒng)的存儲(chǔ),一天五萬(wàn)條以上的增量,預(yù)計(jì)運(yùn)維三年,怎么優(yōu)化?
a. 設(shè)計(jì)良好的數(shù)據(jù)庫(kù)結(jié)構(gòu),允許部分?jǐn)?shù)據(jù)冗余,盡量避免join查詢,提高效率。
b. 選擇合適的表字段數(shù)據(jù)類型和存儲(chǔ)引擎,適當(dāng)?shù)奶砑铀饕?/p>
c. mysql庫(kù)主從讀寫分離。
d. 找規(guī)律分表,減少單表中的數(shù)據(jù)量提高查詢速度。
e。添加緩存機(jī)制,比如memcached,apc等。
f. 不經(jīng)常改動(dòng)的頁(yè)面,生成靜態(tài)頁(yè)面。
g. 書(shū)寫高效率的SQL。比如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.
2.4 寫出一種排序算法(原理),并說(shuō)出優(yōu)化它的方法。
2.5 請(qǐng)簡(jiǎn)單闡述您最得意的開(kāi)發(fā)之作
2.6 對(duì)于大流量的網(wǎng)站,您采用什么樣的方法來(lái)解決各頁(yè)面訪問(wèn)量統(tǒng)計(jì)問(wèn)題
a. 確認(rèn)服務(wù)器是否能支撐當(dāng)前訪問(wèn)量。
b. 優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)。參考2.3
c. 禁止外部訪問(wèn)鏈接(盜鏈), 比如圖片盜鏈。
d. 控制文件下載。
e. 使用不同主機(jī)分流。
f. 使用瀏覽統(tǒng)計(jì)軟件,了解訪問(wèn)量,有針對(duì)性的進(jìn)行優(yōu)化。
2.7 您是否用過(guò)模板引擎? 如果有您用的模板引擎的名字是?
Smarty
2.8 請(qǐng)介紹Session的原理,大型網(wǎng)站中Session方面應(yīng)注意什么?
2.9 測(cè)試php性能和mysql數(shù)據(jù)庫(kù)性能的工具,和找出瓶頸的方法。
2.10 正則提出一個(gè)網(wǎng)頁(yè)中的所有鏈接.
2.11 介紹一下常見(jiàn)的.SSO(單點(diǎn)登陸)方案(比如dedecms整合discuz的passport)的原理。
2.12 您寫過(guò)的PHP框架的特點(diǎn),主要解決什么問(wèn)題,與其他框架的不同點(diǎn)。
2.13 大型的論壇/新聞文章系統(tǒng)/SNS網(wǎng)站在性能優(yōu)化上有什么區(qū)別?
2.14 相冊(cè)類應(yīng)用:要求在瀏覽器中能同時(shí)選中并上傳多個(gè)文件,圖片要求能剪裁,壓縮包在服務(wù)器端解壓。能上傳單個(gè)達(dá)50M的文件。上傳過(guò)程中有進(jìn)度條顯示。每個(gè)圖片能生成四種大小縮略圖,視頻文件要轉(zhuǎn)成flv供flash播放。敘述要涉及的各類開(kāi)源軟件和簡(jiǎn)單用途。
一群猴子排成一圈,按1,2,…,n依次編號(hào)。然后從第1只開(kāi)始數(shù),數(shù)到第m只,把它踢出圈,從它后面再開(kāi)始數(shù),再數(shù)到第m只,在把它踢出去…,如此不停的進(jìn)行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過(guò)程,輸入m、n, 輸出最后那個(gè)大王的編號(hào)。用程序模擬該過(guò)程。
二. unix/linux 基本使用
3.1 linux下查看當(dāng)前系統(tǒng)負(fù)載信息的一些方法。
3.2 vim的基本快捷鍵。
3.3 ssh 安全增強(qiáng)方法;密碼方式和rsa key 方式的配置。
3.4 rpm/apt/yum/ports 裝包,查詢,刪除的基本命令。
3.5 Makefile的'基本格式,gcc 編譯,連接的命令,-O0 和-O3區(qū)別。
3.6 gdb,strace,valgrind的基本使用.
三. 前端,HTML,JS
css盒模型。
javascript中的prototype。
javascript中this對(duì)象的'作用域。
IE和firefox事件冒泡的不同。
什么是怪異模式,標(biāo)準(zhǔn)模式,近標(biāo)準(zhǔn)模式。
DTD的定義
IE/firefox常用hack.
firefox,IE下的前端js/css調(diào)試工具。
四.如何理解 ThinkPHP 3.0 架構(gòu)三(核心 + 行為 + 驅(qū)動(dòng))中的行為?
核心 + 行為 + 驅(qū)動(dòng)
TP官方簡(jiǎn)稱為:CBD
這個(gè)問(wèn)題,在TP手冊(cè)中已經(jīng)有委詳細(xì)地闡述了。。
核心(Core):就是框架的核心代碼,不可缺少的東西,TP本身是基于MVC思想開(kāi)發(fā)的框架。
行為(Behavior) :行為在新版ThinkPHP的架構(gòu)里面起著舉足輕重的作用,在系統(tǒng)核心之上,設(shè)置了很多標(biāo)簽擴(kuò)展位,而每個(gè)標(biāo)簽位置可以依次執(zhí)行各自的獨(dú)立行為。行為擴(kuò)展就因此而誕生了,而且很多系統(tǒng)功能也是通過(guò)內(nèi)置的行為擴(kuò)展完成的,所有行為擴(kuò)展都是可替換和增加的,由此形成了底層框架可組裝的基礎(chǔ)。
驅(qū)動(dòng)( Driver ):數(shù)據(jù)庫(kù)驅(qū)動(dòng)、緩存驅(qū)動(dòng)、標(biāo)簽庫(kù)驅(qū)動(dòng)和模板引擎驅(qū)動(dòng),以及外置的類擴(kuò)展。
最好就是下載一份文檔下來(lái)看,基本上TP里面所有的功能,都會(huì)有很詳細(xì)的描述和范例講解。
框架,即framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡(jiǎn)單說(shuō)就是使用別人搭好的舞臺(tái),你來(lái)做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。
為什么要用框架?
因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問(wèn)題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細(xì)節(jié)問(wèn)題,比如,事物處理,安全性,數(shù)據(jù)流控制等問(wèn)題。還有框架一般都經(jīng)過(guò)很多人使用,所以結(jié)構(gòu)很好,所以擴(kuò)展性也很好,而且它是不斷升級(jí)的,你可以直接享受別人升級(jí)代碼帶來(lái)的好處。
框架一般處在低層應(yīng)用平臺(tái)(如java 里的 J2EE)和高層業(yè)務(wù)邏輯之間的中間層。
ThinkPHP是一個(gè)開(kāi)源的PHP框架, 是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開(kāi)發(fā)和敏捷WEB應(yīng)用開(kāi)發(fā)而誕生的
原名FCS,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開(kāi)源協(xié)議發(fā)布。早期的思想架構(gòu)來(lái)源于Struts,后來(lái)經(jīng)過(guò)不斷改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_(kāi)發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(標(biāo)簽庫(kù))、RoR的ORM映射和 ActiveRecord模式,封裝了CURD和一些常用操作,單一入口模式等,在模版引擎、緩存機(jī)制、認(rèn)證機(jī)制和擴(kuò)展性方面均有獨(dú)特的表現(xiàn)
使用ThinkPHP,你可以更方便和快捷的'開(kāi)發(fā)和部署應(yīng)用,當(dāng)然不僅僅是企業(yè)級(jí)應(yīng)用,任何PHP應(yīng)用開(kāi)發(fā)都可以從ThinkPHP的簡(jiǎn)單、兼容和快速的特性中受益。簡(jiǎn)潔、快速和實(shí)用是ThinkPHP發(fā)展秉承的宗旨,為此ThinkPHP會(huì)不斷吸收和融入更好的技術(shù)以保證其新鮮和活力,提供WEB應(yīng)用開(kāi)發(fā)的最佳實(shí)踐!
作為一個(gè)整體開(kāi)發(fā)解決方案,ThinkPHP能夠解決應(yīng)用開(kāi)發(fā)中的大多數(shù)需要,因?yàn)槠渥陨戆说讓蛹軜?gòu)、兼容處理、基類庫(kù)、數(shù)據(jù)庫(kù)訪問(wèn)層、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用的組件,并且對(duì)于跨版本、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便。并且每個(gè)組件都是精心設(shè)計(jì)和完善的,應(yīng)用開(kāi)發(fā)過(guò)程僅僅需要關(guān)注您的業(yè)務(wù)邏輯。
【PHP程序員要掌握的知識(shí)點(diǎn)】相關(guān)文章:
學(xué)習(xí)php前要掌握的基礎(chǔ)知識(shí)10-16
PHP程序員容易忽略的知識(shí)點(diǎn)10-08
中高級(jí)PHP程序員應(yīng)該掌握哪些技術(shù)10-31
PHP初學(xué)者必須掌握的10個(gè)知識(shí)點(diǎn)10-19
學(xué)習(xí)php需要掌握的知識(shí)09-06
php程序員11-01