新版 CodeIgniter Nexmo Message API Library Release

CodeIgniter
繼上次釋出第1版

CodeIgniter 透過 Nexmo 傳送簡訊 Mobile Messaging 之後,該版本只有支援簡訊傳送功能,如果大家想測試,可以上 Nexmo 官網申請帳號,就可以使用了,不過在官網 Documentation 裡面有新增了 Developer API 部份,這次改版就一次把全部加入到 Library 裡面。

[Read More]

2011 Taiwan php conference – CodeIgniter Framework

phpconf
今年第1屆舉辦

2011 PHP Conference,終於有機會去台北推廣 CodeIgniter,底下是我這一次的簡報,歡迎大家參考

Phpconf 2011 introduction_to_codeigniter
<div style="padding:5px 0 12px">
  View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/appleboy" target="_blank">Wu Bo-Yi</a>
</div>

CodeIgniter 透過 Nexmo 傳送簡訊 Mobile Messaging

CodeIgniter
在 gslin 大神看到這篇

用 Nexmo 送簡訊,自己也來測試看看,先到 Nexmo 註冊好會員,馬上就會有 EUR$2 可以使用,傳送一封簡訊價錢是 EUR$0.011,大概是台幣 0.45 元,目前支援中華電信台灣大哥大遠傳威寶電信,官方有提供一些 API Library,自己寫了一套 for CodeIgniter 支援 JSON 及 XML 兩種格式,並且在 getsparks 放上一份

透過 getparks 安裝 直接參考網站安裝:

Get the Latest

php tools/spark install -v1.0.0 Nexmo-SMS-Message
讀取 spark library:
// Load the spark
$this->load->spark('Nexmo-SMS-Message/1.0.0');
// Load the library
$this->load->library('nexmo');

透過 git 安裝 直接看

CodeIgniter-Nexmo-Message README 安裝方法。

輕量級 A Clean & Classy PHP Framework Laravel 簡介安裝

Laravel PHP Framework
今日作者來介紹一套輕量級 PHP Framework:

Laravel,目前還尚未發現台灣有任何人使用這套,然而 PHP Framework 實在太多種了,要把每一套都弄熟實在很不容易,如果作者有玩過一定會上來寫些教學文件,Laravel 是基於 PHP 5.3 環境的 PHP Framwork,裡面已經都是用物件及 5.3 的 Namespace 下去開發,如果您想研究 Laravel PHP Framework 可以 Follow Laravel Twitter,更重要的是追蹤 Github Source Code。也許可以看一下 2.0 的 Roadmap

[Read More]

安裝 XCache 加速 PHP 執行速度

php-logo

前言

最近 FreeBSD 系統常常會當機,加上 Varnish cache + APC 一直給我出包,所以這次就換了一套加速 PHP 執行的套件 XCache,這是一套由華人所開發的加速器,可以參考篇台灣PHP聯盟論壇所發表 PHP 加速器 - xcache,裡面可以看到這篇裡面就有中文的對話,非常好玩,這次也順便把 PHP 升級到 5.3.8 版本,還有 Varnish 一次升級到 3.0.1 版本。

各家 PHP 加速器

大家都知道目前網路上知名的 PHP 加速器 apc, eaccelerator, phpa, truck-mmcache,這幾套網路上資料很多,大家都可以試著玩看看,尤其是前面兩套 APC 及 eaccelerator,phpa 目前已經不再維護了,truck-mmcache 版本好像也沒啥在更新,距離上次更新是 2009-07-17,Xcache 作者研究 truck-mmcache 跟 APC 已經很長的時間,他發現 APC 的程式碼比起 truck-mmcache 還要簡單更容易瞭解,所以大家也可以研究 APC 相關程式碼。

[Read More]

CodeIgniter@TW 成立 IRC 頻道 #codeigniter.tw

CodeIgniter
為了方便大家可以線上討論

CodeIgniter 技術,我在 Freenode 開了一個 IRC 聊天室,頻道是 #codeigniter.tw,歡迎大家可以上來聊聊天,當然在台灣官方首頁也加入了 Web 版的 IRC 聊天室,可以透過這網址進入,如果您是在 Windows 環境可以下載 XChat 軟體來上聊天室,Linux 底下可以透過 screen + irc 指令掛網。 另外講一下 CodeIgniter 最近的消息,那就是很高興官方成功轉換到 Github 上面進行版本控制,目前在 PHP Language 也爬升到第10名,第一名還是 Symfony,CodeIgniter 其中一位作者 Phil Sturgeon 與其他作者推出一套 Fuel PHP Framework 也是大受歡迎,排在 CodeIgniter 後面,真是讚。 不多說了,大家快來聊天吧 /join #codeigniter.tw

CodeIgniter 轉移版本控制到 Github 順便 Release 2.0.3

CodeIgniter
在我上禮拜 8/20,8/21 參加

COSCUP 2011 會議的時候,CodeIgniter 偷偷 Release 了 2.0.3 版本,也不算偷偷 Release,因為剛好8月20,21號也是 CICON 2011 會議,CodeIgniter 想給來聽演講的學員們一個驚喜吧,也因為這個 CodeIgniter Con 2011 會議,官方也宣佈將轉換版本控制,原本放在 bitbucket 的程式碼也都轉換到 Github 上面了,另外順便把 CodeIgniter Reactor 取消後面 Reactor 字串,改成 CodeIgniter 了,那 Reactor 呢,就變成 Develop 分支,這個消息真的是太棒了,轉換到大家所熟悉的 Git 版本控制,有些常常在貢獻程式碼的開發者,都是在使用 Github。不管是不是 CodeIgniter,其他許多 opensource 包含 jQuery, phpBB…等都是在使用 github。 [

直接下載 2.0.3 玩看看吧]1 參考:

