PHPFog 即將關閉,請儘速轉移到 AppFog

php-logo
在10月寫了一篇

PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog 介紹,上個月很不幸接到 mail 通知,說在今年12月即將關閉 PHPFog,所以免費的服務會在12月21號全部斷線,所以官方寫了 如何轉移 PHPFog 到 AppFog,大家可以參考看看,話說自己把所有的服務都轉到 AWS EC2 上面了,因為在 PHPFog 遇到 Session 一直消失的 Issue,也沒辦法解決,如果有在用 PHPFog 服務,請儘快轉移。

2012 PHPConf RESTful API Design & Implementation with CodeIgniter PHP Framework

phpconf

去年 PHPConf 介紹了 CodeIgniter PHP Framework,這次講如何在 CodeIgniter 底下設計 RESTFul API,其實主要介紹兩個 CodeIgniter 套件,第一個是 RESTFul Server 前面是 RESTFul Client,一個伺服器端,後面用來測試 (Unit Test),底下是今年的 Slide,歡迎大家下載

PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog

php-logo
今天筆者來介紹幾套目前免費的雲端虛擬主機服務,自從

Git 版本控制的出現後,大家可以發現,以往免費的虛擬主機搭配後台 Panel,這種模式已經不再看到,取代而之的就是用 Git 來管理程式碼,而不是用 FTP 上下傳方式了。筆者認為學會 Git,是一件非常重要的事情,這樣可以嘗試不同雲端服務,,像是 PHPFogPagoda BoxAppFog …等。這次介紹的雲端主機服務不同於 Linode VPS,Linode 是可以拿到完整的虛擬主機權限,可以進行主機的效能優化,以及安裝合適的套件。

[Read More]

PHP MVC Framework 搭配 Nginx + PHP-FPM 設定檔

Laravel PHP Framework
相信大家都知道

Nginx 搭配 PHP-FPM 用起來效能還不錯,這次來筆記如何設定 Nginx 去除 PHP MVC Framework 討厭的 index.php 字串,不管是 LaravelCodeIgniter 教學文件都是在 Apache 設定 .htaccess 來達成 Cleaner URL,Apache 最大好處支援 .htaccess,但是 Nginx 也有強大的效能,此篇紀錄如何設定 Nginx 達成 mod_rewrite 效果。

[Read More]

[PHP] preg_replace 效能測試 (將兩個空白字元以上取代成一個)

php-logo

preg_replace 可以使用正規語法來取代字串任何字元,,今天探討取代空白字元的效能,雖然這是個不起眼的效能評估,一般人不太會這樣去改,不過這是國外 PHP Framework 有人提出來修正的,經過許多人的測試一致同意。功能就是一篇文章內如果有多餘的空白能空取代成一個,一般人都會用 \s+ 正規語法,畢竟大家都知道 \s 代表單一空白或 \r 等符號,但是國外有人提出用 {2,} 方式來取代空白。程式碼如下,大家可以測試看看。

[Read More]

簡易 PHP Excel Generator Library

php-logo
因為專案需求,必須將資料庫資料輸出成簡易 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");
結論就是殺雞焉用牛刀,就這個簡易 Library 就對了。

CodeIgniter 3.0.x 支援 Native Session Driver

CodeIgniter
看來

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,後者是專門開發新功能,有機會在慢慢介紹。

快速修正專案 PHP Coding Standards

底下是之前的投影片教導創業團隊制定 PHP 程式碼規範,讓工程師可以遵循此規則達到團隊合作

投影片內容都是現有 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2 規則,那如何將既有專案的 Coding Style 轉換成上述標準呢,可以透過 PHP Coding Standards Fixer tool 來快速完成,此工具是由 Symfony Framework 完成。透過此工具可以快速且無痛轉換程式碼風格,舉個簡單例子:

[Read More]

關於 PHP FIG Group 所制定的 PSR-0, PSR-1, PSR-2

上禮拜寫了一篇 寫出好維護的 PHP 程式碼,看到 gslin 大神回應了一篇 關於可維護的 PHP 專案:PHP-FIG 的 PSR-0、PSR-1、PSR-2,其實我已經關注 PHP FIG 有一陣子了,FIG 所定義的三份文件 PSR-0 (Auto loading Standard), PSR-1 (Basic Coding Standard), PSR-2 (Coding Style Standard) 寫的非常清楚,目的就是讓 PHP Open Source 專案有共同的 Coding Standard,方便大家共同開發。所以上禮拜提到的投影片內容有大部份參考了這份文件,裏面的內容比較不同的地方就差於 Control Structures 部份,舉個簡單例子: 寫 if 條件式,網路上只有兩種寫法 <?php if ($a == $b) { …… }[/code]

另外一種寫法

[code lang=“php”]<?php if ($a == $b) { …… }[/code]

[Read More]

寫出好維護的 PHP 程式碼

今天有機會到台中幫創業團隊制定 PHP Coding Style,相信程式設計師每天花最多時間的就是 maintain code 了,如何寫出大家都易於維護的程式碼,必須先制定團隊的 coding style 為首要目標,底下分享個人推薦的寫法給大家參考,希望對於未來維護,轉移程式碼或教育訓練剛起步的團隊有些幫助。