Posted in Git on Feb 8th, 2013
在 commit code 之前,程式設計師必須確保程式碼的正確性,包含不要放入 debug message 到 git server,寫了一個簡單的 pre-commit 程式,來確保 PHP 是否有 Parse error,或者是在寫 CoffeeScript 及 JavaScript 時,常常會用到 console.* 來當作中斷點或者是顯示變數資料,這也是需要盡量避免 commit 到伺服器,你可不想要長官 review 的時候看到這麼多 debug 訊息吧。這時候就是需要 git-hooks 的 pre-commit 幫忙檢查這些 Syntax 語法,可以直接參考我的 git-hooks 專案。安裝方式很簡單: $ git clone https://github.com/appleboy/git-hooks.git $ chmod +x bin/hooks.sh pre-commit $ ./bin/hooks.sh your_project_path 如果使用 git commit 之前,就會檢查 .js、.coffee、.php 等副檔名。
Read Full Post »
Posted in CodeIgniter, php on Feb 1st, 2013
CodeIgniter 在處理 PHP Error handler 是直接呼叫內建的 Exceptions Class 顯示在瀏覽器上,如果有打開 log,系統另外會紀錄在 application/logs 目錄。這是 CodeIgniter 預設作法,但是我希望能把這些錯誤訊息都紀錄到 Database,相關 Notice, Error 訊息都一律寫到 DB 裡面,但是如果用 extend 系統內的 Exceptions 是完全做不到的,所以我寫了一個 Library 只要直接 include 系統就可以直接開始紀錄,因為在 PHP 你會遇到無數種 User experience,都會產生相關錯誤訊息,在產品上線都會將 display_errors 設定為 0,不要讓使用者看到任何錯誤訊息,但是我們還是需要全部的錯誤訊息阿,底下來看看如何安裝 Log Library。 建立 log table 可以直接參考連結,或者是複製底下資料貼到 phpMyAdmin。 — – Table structure for table `logs` — DROP TABLE IF EXISTS `logs`; [...]
Read Full Post »
Posted in CodeIgniter on Jan 20th, 2013
2009 年開始接觸 CodeIgniter,拿到第1版原始碼來自 中國 CodeIgniter ,版本是很舊的 1.7.x 版本,目前官方已經是 2.1.3 版本,現在朝 3.0.x 版本邁進,這次有機會將整個原始碼改寫成 3.0.x develop 分支版本,也將整個官方 source code 分享出來,讓需要原始碼範例初學者可以參考,Source Code 已經放在 github 上面,由於是拿大陸那邊的原始碼,也許有些地方寫的不是很完整,歡迎大家 pull request。 台灣 CodeIgniter Source Code Github
Read Full Post »
Posted in php on Dec 5th, 2012
在10月寫了一篇 PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog 介紹,上個月很不幸接到 mail 通知,說在今年12月即將關閉 PHPFog,所以免費的服務會在12月21號全部斷線,所以官方寫了 如何轉移 PHPFog 到 AppFog,大家可以參考看看,話說自己把所有的服務都轉到 AWS EC2 上面了,因為在 PHPFog 遇到 Session 一直消失的 Issue,也沒辦法解決,如果有在用 PHPFog 服務,請儘快轉移。
Read Full Post »
Posted in CodeIgniter, Laravel on Nov 3rd, 2012
去年 PHPConf 介紹了 CodeIgniter PHP Framework,這次講如何在 CodeIgniter 底下設計 RESTFul API,其實主要介紹兩個 CodeIgniter 套件,第一個是 RESTFul Server 前面是 RESTFul Client,一個伺服器端,後面用來測試 (Unit Test),底下是今年的 Slide,歡迎大家下載 RESTful API Design & Implementation with CodeIgniter PHP Framework from Bo-Yi Wu
Read Full Post »
Posted in Git, php, www on Oct 20th, 2012
今天筆者來介紹幾套目前免費的雲端虛擬主機服務,自從 Git 版本控制的出現後,大家可以發現,以往免費的虛擬主機搭配後台 Panel,這種模式已經不再看到,取代而之的就是用 Git 來管理程式碼,而不是用 FTP 上下傳方式了。筆者認為學會 Git,是一件非常重要的事情,這樣可以嘗試不同雲端服務,,像是 PHPFog,Pagoda Box,AppFog …等。這次介紹的雲端主機服務不同於 Linode VPS,Linode 是可以拿到完整的虛擬主機權限,可以進行主機的效能優化,以及安裝合適的套件。
Read Full Post »
Posted in CodeIgniter, Laravel, Nginx, php, Ubuntu on Oct 8th, 2012
相信大家都知道 Nginx 搭配 PHP-FPM 用起來效能還不錯,這次來筆記如何設定 Nginx 去除 PHP MVC Framework 討厭的 index.php 字串,不管是 Laravel 或 CodeIgniter 教學文件都是在 Apache 設定 .htaccess 來達成 Cleaner URL,Apache 最大好處支援 .htaccess,但是 Nginx 也有強大的效能,此篇紀錄如何設定 Nginx 達成 mod_rewrite 效果。
Read Full Post »
Posted in php on Sep 21st, 2012
preg_replace 可以使用正規語法來取代字串任何字元,,今天探討取代空白字元的效能,雖然這是個不起眼的效能評估,一般人不太會這樣去改,不過這是國外 PHP Framework 有人提出來修正的,經過許多人的測試一致同意。功能就是一篇文章內如果有多餘的空白能空取代成一個,一般人都會用 \s+ 正規語法,畢竟大家都知道 \s 代表單一空白或 \r 等符號,但是國外有人提出用 {2,} 方式來取代空白。程式碼如下,大家可以測試看看。 <?php $nb = 10000; $str = str_repeat(’Hi, I am appleboy ’ . "\n", 10); $t1 = microtime(true); for ($i = $nb; $i–; ) { preg_replace(’/\s+/’, ‘ ‘, $str); } $t2 = microtime(true); for ($i = $nb; $i–; ) { [...]
Read Full Post »
Posted in php on Sep 14th, 2012
因為專案需求,必須將資料庫資料輸出成簡易 Excel 檔案,如果要用 PHP 取裡 Excel 文件,我想大家首推一定是 PHPExcel,不管你要對 Excel 做任何處理都一定辦的到,但是專案只需要 generate excel 簡易表格出來,有需要這麼強大的 PHPExcel,網路上找到一個非常簡易的 Library 那就是 php-excel 作者似乎現在沒再更新了,不過已經夠專案使用了,PHP 程式碼也非常簡單。 How to use 程式碼很簡易 $header = array(’編號’, ‘姓名’, ‘電話’); $body = array(’1′, ‘小惡魔’, ’0934353289′); $xls = new Excel_XML; $xls->addRow($header); $xls->addRow($body); $xls->generateXML("test"); 或是將資料寫成多為陣列 $body = array(array(’編號’, ‘姓名’, ‘電話’), array(’1′, ‘小惡魔’, ’0934353289′)); $xls = new Excel_XML; $xls->addArray($body); $xls->generateXML("test"); [...]
Read Full Post »
Posted in CodeIgniter, php on Aug 30th, 2012
看來 CodeIgniter 團隊看到大家的心聲了,在 2.0.x 版本的時候就已經有人開始發 patch 讓 CI 可以支援 Native Session,也就是透過 session_start 來存取 session,而不是本來的 cookie session,很高興 philsturgeon (Fuel Framework 作者) 今天將此功能 merge 進來 3.0.x 分支,另外 Session 也同時抽出來變成 Driver 而不是單一個 Library 了,詳細可以看此 Patch 連結,也因為這樣所以之前自己寫的 CodeIgniter-Native-Session 可以功成身退了。目前官方同時維護兩個分支,2.1.x 另外是 3.0.x,後者是專門開發新功能,有機會在慢慢介紹。
Read Full Post »