導航:首頁 > 程序命令 > 命令行框架

命令行框架

發布時間:2023-03-13 07:28:16

1. 基礎知識回顧:為什麼要使用php框架

為什麼要使用PHP框架?
開發人員使用PHP框架的好處很多,其中之一是加快開發進程。在類似項目中重用代碼將為開發者節省大量的時間和精力。框架為執行繁瑣的代碼任務提供預建模塊,因此,開發人員可以把時間花在實際應用的開發上,而不是每一個項目都重新構建基礎功能。
穩定是開發者使用框架的另一個重要原因。雖然簡單是PHP最大的優點,很多人也因為這一點喜歡使用這個腳本語言,但它同時也是PHP最大的缺點。一些開發者尤其是初學者很容易寫出低劣的代碼,而自己卻沒有意識到。使用PHP,應用往往會將靜態工作加倍,不知不覺中您可能已經在編碼時打開了一個大的安全漏洞,因此可能會受到攻擊。重要的是要記住,PHP是一個非常寬容的語言,因此,更重要的是在編程時確保封閉任何漏洞,即便應用看起來可以正常工作。
最後,PHP框架的使用是非常廣泛的,而且有許多不同的框架可供選擇。許多開發者會選擇知名的框架,是因為它的知名度、其開發團隊的巨大支持,而且他們可以通過論壇/社區來與其他使用相同框架的開發者交流,當然你也可以開發自己的框架。這里提醒一下,首先應該檢查你的項目來決定是否應該使用一個框架。你應該問自己:它會節省你和其他使用者的時間和精力么?應用程序的性能會更好么?是否會提高穩定性?如果這些問題你的回答都是是,那麼你就該為你的項目選擇一個合適的框架了。
何時使用PHP框架?
這是一個無論有經驗的開發者還是初級開發者都共有的問題,而且這個問題也確實沒有直接的回答。對於許多初學者來說,一個框架將提供很多簡便和穩定,因此應該盡可能地使用PHP框架。這將有助於減少或消除不良編碼,加快開發進程。
另一方面,許多有經驗的PHP程序員將框架視為不知道如何寫出好的、干凈的代碼的低級程序員的工具。姑且不論這一點的真假,起碼毋庸置疑的是PHP框架是一個可以用來節省時間並強化自己編碼的工具。
當工作的項目時間緊迫時,使用PHP框架就有很多好處,可以大大加快編碼進程,因此所以如果你時間緊迫,使用PHP框架就是很好的選擇。另一個例子是,當你所做的項目有大量代碼時,也應當考慮使用PHP框架,因為這將有助於減少工作的繁瑣度。
尋找一個什麼樣的PHP框架?
有許多可供開發者選擇的PHP框架,甚至還可以創建自己的框架,盡管只建議PHP專家級這樣做。當尋找你最需要的PHP框架時,重要的是要搞清楚誰將自始至終使用或修改你的應用,如果是有很多人做這件事情,那麼最好使用流行的PHP框架,這樣大部分開發者都不會陌生。另一方面,如果你想構建Web應用程序為你個人使用,那就最好選擇令你滿意的PHP框架,而不在乎它在開發者社區中是否流行。
選擇PHP框架的參考因素有很多,包括:容易使用、快速開發、性能、開發者中的流行程度、強大的功能,技術支持、論壇等。當你第一次選擇PHP框架時,為了找到一個適合你需求的最佳選擇,建議多嘗試幾個。每個框架都有所不同,並有不同的長處和短處。例如Zend框架由於V3和多樣的功能、並且有一個廣泛的支持系統,因而它流行了這么久。相反, CakePHP是另一個晚於Zend框架的PHP框架,相應的支持系統也比較少,但更方便和易於使用。
正如你所看到的,每種類型的PHP框架都有自己的優點,因此,最好反復試驗以找出其中哪個最適合你的需要。另一個選擇PHP框架的有效方式是咨詢你的同事,看看開發社區里選擇哪個。那些真正使用過具體框架的能夠明確地告訴你它的易用性、功能、支持可用性、社區內的情況,當然可能還有不足。
使用PHP框架最常見的錯誤
任何類型的編程中都可能有錯誤,但是PHP框架有助於顯著限制這些錯誤。重復編碼似乎加劇了這種錯誤,而框架則解決了這一問題。盡管如此,在使用任何PHP框架時仍要注意。例如,除非你是一位PHP編程的專家,否則你應該總是選擇使用流行的框架,有大量的支持和積極的用戶群。很多框架的支持很少甚至沒有,它們可能是被PHP知識有限的個別開發者所創建的。這些類型的框架,可能會使你的應用程序無法正常運行,更糟糕的是,可能會給你的網站帶來災難性的安全問題。
另一些常見的錯誤是,不能確保你的資料庫和Web伺服器符合特定框架。例如,Seagull PHP Framework建議如下配置:
◆PHP :最低是PHP 4.3.0,PHP 5.1.1或者更高版本更佳,避免任何5.0.x版本中的東西;
◆MySQL的:支持MySQL的4.0.x,4.1.x和5.0.x,也可以使用3.23.x;
◆Apache:Seagull支持1.3.x以及Apache的2.x系列。
如果你沒有滿足這些要求,您將無法在你所選的框架中看到最好的性能。即使你是PHP的專家,你也應該經常復習框架的說明文檔,確認兼容性後再嘗試。
類似於前面提到的常見的錯誤,不遵循建議的安裝進程的話,你的PHP框架也可以給你帶來一些令人頭疼的問題。以Seagull 為例,在Seagull的wiki有一個詳細的框架安裝過程,其中有幾個關鍵步驟,很容易被不小心或不知情的開發者忽視。因此你要花費時間來安裝框架並遵循安裝說明。
最好的PHP框架有哪些?
過去的幾年中,因為PHP已發展成為大多數開發者選擇的腳本語言,因而也產生了大量的PHP框架。什麼是最好的PHP框架,仁者見仁智者見智,因為並非每一個框架都能夠適合每一個人。以下是5個最佳和最流行的PHP框架選擇:
◆The Zend Framework
Zend Framework在開發者社區中很有人氣,其重點是Web 2.0風格的應用程序。由於其大量的黨羽、廣泛的支持和積極的用戶群,Zend被稱為PHP Company。Zend即使不是當今最流行的PHP框架,也絕對是之一。它強大的功能能夠滿足企業級的需求,當然它的使用也需要具備廣泛的PHP知識。
◆CakePHP
從初學者到高級PHP開發者,CakePHP都是一個很棒的選擇。它與 Ruby on Rails設計的原則基本相同,主要集中在快速開發方面使其成為一個快速應用開發的優良框架。其迅速增長的支持系統、簡單和可擴展性使CakePHP成為當今最熱門的PHP框架。
◆Symfony
Symfony針對的更多的是高級開發者,也即創建企業級應用的開發者,尤其是Askeet和Yahoo! Bookmarks。這個開源的PHP框架功能全面,但它的主要缺點是速度慢於其他框架。
◆CodeIgniter
CodeIgniter以其易用性、性能和速度而聞名。不同於Symfony,CodeIgniter主要針對的是與人共享主機的開發者,或者為小型設備尋找PHP框架的開發者。它提供簡單的解決辦法,而且有一個擴展庫包括視頻教程、論壇、用戶指南和wiki。初學者應該考慮使用CodeIgniter 。
◆Seagull
Seagull是一個穩定的用於構建web、命令行和GUI應用的PHP框架。這是一個非常易於使用的框架,非常適合初學者到高級程序員。對於初學者,Seagull有一個範例應用庫,可以自己設定後滿足自身需求;對於高級開發者,Seagull提供了眾多選擇包括最佳實踐、標准、模塊化的代碼基,這些都可以幫助快速簡單地構建Web應用程序。Seagull有一個活躍的開發者社區,內有大量的支持性文檔和說明。

