Archive

‘PHP’ 分類過的Archive

介紹 Netbeans 執行 PHPUnit (單元測試)

2010年2月20日 尚無評論

前言

Netbeans 6.8 出來之後 , 我覺得已經非常好用了 , 尤其在程式碼的自動完成的方面已經改成和 Zend Studio 一樣 , 不需要按甚麼 ALT+J 了 , 而且 Netbeans 的反應速度就是比 Zend Studio 來的快 , 現在我也都改用 Netbeans 了 , 而本篇是稍微介紹一下如何用 Netbeans 來執行 PHP 的單元測試

PHPUnit 介紹

PHPUnit 其實是個 PHP 寫成的 Framework , 主要功能就是自動對我們所寫的PHP程式做輸入輸出的檢查

程式寫久的人應該都知道動一髮牽全身的道理 , 我自己也常常更動了某個物件的程式碼之後 , 結果很多相關連的物件或網頁就跟著就出錯了 , 但我們不可能每次更動程式之後 , 就去用瀏覽器慢慢的測試可能發生的狀況 , 人的記憶有限 , 誰會知道這個物件有那些網頁會用到 , 也因此我們需要一個方便的工具來幫我們自動測試 , 而 PHPUnit 就可以讓我們自行撰寫測試的條件 , 當我們所寫的測試條件隨著時間累積的越多時 , 就可以避免一定程度的錯誤發生了

閱讀全文…

Categories: PHP Tags: ,

PHP libevent vs stream_select 性能測試

2010年1月12日 2 則評論

PHP 下要做 Socket 多工目前只有 select 或用超慢的 fork 方式 , 但學過 Socket Programing 的人都知道 select 在大量連線下的效能會很差 , 而在很早之前我曾在 PECL  看見有個 event 的 extension 是利用 Kernel 來處理 I/O 事件 , 舉凡 File , Socket 都可, 當時那套 event extension 是利用 Linux epoll 或 FreeBSD kqueue 的 Kernel API 直接幹的 , 現在則有另一套 libevent 的 extension 出現在 PECL 上 , 這個 extension 就是用同名 C  寫的 libevent 去實做 , libevent 也是會用到 epoll 及 kqueue 但提供了一組函數介面讓程式設計師不用去管 OS  是什就可以設計出高效能的多工程式 , 因此我特地抓下來玩一玩 , 並且寫了簡單的性能測試

由於 PHP libevent 需要搭配C 的 libevent 1.4 以上版本 , 所以並非每個 Linux 套件都有 , 例如我的 CentOS 的 libevent 版本就比較舊 , 因此要自行編譯 , 以下就說明 CentOS 5.4 下成功編譯 PHP libevent 的步驟

閱讀全文…

Categories: PHP Tags:

新版 FCKEditor for wordpress

2009年10月27日 3 則評論

之前曾經介紹一篇如何修改 FCKEditor 搭配 WP-Codebox 

http://www.pigo.idv.tw/archives/161

現在 Dean’s FCKEditor for WordPress plugin 已經不是使用 FCKEditor , 而是用新名稱的 CKEditor 下去改的 ' "

這一版的變動很大 , 因此之前所介紹的如何修改 Style 的方式也不同 , 不過仍是很簡單 , 花了我一些時間而已

首先先安裝好新版的 plugin 之後 , 去這個 plugin 下找 ckeditor/plugins/stylescombo/styles/default.js

不難發現原本使用 XML 結構已經改成以 javascript 資料型態來取代

閱讀全文…

Categories: PHP Tags: ,

一個考題 , 用一個迴圈印出下列結果

2009年10月26日 8 則評論

之前有一家公司出的考題 , 用一個迴圈寫出下列結果

*
**
***
****
*****
******
*****
****
***
**
*

閱讀全文…

Categories: PHP Tags:

稍稍看了一下 DooPHP 1.2

2009年9月30日 13 則評論

之前曾經看過 DooPHP 1.0 剛出來的時候標榜是效能最快的 MVC FrameWork

今天來去 DooPHP 網站看到已經更新到 1.2

與之前看到的有些許不同

例如 , DB Model 有支援 Master/Slave 架構 Wow ~~~

