在參與了幾個大型php專案,寫了很多php**以後,我發現很多任務具可以提高**質量,簡化發布,使得做為php開發人員的生涯變得輕鬆許多。許多這樣的工具可能已經為大家所用。但是,由於一些人甚至沒有注意到這些工具的存在,我會從此開始,好了,不說廢話,下面是我認為所有php程式設計師應該知道的工具列表。
phing - 乙個專案構建系統
phing 是乙個基於apache ant 的專案構建系統。它的名字是乙個拗口的語句首字母縮寫 - phing is not gnu make 。phing可以做傳統構建系統比如 gnu make 能做的任何事情,同時沒有陡峭的學習曲線。
在phing(以及其他的構建系統)背後的思想是評估一系列相關性,然後執行一系列php類去正確的安裝和配置乙個應用系統。構建過程用乙個簡單的xml配置檔案控制。out of the box, phing內建可以執行一系列替換(比如:在你的開發版本和產品版本間改變include路徑)、執行sql語句、移動和複製檔案、執行外部指令碼等等。通過擴充套件包含在發行包中的「task」類,你也可以創造自己的定製任務。
對任何需要在超過一台伺服器上部署大型php應用的人來世,phing是乙個無價之寶。同時我發現它對簡單的php指令碼也是很有用的。
xdebug - 除錯和分析工具
xdebug 是幫助你除錯和分析指令碼的乙個php擴充套件。xdebug中最有用的特性是在啟用後顯示的新注意資訊、警告資訊和錯誤資訊。如果乙個指令碼不能正常執行, xdebug將會輸出關於錯誤資訊的完整堆跟蹤,會附帶函式名稱、引數值、原始檔和行號。這對於厭倦了php預設只帶的可憐的錯誤報告功能的程式設計師是乙個值得歡迎的特性。
這個擴充套件有很多更先進的功能,允許開發人員進行**覆蓋率分析,收集分析資訊以及互動式地除錯指令碼。profiling functionality 功能尤其有用。分析器使用乙個普通的輸出檔案格式,允許你使用象 kcachegrind 這樣的工具快速發現你**中的瓶頸。對任何嚴肅的開發人員而言,乙個好的分析器是基本工具,它使得你妥善優化你的**,同時避免過早優化帶來的危害。
phpunit - 單元測試框架
phpunit 是乙個輕量級的php測試框架。它是在php5下面的 junit 3.8.1 完整移植,是xunit 測試框架家族的一員(它們基於軟體模式 先鋒 kent beck 的設計)。
單元測試是幾個現代敏捷開發方法的基礎,使得phpunit成為許多大型php專案的關鍵工具。這個工具也可以被前面討論的xdebug擴充套件用來生成**覆蓋率報告 ,並且可以與phing整合來自動測試。
propel - orm(物件關係對映)框架
propel是乙個php5下面的物件關係對映(orm)框架,它起源於apache torque專案。它提供了乙個複雜但是易用的資料庫抽象層,使得你可以在php中象使用普通類和物件一樣得使用資料庫實體。propel允許你使用一種簡單的xml格式定義你的資料庫,這個xml檔案被用來對映資料庫,生成應用中使用的靜態類。
propel被內嵌於流行的symfony php框架 (還有其他的),它使得**更靈活、模組化以及可移植。這個專案有the project has 出色的文件,以及很棒的支援社群。
phpmyadmin / phppgadmin - 基於web的資料庫管理系統
呼叫phing
命令列phing [targetname]
xml和phing
構建檔案有如下基本結構:
1. 文件序言(document prolog)
2. 根元素
3. 幾個型別元素(,,)
4. 包含乙個或幾個內建的或使用者自定義的任務元素(例如:,)
編寫乙個簡單的構建檔案<?xml version="1.0" encoding="utf-8" ?>
building...
複製**注意:
第乙個propery元素僅包含file屬性,這裡file屬性的值是乙個相對的或絕對的指向屬性檔案的路徑(屬性檔案:字尾名為 .properties,其中包含的鍵值對(key/value)的集合。
構建檔案中的標籤.它定義乙個檔案集合,例如一組多個檔案組成的集合.你還可以用元素的子元素和包含和排除檔案模式指定的檔案集合
另外標籤有id屬性,通過id屬性可以在其他地方引用.就像直接包含一樣,通過引用實現了**的復用
在第二個目標中使用了標籤來呼叫了phingtask任務
屬性檔案格式
屬性檔案定義屬性.屬性以鍵/值對的形式儲存,並且只包含純文字,屬性檔案的字尾名稱一般是.properties,構建檔案的預設屬性檔案是build.properties
# property files contain key/value pairs
projectdir=/data1/
projectname = myproject
require_once 'phpunit/framework.php';
class arraytest extends phpunit_framework_testcase //end if
?>
複製**嗯,今天的實踐總結就寫到這裡吧,至少已經明白了原理及實現過程。
phpmyadmin就不再寫了,相信所有了解php的應該知道。
PHP程式設計師都應該會用的五個工具
在參與了幾個大型php專案,寫了很多php 以後,我發現很多任務具可以提高 質量,簡化發布,使得做為php開發人員的生涯變得輕鬆許多。許多這樣的工具可能已經為大家所用。但是,由於一些人甚至沒有注意到這些工具的存在,我會從此開始,好了,不說廢話,下面是我認為所有php程式設計師應該知道的工具列表。ph...
PHP程式設計師都應該知道的五個工具
php程式設計師都應該知道的五個工具 在參與了幾個大型php專案,寫了很多php 以後,我發現很多任務具可以提高 質量,簡化發布,使得做為php開發人員的生涯變得輕鬆許多。許多這樣 的工具可能已經為大家所用。但是,由於一些人甚至沒有注意到這些工具的存在,我會從此開始,好了,不說廢話,下面是我認為所有...
PHP程式設計師都應該知道的五個工具
在參與了幾個大型php專案,寫了很多php 以後,我發現很多任務具可以提高 質量,簡化發布,使得做為php開發人員的生涯變得輕鬆許多。許多這樣的工具可能已經為大家所用。但是,由於一些人甚至沒有注意到這些工具的存在,我會從此開始,好了,不說廢話,下面是我認為所有php程式設計師應該知道的工具列表。ph...