2. 國外主流PHP框架對比評測

最近簡單的使用了目前在國內用的比較多的幾個主流國外PHP框架(不包括國內框架) 大致對這些框架有個直觀上的感受 簡單分享一下 對於哪些做框架選型的時候 權當一個參考

主要參考的框架包括 CodeIgniter CakePHP ZendFramework Symfony 我對很多框架也沒有認真使用 只是簡單試用了一下 可能很多看法不成熟或者是錯誤的 請大家指正 一起成長

CodeIgniter

優點

配置簡單 全部的配置使用PHP腳本來配置 執行效率高 具有基本的路由功能 能夠進行一定程度的路由 具有初步的Layout功能 能夠製作一定程度的界面外觀 資料庫層封裝的不錯 具有基本的MVC功能

快速簡潔 代碼不多 執行性能高 框架簡單 容易上手 學習成本低 文檔詳細 自帶了很多簡單好用的library 框架適合小型應用

缺點

把Model層簡單的理解為資料庫操作

框架略顯簡單 只能夠滿足小型應用 略微不太能夠滿足中型應用需要

評價

總體來說 拿CodeIgniter來完成簡單快速的應用還是值得 同時能夠構造一定程度的layout 便於模板的復用 數據操作層來說封裝的不錯 並且CodeIgniter沒有使用很多太復雜的設計模式 執行性能和代碼可讀性上都不錯 至於附加的 library 也還不錯 簡潔高效

CakePHP

優點

CakePHP是最類似於RoR的框架 包括設計方式 資料庫操作的Active Record方式 設計層面很優雅 沒有自帶多餘的 library 所有的功能都是純粹的框架 執行效率還不錯 資料庫層的 hasOne hasMany 功能很強大 對於復雜業務處理比較合適 路由功能 配置功能還不錯 自動構建腳手架(scaffold)很強大 適合中型應用 基本實現過了MVC每一層 具有自動操作命令行腳本功能

文檔比較全 在國內推廣的比較成功 大部分都知道CakePHP 學習成本中等

缺點

CakePHP非常嚴重的問題是把Model理解為資料庫層操作 嚴重影響了除了資料庫之外的操作能力

CakePHP的cache功能略顯薄弱 配置功能稍嫌弱 CakePHP不適合大型應用 只適合中型應用 小型應用來說略微的學習成本高了點

評價

總體來說CakePHP框架代表了PHP框架很重要的一個時代和代表 並且目前發揮著很重要的作用 不少自己寫的框架都模仿了CakePHP的方式 是個里程碑式的產品 CakePHP透露著RoR的敏捷開發方式和把資料庫操作認為是唯一Model的設計思想 作為開發快速應用和原型是絕好的工具 同樣 用來做Web 網站的開發框架 也是值得選擇的

Zend Framework

優點

官方出品 自帶了非常多的 library 框架本身使用了很多設計模式來編寫 架構上很優雅 執行效率中等 MVC設計中 比較簡潔 具有路由功能 配置文件比較強大(能夠處理XML和php INI) 各種 library 很強大 是所有PHP框架中各種功能最全面的 包括它不僅是一個框架 更是一個大類庫(取代PEAR) 這是它的主要特色 能夠直觀的支持除資料庫操作之外的Model層(比 CodeIgniter 和 CakePHP 強) 並且能夠很輕易的使用Loader功能載入其他新增加的Class Cache功能很強大 從前端Cache到後端Cache都支持 後端Cache支持Memcache APC SQLite 文件等等方式 資料庫操作功能很強大 支持各種驅動(適配器)

文檔很全 在國內社區很成熟 並且目前不少Web 網站在使用 學習成本中等

缺點

MVC功能完成比較弱 View層簡單實現(跟沒實現一樣) 無法很強大的控制前端頁面

沒有自動化腳本 創建一個應用 包括入口文件 全部必須自己手工構建 入門成本高

Zend Framework 作為一個中型應用框架問題不大 也能夠勉強作為大型應用的框架 但是作為一個很成熟的大型PHP框架來說 還需要一些努力

評價

作為官方出品的框架 Zend Framework的野心是可以預見的 想把其他框架擠走 同時封裝很多強大的類庫 能夠提供一站式的框架服務 並且他們的開發團隊很強大 完全足夠有能力開發很強大的產品出來 所以基本可以確定的是Zend Framework前途無量 如果花費更多的時間去完善框架 同樣的 Zend Framework架構本身也是比較優雅的 說明Zend官方是有很多高手的 設計理念上比較先進 雖然有一些功能實現的不夠完善 比如View層 自動化腳本等等 這些都有賴於未來的升級 總體來說Zend Framework是最值得期待的框架 當然 你目前要投入你的項目中使用也是完全沒問題的

