1.PHP是世界上最好的web開發(fā)語言
PHP是世界上最好的web開發(fā)語言,這個無可辯駁,當然去掉web兩個字,這毫無意義,網(wǎng)上很多噴子鼓吹的java,.net,python都差的遠。
php有如下優(yōu)點:
- 簡單易學。正是因為如此,才造就了php開發(fā)者人群的龐大和良莠不齊,但是我們不能因為陽光和空氣獲取起來毫不費力就說它不重要吧?這個是人的問題,不是開發(fā)語言的問題。
- 靈活性高,和html、css高度融合。因為php本就是為web開發(fā)而生的,其他的語言都是從桌面程序和控制臺程序發(fā)展起來的。
- 服務器配置簡單。網(wǎng)上一鍵配置多如過江之鯽,在沒有比它更簡單的了。
- 對服務器要求低,和好兄弟mysql搭配,隨便一臺辦公電腦都能跑的很溜。要是你用java+oracle,得專門買臺服務器,你想用辦公電腦當服務器,不用一百人訪問就卡死你。我以前接手過一個公司的oa,同樣功能用php做出來,萬八個人訪問起來毫無壓力。
php的缺點:
- 缺乏并發(fā)和事務處理機制。對于超大型的網(wǎng)站,數(shù)千萬級訪問來說,如果是新聞網(wǎng)站還好,可以采用生成html方式,基本毫無壓力,但是對于一些純純動態(tài)的如oa(千萬級訪問的oa系統(tǒng)恕我孤陋寡聞,沒見過)和復雜的事務流程來說,效率并不高,所以某寶的一些秒殺活動、12306訂票、銀行atm取款機等都用java或python,因為他們重要的不是瀏覽內(nèi)容,而是事務處理,而且通常是多臺服務器分布式并發(fā)執(zhí)行。
- 只支持web開發(fā),不方便做 .exe文件。這個其實也不算缺點,人家本來就不是干這個事的,就像你拿著大刀長矛去廚房切菜非得說不如菜刀好用,讓一個程序員去炒菜說不如新東方學徒,你非得這樣,誰也沒辦法。
- 語法不太嚴謹。變量不用定義就能用,這個我覺得很方便,另外php有嚴格模式,啟用后變量必須聲明才能用,你愿意你可以設置。另外說起這個我就特不習慣Python沒有大括號的做法,說是優(yōu)美,我去,如果要復制黏貼一段代碼,光調(diào)整格式就費老大的勁,而且代碼一長或者把代碼拷貝的別的機器,很容易出錯。
什么時候使用PHP
項目不大,如何判斷這個呢,就看你需要幾臺服務器運行這個程序,如果有幾十、幾百臺的話那就是大項目了。10臺以內(nèi)php都可以輕松應付。
2. 中型項目減少PHP壓力的方法
對于千萬級的中型項目,可以采用這些方法減少壓力:
- 數(shù)據(jù)庫單獨一臺機器,或者幾臺機器(關鍵詞:主從模式、數(shù)據(jù)復制、數(shù)據(jù)同步),記住把數(shù)據(jù)庫放在幾個地方比把網(wǎng)站代碼放在幾個地方要容易。
- 采用二級域名,把幾個功能分別放在幾臺服務器。你可以把session和公共變量保存在數(shù)據(jù)庫中,保證無縫隙登錄整合。
3. 原生開發(fā)VS框架
原生開發(fā)的優(yōu)點:
- 學習成本低
- 雍余代碼少,原本一個幾百k搞定的小項目,用thinkphp得10M多
- 執(zhí)行效率高,畢竟框架要耗費很多資源
- 安全性能高(如果你是高手),框架有時候存在漏洞,會讓你的程序天然帶入漏洞。
- 程序配置開發(fā)靈活,不用遵從框架的路由規(guī)則
框架開發(fā)的優(yōu)點:
- 開發(fā)效率高,代碼量少(這里指的是你自己寫的代碼)
- 集成功能多,調(diào)用比較簡單
- 安全性能高(如果你是新手),畢竟寫框架的人水平比你高,想的比你周到。
- 代碼打包后較大,因為包含了框架的代碼,特別對于外包,你收了人家三萬塊,給你300k代碼,人家總感覺不合算,用了框架,再加上一些圖片,起碼30M,當然你無恥點可以搞個幾百M。這里你要說原生開發(fā)不會搞圖片嗎,可是人家一看php文件沒多少,每個人文件打開才幾十行代碼,人家傻嗎?
個人總結,對于業(yè)務邏輯不是很復雜,能用框架的還是用框架吧,確是省事很多。如果你很多功能用框架不好完成,那就用原生,沒必要糾結太多。新手如果自己不能判斷可以加老劉微信(jsjlaoliu),把你的功能發(fā)給我,我可以幫你判斷下用什么框架合適。
4. 常見的php框架
4.1 Thinkphp(國產(chǎn))
這是我目前使用最多的框架,也是國內(nèi)使用人數(shù)最多的框架,日常開發(fā)中的大多數(shù)功能基本都包含了,如果沒有的可以找一下擴展插件,強烈推薦。
支持php7、php8,對我這樣的版本強迫癥來說,對那些不支持php7以上的框架我都不戲使它(山大方言,不屑于使用它)。
另外從下一篇開始,我準備寫個簡單的Thinkphp6使用教程,有需要的可以關注我。
4.2 CodeIgniter
怎么說呢,CodeIgniter3.0我用著挺好的,使用頻率超過Thinkphp,結果到了4.0,好像完全變了一個軟件,易用性大大降低。而且這個框架更新比較慢。對于使用php7以下的(不含)建議使用CodeIgniter3.0,php7以上的還是用Thinkphp吧。
4.3 Laravel
傳說中Laravel是一個簡單優(yōu)雅的PHPWeb開發(fā)框架,可惜本人不怎么優(yōu)雅,感受不到,反而是被那些繁瑣的配置搞的好亂。其優(yōu)點是大量的第三方開源庫,可以快速方便的實現(xiàn)模塊功能,安全機制非常齊全,提交表單的數(shù)據(jù)驗證(驗證有差不多80種,能想到的基本都有),提交數(shù)據(jù)時產(chǎn)生隨機_token驗證,避免非法提交,能避免跨域攻擊;繼承了登錄驗證、權限驗證的,這個的確很方便,有興趣的朋友可以研究一下。
4.4 Yii
Yii采用嚴格的OOP編寫,這個是它的主要特點,奈何我這個人不太喜歡嚴格,Yii的組件非常多,學習成本也有點高,據(jù)說適合用于開發(fā)大型Web應用。
4.5 Yaf
Yaf,全稱YetAnotherFramework,是一個C語言編寫的PHP框架,是一個以PHP擴展形式提供的PHP開發(fā)框架,相比于一般的PHP框架,它更快,更輕便,據(jù)說性能很高,不過我做的小項目,感受不出來,這個框架學習起來難度有點大,使用人數(shù)也不多,但是用它的幾乎都是大公司,新浪好像就用它,百度以前也用過。做小項目就不要去了解了。想要進大廠的可以研究一下。
4.6 Cakephp
z這個和thinkphp很類似,據(jù)說think開始的時候就是參考的它,既然如此,我們還是用think吧,畢竟國產(chǎn)的,大家看得懂,遇到問題也容易找人請教。文章來源:http://www.zghlxwxcb.cn/news/detail-433697.html
4.7 Zend
ZendFramework(簡寫ZF)是開源的,主要用于Web應用程序的開發(fā)和服務,ZF采用MVC(Model–View-Controller)架構模式來分離應用程序中不同的部分方便程序的開發(fā)和維護??蚣馨艽螅δ芎芏?,學習起來成本有點大,性能并不是很突出,國內(nèi)用的也很少,我沒怎么研究過。文章來源地址http://www.zghlxwxcb.cn/news/detail-433697.html
到了這里,關于關于php原生開發(fā)與主流php框架使用心得的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!