PHP独特学习模式_php基础知识
一.PHP介紹
PHP即“超文本預處理器”,是一種通用開源腳本語言。PHP是在服務器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、JAVA、Perl以及PHP自創的語法。利于學習,應用廣泛,主要適用于Web開發領域。
二.PHP框架
A.ThinkPHP
1.借助成熟的Java思想
2.易于上手,有豐富的中文文檔;學習成本低,社區活躍度高
3.框架的兼容性較強,PHP4和PHP5完全兼容、完全支持UTF8等。
4.適合用于中小項目的開發
5.從thinkphp3.2.2引入composer包管理工具
缺點
1.對Ajax的支持不是很好;
2.目錄結構混亂,相比其他框架目錄結構要差一點;
3.上手容易,但是深入學習較難。
B.YII
優點
1.純OOP
2.用于大規模Web應用
3.模型使用方便
4.開發速度快,運行速度也快。性能優異且功能豐富
5.使用命令行工具。
6.支持composer包管理工具
缺點:
1.對Model層的指導和考慮較少
2.文檔實例較少
3.英文太多
4.要求PHP技術精通,OOP編程要熟練!
5.View并不是理想view,理想中的view可能只是html代碼,不會涉及PHP代碼。
C.laravel
優點
1.laravel的設計思想是很先進的,非常適合應用各種開發模式TDD, DDD 和BDD
2.支持composer包管理工具
3.集合了php 比較新的特性,以及各種各樣的設計模式,Ioc 容器,依賴注入等。
缺點
1.基于組件式的框架,所以比較臃腫
D.CodeIgniter
優點:
1.Code Igniter推崇“簡單就是美”這一原則。沒有花哨的設計模式、沒有華麗的對象結構,一切都是那么簡單。幾行代碼就能開始運行,再加幾 行代碼就可以進行輸出。可謂是“大道至簡”的典范。
2.配置簡單,全部的配置使用PHP腳本來配置,執行效率高;
3.具有基本的路由功能,能夠進行一定程度的路由;
4.具有初步的Layout功能,能夠制作一定程度的界面外觀;
5.數據庫層封裝的不錯,具有基本的MVC功能.
6.快速簡潔,代碼不多,執行性能高,
7.框架簡單,容易上手,學習成本低,文檔詳細;
8.自帶了很多簡單好用的library,框架適合小型應用.
缺點:
1.本身的實現不太理想。
2.內部結構過于混亂,雖然簡單易用,但缺乏擴展能力。
3.把Model層簡單的理解為數據庫操作.
4.框架略顯簡單,只能夠滿足小型應用,略微不太能夠滿足中型應用需要
E.Zend Framework
優點:
1.大量應用了PHP5中面向對象的新特征:接口、異常、抽象類、SPL等等。這些東西的應用讓Zend Framework具有高度的模塊化和靈活性
2.嚴格遵循“針對接口編程”和“單一對象職責”等原則
3.官方出品,自帶了非常多的library,框架本身使用了很多設計模式來編寫,架構上很優雅,執行效率中等
4.MVC設計,比較簡潔
5.具有路由功能,配置文件比較強大(能夠處理XML和php INI)
6.能夠直觀的支持除數據庫操作之外的Model層(比 CodeIgniter 和 CakePHP 強),并且能夠很輕易的使用Loader功能加載其他新增加的Class
7.Cache功能很強大,從前端Cache到后端Cache都支持,后端Cache支持Memcache、APC、SQLite、文件等等方式
8.數據庫操作功能很強大,支持各種驅動(適配器)
9.文檔很全,在國內社區很成熟
缺點:
1.MVC功能完成比較弱,View層簡單實現(跟沒實現一樣),無法很強大的控制前端頁面.
2.沒有自動化腳本,創建一個應用,包括入口文件,全部必須自己手工構建,入門成本高
3.對于簡單和小型的項目來說,反而因為在框架中應用了大量面向對象設計,對開發者提出了更高的要求,間接增加了項目的開發成本
F.CakePHP
優點:
1.最類似于RoR的框架,包括設計方式,數據庫操作的Active Record方式
2.設計層面很優雅,沒有自帶多余的 library,所有的功能都是純粹的框架,執行效率還不錯
3.數據庫層的 hasOne, hasMany功能很強大,對于復雜業務處理比較合適
4.路由功能,配置功能難度適中
5.自動構建腳手架(scaffold)很強大,適合中型應用
6.基本實現過了MVC每一層
7.具有自動操作命令行腳本功能
8.文檔比較全,學習成本中等
缺點:
1.CakePHP非常嚴重的問題是把Model理解為數據庫層操作,嚴重影響了除了數據庫之外的操作能力
2.cache功能略顯薄弱
3.配置功能稍嫌弱
4.不適合大型應用,只適合中型應用,小型應用來說略微的學習成本高了點
G.Symfony
優點:
1.完整實現了MVC三層
2.封裝了所有東西,包括 $POST,$GET 數據,異常處理,調試功能,數據檢測
3.包含強大的緩存功能
4.自動加載Class,能夠很隨意的定義各種自己的class
5.強大的語言支持
6.具有很強大的view層操作,能夠零碎的包含單個多個文件
7.非常強大的配置功能,使用xml配置能夠控制所有框架和程序運行行為
8.包含強大的多層級項目和應用管理:Project --> Application --> Module --> Action,能夠滿足一個項目下多個應用的需要,并且每層可以定義自己的類庫,配置文件,layout
9.非常強大的命令行操作功能,包括建立項目、建立應用、建立模塊、刷新緩存等等
10.Symfony絕對是開發大型復雜項目的首選,因為使用了Symfony,將大大節約開發成本,并且多人協作的時候,不會出現問題,在Project級別定義好基礎Class以后,任何模塊都能夠重用,大大復用代碼.
缺點:
1.最大的問題也在于使用了太多風格迥異的開源項目來組合成框架
2.由于Mojavi和Propel本身都相當復雜,因此Symfony的結構非常復雜,難以理解和學習
3. 緩存功能無法控制,每次開發調試總是緩存,需要執行 symfony cc,symfony rc來清除和重建緩存
4.效率不是很高,特別是解析模板和讀取配置文件的過程,花費時間不少
5.學習成本很高,并且國內沒有成熟的社區和中文文檔
總評:
以上數款框架,各有特色,而且都是開源項目,不過框架針對的項目不一樣,一般來說:
1.小型項目:CodeIngiter
2.中型項目:CakePHP、Zend Framework、Laravel、Thinkphp
3.大型重量級項目:Yii、Symfony、Laravel
三. PHP5和PHP7的比較
1、性能提升:PHP7比PHP5.0性能提升了兩倍。
2、以前的許多致命錯誤,現在改成拋出異常。
3、PHP 7.0比PHP5.0移除了一些老的不在支持的SAPI(服務器端應用編程端口)和擴展。
4、PHP 7.0比PHP5.0新增了空接合操作符。
5、PHP 7.0比PHP5.0新增加了結合比較運算符。
6、PHP 7.0比PHP5.0新增加了函數的返回類型聲明。
7、PHP 7.0比PHP5.0新增加了標量類型聲明。
8、PHP 7.0比PHP5.0新增加匿名類。
9、錯誤處理和64位支持
為什么 PHP7 比 PHP5 性能提升了?
1、變量存儲字節減小,減少內存占用,提升變量操作速度
2、改善數組結構,數組元素和hash映射表被分配在同一塊內存里,降低了內存占用、提升了 cpu 緩存命中率
3、改進了函數的調用機制,通過優化參數傳遞的環節,減少了一些指令,提高執行效率
總結:
在過去的 5.* 時代里,php 的性能是不可描述的。
充其量也就是一般。
但是,在 7.0 版本中,PHP 核心的很大一部分被從頭開始重寫,導致性能提高了兩三倍。
此外,每個 7.* 版本都對性能產生了積極影響。
當 PHP8 問世時,我們還將擁有一個 JIT 編譯器,承諾進行有趣的性能改進,并允許 PHP 進入 web 開發以外的新領域。
總結
以上是生活随笔為你收集整理的PHP独特学习模式_php基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭电计算机组成原理实验RISC-V 实验
- 下一篇: 如何使用MySQL Workbench建