view 部分以前是用 Template 來實作 , 而現在多出了以原生 php 當 view , 也就是可以任君選擇啦

看起來 DooPHP 進展很快 ~ 頗有幹掉 YII 的氣勢喔 , 改天要來好好玩一下了

http://www.doophp.com/

Categories: DooPHP Tags:

推一下 RoundCube WebMail Password Plugin

2009年9月11日 尚無評論

這一篇是記錄一下當 Mail Server 是採用 postfix + mysql 認證時 , 如何設定 RoundCube 的改密碼 plugin

平台是 CentOS 5.3 + mysql 5.1 + postfix_mysql + roundcube 0.3 stable

設定方法很簡單

先找到 roundcube 安裝目錄下的 plugins/password 這個目錄

把 config.inc.php.dist 改成 config.inc.php 或用複製成另一個新檔都可以 , 然後要修改 config.inc.php

我們必須先修改以下三個參數

  • $rcmail_config['password_driver'] : 這個是設定密碼密碼認證的方式
  • $rcmail_config['password_db_dsn']  : 這個是設定 posftix 認證的資料庫連接資訊(注意!不是roundcube資料庫喔)
  • $rcmail_config['password_query'] : 這是設定修改密碼的 SQL Query

$rcmail_config['password_driver'] 必須設定為 sql , 才適用 mysql 的方式 , 例如

$rcmail_config['password_driver'] = 'sql';

$rcmail_config['password_db_dsn'] 的格式是 PEAR DSN 的格式 , 例如

$rcmail_config['password_db_dsn'] = 'mysql://postfix:1234@localhost/postfix';

閱讀全文…

Categories: Linux, MySQL, PHP Tags: , ,

PHP 5.3 正式版出來了 , 要注意一下

2009年7月1日 尚無評論

PHP 5.3 剛出爐 , 不過有一些改變 , 其中一個非常值得注意

就是這一版新增了一種錯誤類型 E_DEPRECATEDE_USER_DEPRECATED

如果升級之後所跑的應用程式會出現類似 PHP Deprecated:  Function split() , 那麼 嘿嘿嘿 , 就是在告訴你 , 這個 function 不建議繼續用了 , 但並非不能用

而是告訴你可能在以後的版本會拿掉

我個人發現到只要程式中有 ereg() 及 split() 都會出現這種訊息

那麼 , 這該怎麼辦 ?

其實只要在 php.ini 中設定 error_reporting = E_ALL ^ E_DEPRECATED 即可

如果不想在 php.ini 中設定 , 那麼程式中呼叫 error_reporing() 去設定 , 或者 Apache 的使用者寫在 .htaccess 中都可以

若都不想改設定 ,  就要自己改程式改成相對應的語法 , 例如 split 要改成 explode 就不會有錯誤了

另外 , CentOS 的使用現在也可以升級到 PHP 5.3  , 必須先參考這篇安裝 remi 的 yum repo

http://www.pigo.idv.tw/archives/242

而安裝新版 php 也請前先檢查看看

yum –enablerepo=remi-test check-update

應該會發現到 remi-test 這區已經有 php 5.3 了 , 但這是測試區的 , 還沒放到正式區

要安裝就直接下

yum –enablerepo=remi-test upgrade php

這樣就好了 , 應該過沒多久正式區就會有檔案了

Categories: Linux, PHP Tags:

Zend Studio 7.0 Beta 試用

2009年6月25日 尚無評論

看下圖的程式碼各位可以想到甚麼 ?

zf-a

是的 , Zend Studio 7.0 將會支援 PHPDoc 1.4 新增的 @property 及 @method 兩個屬性 , 透過這兩種 PHPDoc 標籤 , 就可以讓 __get() , __set() , __call() 也有程式碼自動完成的功能了

當然還有其他加強的功能 , 例如效能更好 , 但現階段我只對這 PHPDoc 這個增加功能感到很高興 , 因為現在寫 PHP 都物件導向 , 而且大量使用 magic method 的 FrameWork 一堆 , 寫到後面真的不曉得物件裡面到底有那些隱藏屬性或Method , 現在 Netbeans 支援 @property , ZS 支援兩種 , 以後寫 PHP 會越來越方便了 ^^

Categories: PHP Tags: