Archive for the 'CodeIgniter' Category

設定 CodeIgniter 透過 Gmail 發信

Published on Jul 17 2008 under CodeIgniter 284 Views

由於自己租的 slicehost 只有 256MB 的記憶體, 架 mail server 又很麻煩 (因為我也不懂 XD), 又似乎 mail 有啥反解的問題, 而直接透過 sendmail 這樣寄信會被當成垃圾信, 所以就申請了 Google app, 然後用申請到的帳號透過 SMTP 來發送信件。 由於 Gmail 的 SMTP 又跟一般的設定稍微不一樣(有 SSL), 所以記錄一下。

CodeIgniter 上面其實就只是設定個 config 檔就可以了, 設定檔如下:

application/config/email.php

閱讀全文 »

沒有回應

PHP Framework 的效能比較

Published on Jul 02 2008 under CodeIgniter, PHP 714 Views

今天看到前幾天才出爐的測試, PHP framework comparison benchmarks, 其實應該就是在比 framework 的結構跟設計對於效能的影響?

 

Run 1

Run 2

Run 3

Run 4

Average

Baseline HTML

1327.5

1326.5

1328.6

1329.1

1327.9

Baseline PHP

331.6

332.1

331.4

332.0

331.8

CakePHP

3.6

3.7

3.8

3.5

3.7

CodeIgniter

21.5

21.2

21.7

21.7

21.5

Zend Framework

9.3

9.1

9.2

9.3

9.2

這篇文章中比較了 CakePHP, Zend FrameworkCodeIgniter, 然後還有一般的 html 及 plain php, 另外還有使用/不使用 APC 跟 eAccelerator 來比較這三個 framework 的效能。當然, 基本上一定是 html 最快, 然後是 plain php, 再來才會是 framework。而 Framework 中當然最快的是 CodeIgniter 啦! 接著是 Zend Framework, 最後是效能很糟的 CakePHP ( XD )

閱讀全文 »

7 個留言

CodeIgniter 1.6.3 released

Published on Jun 27 2008 under CodeIgniter 509 Views

這次主要是加強安全性的更新, 除了加強了 xss_clean 函式, 另外也可以用 xss_clean 來測試上傳的圖片是否安全。 詳細的資訊可以看看 change log

在 library 方面:
pagination library 加上了可以用 query string 來作分頁的功能, 但還是覺得用 uri_segment 來做比較漂亮, 不過用 query string 也許有他方便的地方。

input library 則是加入了 get_post() 可以用來取得 $_GET 跟 $_POST 的資料, 而我已經用了好一陣子的 get() 也終於加上了文件說明, 畢竟 CodeIgniter 設計是不用 get 來傳資料的。

在 helper 方面:
增加了 Number helper

Form helper 中的 from_input 函式, 自動加入 size 跟 maxlength 這兩個 attributes 的功能, 在這個版本也已經拿掉了。 size 拿掉是不錯, 省了每次都要去設定 size 的動作, 因為預設的size是 30 稍微長 了點, 不過我倒是覺得 maxlength 應該留著阿 ~”~

5 個留言

CodeIgniter 1.6.2 released!

Published on May 14 2008 under CodeIgniter 904 Views

昨天才在說 CI 1.6.2 快出來了, 沒想到睡前就看到 CI 1.6.2 發佈的新聞 ( Change log )。

CI 的 User Guide 新增了 Common Functions 跟 Reserved Names 兩個頁面, 從 Common Functions 發現了原來有 config_item 這個  function!! 另外也發現了 HTML Helper 有 img() 這個 function, 看來我忽略他好一陣子了 Orz

基本上沒有太重大的更新, helpers 的功能新增比較多, 也多了一個 Compatibility Helper。 不過…值得一提的是 CodeIgniter 有也 twitter 了 XD 看來 twitter 已經變成是發佈訊息的一個管道, 像是 RSS 一樣, 不過 twitter 接續的應用似乎比 RSS 多上許多。 Anyway, 快去 Follow 更新 CodeIgniter  吧!

沒有回應

CodeIgniter Modular extension: HMVC

Published on Mar 08 2008 under CodeIgniter 1,112 Views

在使用 CodeIgniter 在開發的時候, 其實一直覺得 CI 的架構好像有點不足, 少了什麼東西。 例如說我想要有個使用者聯播的功能區塊, 有很多地方都想掛上這個功能區塊, 但是我該怎麼做? 在 CodeIgniter 現有的架構中, 看來就是寫成 Library 然後掛個 View, 然後把輸出 return 到呼叫的 Controller, 但是我總覺得這樣很亂, 而且東西一多, 會很難維護, Library 會不像 Library 而 View 到底是給 Controller 用還是 Library 用, 甚至 Model 也會一起捲進來, 這樣程式的架構會很雜亂。