繁體中文 CodeIgniter 官方公告

PHP function 參數 default value

2011.08.06 Update: 感謝 jaceju 指正筆誤 自己定義 PHP Function 的時候,假設該函式有1個參數,您可以傳入該參數或者是不傳,但是函式裡面如何判斷是否有傳入該參數呢?先看看底下例子: function test($arg_1 = NULL) { // 判斷 $arg_1 參數是否傳入 $arg_1 = $arg_1 || 'test'; echo $arg_1; } 你會發現上面結果會是 1,而不是 test,大家會懷疑為什麼這樣寫不行呢,那是因為 || 是 boolean operators,他只會 return true 或是 false,而不是回傳 string,如果想這這樣寫,大概可以用 javascript 或 perl 語言來寫,javascript 可以參考之前的文章 [Javascript] 在函數裡設定參數預設值,然而 PHP 的正確寫法要用 ?: 來取代 function test($arg_1 = NULL) { // 判斷 $arg_1 參數是否傳入 $arg_1 = (isset($arg_1)) ? $arg_1 : 'test'; // 或者是 $arg_1 = $arg_1 ? [Read More]

深入探討 CodeIgniter Input Class 核心程式流程

codeigniter_2
為什麼會寫到這篇呢?當然是有網友希望可以幫他解決困難,由於問題的解答需要比較長的文章解釋,就寫出這一篇啦。在我 2009 年開始推廣到現在,相信在台灣已經有不少人開始使用

CodeIgniter,自己覺得非常感動 XD,也非常欣慰,希望把好東西推廣給大家知道。廢話不多說,先來說說問題點,先前發表的一篇 [CodeIgniter] 利用 jQuery 簡易驗證使用者帳號/Email 最後有人留言針對 input->post() 在中文官網上面的 Input Class 教學有些疑慮,底下我先來說明網友的問題點。

input->post 如果為空,則塞進去資料庫竟然是 0 該網友引用了 Input Class 中文文件的內容

使用 POST, COOKIE, 或 SERVER 資料CodeIgniter 提供三個讓你取出 POST, COOKIE 或 SERVER 中項目的補助函數。使用這些函數的主要便利性在於, 它們會確認並檢視是否這些項目已被設定並且在未設定時回傳 false (boolean) , 而不是直接取出 ($_POST[‘something’]),官方範例↓這讓你可以方便地使用資料而不必預先測試它們是否存在。不然, 通常你可能會像這樣做:if ( ! isset($_POST[‘something’])) { $something = FALSE; } else { $something = $_POST[‘something’]; } 網友敘述:

但是為什麼還是為設定為0呢??這應該是檢查資料有沒有被設定而已,那我如果沒有輸入,又怎麼會出現 0 呢?? 網友希望 $username = $this->input-post(“username”); 能幫他判斷如果 username 沒有資料,就直接回傳 NULL,Insert 到資料庫時,應該是 NULL 而不是 0。

程式範例 網友其實沒有錯,根據文件上顯示,如果 $something =

$this->input->post(“something”); 取值過後,如果系統沒有 $_POST[‘something’],則會回傳 FALSE,我猜網友在跟 model 作搭配的時候使用了底下的寫法來塞值進入資料庫:

$data = array(
    "username" => $this->input->post('username'),
    "passwd" => $this->input->post('passwd'), 
    "email" => $this->input->post('email'),
);
$this->load->model('members'); 
$this->members->register($data);  
假設如果沒有 $_POST['email'] 的話,該欄位就會被設定為 0,原因很簡單,就是出在要塞值進入資料庫的時候,程式針對資料的型態判斷啦,底下從最開始取得

$_POST 資料開始說起。

[Read More]

PHP 將長期宣導程式設計師將 ext/mysql 改用 pdo_mysql 和 mysqli

php-logo
今天看到一篇 PHP-Dev 公佈一篇

[PHP-DEV] deprecating ext/mysql,大意就是 PHP 官方未來將打算移除 ext/mysql 的所有相關文件及功能,作者相信很多程式開發者都是用 mysql 套件下去開發,聽到這消息會非常錯愕吧。 官方 documentation team 討論移除的原因在於安全性的考量,在 DK 大神那邊看到是使用 ext/mysql 必須自己處理 mysql_real_escape_string 和 mysql_escape_string,所以官方希望教育使用者不要再使用 ext/mysql 了,底下是官方會做的事情

  • 增加說明指出 ext/mysql 已過時
  • 建議和取代方案
  • 包含取代方案的範例 官方提供了兩個解決方案

pdo_mysqlmysqli,官方列了幾點說明:

  • 從現在開始教育使用者及增加說明文件
  • 在 5.4 版本增加 E_DEPRECATED 訊息,甚至 5.5 6.0 都可以
  • 提供 pdo_mysql 轉換的說明文件
  • 專注於整理 pdo_mysql 跟 mysqli 的線上文件
  • 增加 “The MySQL situation” 的文件說明現況 看完這篇,大家現在趕快轉換到 mysqli 或者是使用 PDO 來開發程式吧
MySQL  PDO  php