Symfony

優點

Symfony 是我了解的PHP框架中功能最強大的 而且我使用時間比較長 但是很多功能還是沒有挖掘出來 它完整實現了MVC三層 封裝了所有東西 包括 $_POST $_GET 數據 異常處理 調試功能 數據檢測 包含強大的緩存功能 自動載入Class(這個功能很爽) 強大的i n國家化支持 具有很強大的view層操作 能夠零碎的包含單個多個文件 非常強大的配置功能 使用yml配置能夠控制所有框架和程序運行行為 強大到讓人無語 能夠很隨意的定義各種自己的class 並且symfony能夠自動載入(auto load)這些class 能夠在程序中隨意調用 包含強大的多層級項目和應用管理 Project > Application > Mole > Action 能夠滿足一個項目下多個應用的需要 並且每層可以定義自己的類庫 配置文件 layout 非常強大的命令行操作功能 包括建立項目 建立應用 建立模塊 刷新緩存等等

Symfony絕對是開發大型復雜項目的首選 因為使用了Symfony 將大大節約開發成本 並且多人協作的時候 不會出現問題 在Project級別定義好基礎Class以後 任何模塊都能夠重用 大大復用代碼

缺點

資料庫操作model採用了重量級的propel和creole 不過在我測試的版本中已經把他們移到了addon里 可用可不用

緩存功能無法控制 每次開發調試總是緩存 需要執行 symfony cc symfony rc 來清除和重建緩存

效率不是很高 特別是解析模板和讀取配置文件的過程 花費時間不少

學習成本很高 並且國內沒有成熟的社區和文檔 連中文手冊都沒有 相應的要掌握所有功能 需要花費比較多的時間

評價

Symfony絕對是企業級的框架 唯一能夠貌似能夠跟Java領域哪些強悍框架抗衡的東西 強悍的東西 自然學習復雜 但是相應的對項目開發也比較有幫助 自然是推薦復雜的項目使用Symfony來處理 覺得是值得 後期的維護成本比較低 復用性很強 相應的如果使用Symfony的應該都是比較復雜的互聯網項目 那麼相應的就要考慮關於資料庫分布的問題 那麼就需要拋棄Symfony自帶的資料庫操作層 需要自己定義 當然了 Symfony支持隨意的構造model層

總結

以上數款框架 各有特色 而且都是開源項目 不過框架針對的項目不一樣 一般來說 CodeIngiter 比較適合小型項目 CakePHP 和 Zend Framework 比較適合中型項目 Symfony 比較適合大型重量級項目 在項目選型的時候 要充分考慮框架的可以定製性 擴展性 因為每個項目都無法確定你是否會隨著需求的變化進行改變

相對來說 Zend Framework 和 Symfony 應對變化的能力比較強 特別是能夠隨意定製 model 層的Class 能夠非常方便增加自己業務或者數據處理類 我是個人比較推薦在中大型項目中使用的框架

CodeIngiter 和 CakePHP 在中小型項目中同樣能夠發揮重大作用 快速開發和原型構建 非常適合目標不清晰的原型項目的開發

當然了 也許 自己寫一個框架更適合

lishixin/Article/program/PHP/201311/21441

3. 前端常用的框架有哪些

1、Foundation框架
Foundation框架總體來看要比Bootstrap略顯高大上一點,但他們倆的設計理念都是非常清楚的,Bootstrap有引導的意思嘗試處理你項目中的一切所需。Foundation有基礎、地基及支柱的意思,給項目中強有力的創造與支持。相對於Bootstrap豐富的組件及插件,Foundation僅提供了有限的幾種元素,其目標是,即使你使用預定義的UI元素,也不應該與大家的網站長得太像。
2、、Bootstrap
Bootstrap在業界非常受歡迎,以致於有很多前端框架都在其基礎上開發,如WeX5就是在Bootstrap源碼基礎上優化而來的。Bootstrap是基於HTML、CSS和Javascript的,簡潔靈活使得Web開發更加敏捷。
提供優雅的HTML和CSS規范,在jQuery的基礎上進行更加個性化和人性化的完善。兼容大部分jQuery插件,並包含了豐富的Web組件,如下拉菜單、按鈕式下拉菜單、導航條、按鈕組、分頁、縮略圖、進度條和媒體對象等。自帶了13個jQuery插件,其中有模式對話框、標簽頁、滾動條和彈出框等。
3、Curl
Curl是一個命令行工具,用於通過HTTP(s)、FTP和數十種其它協議進行請求。使用Curl可以進行文件下載、檢查響應標題和自由訪問遠程數據。在Web開發中,Curl經常和RESTfulAPI一起使用用於測試連接。
4、Tree
Tree是一個小型的命令行實用程序,將目錄中的文件以可視化的方式進行顯示。它採用遞歸運行的方式,遍歷每個級別的嵌套並繪制所有內容的格式樹。這樣就能快速的瀏覽並查找需要的文件。
5、Tmux
根據維基的解釋,Tmux是一個終端復用器。通俗的說,它是一個能將多個終端連接到單個終端會話的工具。Tmux允許用戶在終端中的程序之間切換,添加屏幕窗格,並將多個終端連接到同一個會話,使其保持同步。在遠程伺服器上工作時,Tmux特別有用,因為它允許用戶創建新的選項卡,而無需再次登錄。
6、
命令用於生成關於文件和目錄的空間使用情況的報告。很容易使用,可以遞歸地運行,遍歷每個子目錄並返回每個文件的大小。的常見用例是:當某個驅動器的空間不足,用戶不清楚每個存儲器的大小。使用此命令可以快速查看每個文件夾所佔用的存儲空間,從而找到佔用最大空間的存儲器。
7、AUI
AUI專為APIClound設計的一套框架,解決了許多移動端開發實際中遇到的許多問題是一個純CSS框架。使用容器+布局+模塊的構建方式,JS輔助,更自由更靈活更易於擴展使用。遵循GoogleMaterial設計規范,完美適配各個機型。面向HTML5,使用CSS3實現動畫交互,輕量級高性能。
8、AmazeUI
據稱是中國首個開源HTML5跨屏前端框架。妹子UI以移動優先為理念,從小屏逐漸到大屏,實現響應式網頁。AmazeUI包含20+個CSS組件、20+個JS組件,更有多個包含不同主題的Web組件。相比國外框架,妹子UI關注中文排版提供本地化支持。面向HTML5開發,使用CSS3來實現動畫交互,輕量級高性能。
9、FrozenUI
FrozenUI是一款開源簡單易用,輕量敏捷的移動端框架。基於手Q樣式規范,目前全面應用於企鵝手Q增值業務中。基礎樣式效果簡單色調清爽,社區活躍,組件自然不少。包括按鈕、列表、表單、通知、提示條、彈出框、選項卡等等常用組件。還包括一個FrozenJs的JS組件庫。可以在主流的Android和IOS上應用。基本樣式使用離線包的方式減少請求提供快速接入方案。

閱讀全文

與命令行框架相關的資料

熱點內容
調度系統軟體python 瀏覽:203
微信大轉盤抽獎源碼 瀏覽:497
壓縮機損壞的表現 瀏覽:862
同步數據伺服器怎麼用 瀏覽:634
163郵箱伺服器的ip地址 瀏覽:50
伺服器跟域是什麼 瀏覽:128
rails啟動命令 瀏覽:465
logistic命令怎麼用 瀏覽:738
c語言點滴pdf 瀏覽:747
linuxrtc編程 瀏覽:258
linux打包並壓縮命令 瀏覽:644
aes加密的證書格式 瀏覽:99
oracledbcalinux 瀏覽:844
酬勤任務app怎麼被特邀 瀏覽:199
android應用文件夾 瀏覽:1002
平面設計法則pdf 瀏覽:339
3d圓角命令怎麼用 瀏覽:569
程序員買意外險還是重疾險 瀏覽:621
遼寧的dns伺服器地址雲空間 瀏覽:448
我的世界伺服器斷開後怎麼連接 瀏覽:415