所以後來我就自己動手 extends CI 開始寫起了 module 功能, 寫沒多久就發現! 原來早就有類似的東西, 而且在 CodeIgniter wiki 就有提到了, 就是 Modular Extensions - HMVC

HMVC 可以用來幫 CI 加上 module 的功能, 我一直想要的就是這個功能阿!! 可以擺脫先前雜亂的方式, 可以很方便寫個模組化的功能。

簡單說明一下 HMVC, 在掛上 HMVC 之後就可以呼叫 module, 而 module 有自己的 Controller、View 跟 Model, 這樣一來寫好 module 之後, 直接在 Controller 呼叫 module 就可以了, 這個整個程式架構就非常的明朗阿!! 整個 module 的 code 都在同一個資料夾裡面, 非常清爽! 所以說 Framework 早該有 module 這功能的 XD

4 個留言

Lighttpd rewrite rules for CodeIgniter

Published on Mar 01 2008 under CodeIgniter, lighttpd 1,251 Views

由於 CodeIgniter 使用 index.php 當作 font controller, 所以基本上把所有的東西都 rewrite 到 index.php 就可以了! 不過由於還是有 images, js 跟 css 檔案不能做 rewrite, 所以再加上類似於 public 那一行就行了! (我習慣是把 images, js 跟 css 資料夾都放在 public 資料夾裡面)

2 個留言

CodeIgniter 1.6 released!

Published on Feb 05 2008 under CodeIgniter 956 Views

前幾天就看到這一篇。 CodeIgniter 1.6 出來了! 關於 detail 可以看看 Change Log,大致更新如下:

新增了 DB Forge class (這個對我來說好像用不太到) 還有! 就是 Database 的 collation 設定!

Active Record 把一些 method 名子改掉了, 像是 orderby 改成 order_by 之類的, 不過舊的 method 名稱目前還是可以繼續用, 不過應該有空就要來把程式改一改, user guide 也都已經提到舊的 method 名稱是 deprecated 了。
閱讀全文 »

3 個留言

CodeIgniter Database DSN problem

Published on Dec 23 2007 under CodeIgniter 1,209 Views

這是針對 CodeIgniter 1.5.4 所寫的一個問題, 由於前幾天小雷開始自己用 CI 在寫程式, 不過這次小雷在 CodeIgniter 並不是設定檔的方式來設定資料庫的方式, 而是透過用 DSN 的方式來連線, 結果碰到了問題, 其實這是 CodeIgniter 的 bug。

dsn 應該是像下面這樣:

但是在執行的時候, 跑出來的錯誤訊息居然是抓錯了 database driver, 用這個 dsn, 當然 CI 的 DB driver 應該就是 mysql, 沒想到 CodeIgniter 抓出來的 database driver 居然是 m … 沒錯! 一個英文字母「m」, 像是下面這樣:

require_once(/srv/www/vhosts/admitere/system/database/drivers/m/m_driver.php) [function.require-once]: failed to open stream: No such file or directory

閱讀全文 »

沒有回應

Simplepie in CodeIgniter

Published on Dec 08 2007 under CodeIgniter 1,104 Views

simplepie, 一個頗好用的 php rss parser library, 因為習慣用 CodeIgniter, 就用 CodeIgniter 的方式來寫一下。

第一個步驟就是到 simplepie 的網站下載套件回來、解開, 然後放到 /system/application/library 裡, 把 simplepie.inc 重新命名成 simplepie.php, 接著就可以像下面這樣子用 (當然, 這是寫在 controller 裡)

閱讀全文 »

2 個留言

將 Zend Framework 放進 CodeIgniter

Published on Nov 10 2007 under CodeIgniter 1,725 Views

基本上這裡所謂的整合就是用 CodeIgniter 的 hooks 來做, 單純用 hooks 來設定 include_path, 不然直接設定 include_path, 把 Zend Framework 當成跟 PEAR 類似的放著也可以, 不過由於這樣整合看起來比較帥, 之後程式如果搬家也不會因為失誤而漏了 ZF :p 又, 用 SVN 來管理也方便。

1. 下載 ZF, 把 library 放進 CodeIgniter
就依我的方式, 我是把 ZF 解開後, 把 library copy 放到 CodeIgniter 的 system 下面, 命名為 zendframework

/project/system/zendframework

2. 開啟 CodeIgniter hook
修改 /project/system/application/config/config.php

閱讀全文 »

4 個留言

Next »