Archive for the 'PHP' Category

讓瀏覽器快取 PHP 產生的圖片

Published on Jul 18 2008 under PHP, Programming 273 Views

由於 stickeraction 的關係, 貼出去的貼紙讓我的主機流量暴增, 覺得這樣下去這個月的 100G 流量一定會爆, 所以對於貼出去的貼紙做了一些處理, 讓瀏覽器快取住, 多少可以減少一些流量, 其實一開始就該做了 XD 只是沒有意識到, 完全沒有經驗 XD 而且工作上也比較沒有流量的考量, 所以這次也學到了些東西。

原本在主機上就都有設定 lighttpd, 讓圖片, js 跟 css 檔產生 etag、expire 跟 last modified … 等的 HTTP headers, 利用瀏覽器的快取機制來減少主機的流量。 不過由 PHP 產生的圖片完全沒有 cache, 今天才改了一下程式, 加上一些 header, 來減少流量的支出, 不然這個月主機流量穩爆 ~”~
閱讀全文 »

2 個留言

Kohana PHP framework 試玩心得

Published on Jul 16 2008 under PHP 265 Views

Kohana 前身叫做 BlueFlame, 是由 CodeIgniter 衍生出來的 PHP framework, 所以要從 CI 跳槽還滿快的 XD 而 Kohana 跟 CodeIgniter 最大的不同就是, Kohana 只能在 PHP 5 上跑。 不過其實… 現在都該換到 PHP5 了啦:p 重點是! Kohana 解決了 CodeIgniter 很多不足的地方。

像是 Namespace 的問題, 在 CI 上如果有相同名稱的 library、Model 或是 Controller 就會衝到, Kohana 則解決了這個問題。 另外在 CI 上如果有自定的 helper 的話, 其他維護者並不容易找出是寫在哪支 helper 裡, 而 Kohana 的 helper 是用 class 來作, class name 的 prefix, 則可以容易辨識出是哪支 helper, 也減少 function name 衝突的問題, 對於維護上方便很多。

另外 Kohana 也提供了 module 的機制, module 擁有自己的 controller, model 跟 view, 可以將程式劃分的更細。例如 Konaha 本身就提供了 Auth module (ACL)。 雖然 CI 也有 matchbox 提供了相同的功能, 但是需要 override CI_Loader, 萬一 CI 的版本升級, CI_Loader 有所改變呢? 當然還是比不上 Kohana 內建的好。
閱讀全文 »

4 個留言

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 個留言

關於 PHP 6 的改變

Published on May 13 2008 under PHP 646 Views

看了 The future of PHP 這一篇後, 來記錄一下, 關於 PHP 6 的改變, 主要是有些東西會拿掉, 現在應該就要避免去用到, 不過其實也應該沒什麼人在用了吧? XD

簡單來說就是 PHP6 增進了下面這兩點
Improved Unicode support
Namespaces (PHP 5.3 已經有了)

然後下面是 PHP6 會拿掉的東西
magic_quotes
register_globals
register_long_arrays (像是: $HTTP_*_VARS)
safe_mode
PHP tags (asp style) (像是 <% %>)
FreeType 1 and GD 1
ereg

沒有回應

PHP: 去除 UTF-8 BOM

Published on May 08 2008 under PHP, Programming 998 Views

今天在作處理、轉換 csv 的東西, 碰到一個 UTF-8 的 csv 檔, 結果轉換出來的檔案因為 BOM 掛點。下面這一段可以用來將 BOM 去掉。

沒有回應

PHP 語法錯誤檢查

Published on Apr 03 2008 under PHP 783 Views

之前在 Tsung 那邊看到 大量檢查 PHP 程式是否有 Syntax Error 這一篇文章, 後來每次想到要檢查的時候, 都因為這一段太長記不下來 XD 所以我每次就又都從 Google 找這篇文章, 今天想說把它寫下來, 寫成一個 shell script 好了 XD

我把檔名叫 phplint

在 chmod +x phplint 之後, 在想要檢查的目錄打 phplint 就可以了。

基本上我是在自己的 home 有開一個 bin 的目錄, 然後再 .bashrc 裡加上

之前的 twit shell script 也是這麼作 :p

沒有回應

對 PHP 沒信心嗎?

Published on Mar 19 2008 under PHP 945 Views

如果這一陣子因為 Ruby 跟 RoR 的爆紅, 讓你急著想轉換到 Ruby (好吧! 至少我偷學了 Ruby XD) 也許可以看看 CIO 的這一篇 You Used PHP to Write WHAT?!comments。 由於文章中提到的一些論點讓 PHP的擁護者倒彈, 像是…

Q: When should you use PHP?
A: Prototyping an application that will be converted to Java or some other language.

或是

For large enterprise solutions, PHP makes a great prototyping or feasibility tool, but heavily loaded sites that require thread safety, security and stability should use Java.

結果因為這篇作者的言論, 似乎有點瞧不起 PHP, 導致 comments 被 PHP 擁護者洗版, 結果最後在這篇文章中多了下面這一段 XD
閱讀全文 »

4 個留言

安裝 Capistrano

Published on Sep 15 2007 under PHP 1,172 Views

最近在研究 Capistrano 這個東西, 他最主要就是搭配 SVN 來做程式碼自動部署(auto deployment)的工作, 如果程式碼都用 SVN 來作版本控制的話, 那麼會方便很多。基本上, Capistrano 是 RoR 用來做自動部署的程式, 不過在看過許多文章之後, 其實也可以拿來用在其他程式的部署上。

簡單的來説, Capistrano 就是可以讓你很方便的透過 ssh 在遠端執行指令。所以說沒辦法遙控 Windows XD

先來說說安裝吧! 首先就是要安裝 Ruby 啦! 把原始碼抓回來安裝啦! (以下當然不會是 Windows 的做法 XD)

./configure ; make ; make install

接著是裝上 RubyGem, 抓回來用下面的指令安裝

ruby setup.rb

然後就可以用 RubyGem 來安裝 Capistrano 啦! 加上 -y 的參數, 是說, 會裝上其他相依的 ruby gem。

gem install -y capistrano

然後因為某種原因, 會出現某個訊息, 不過玩 Ruby 的才需要知道, 就不說為什麼了 (因為我也不知道阿, 反正裝玩就不會在出現那一段訊息就是了 XD)

gem install fastthread

到這裡就大功告成啦!! Capistrano 安裝完畢!! 之後再來寫篇發佈 PHP 程式的心得 :p

沒有回應

Zend Framework 初探

Published on Aug 21 2007 under PHP 2,417 Views

因為上週末我掰咖了, 所以都在房間裡看書, 看電影。我把 iWoz 這本書看完了, 也看了門徒, 看了 Linda Linda Linda, 然後一整天都在吃泡麵 XD 也玩了一下 Zend Framework(以下簡稱 ZF), 試用一下可不可以單獨拿 ZF 其中的元件來用, 因為 ZF 的文件看起來好像可以這麼做。

在開始之前, 由於 ZF 只能在 PHP5 上面跑, 而我的 Mac OS X 預設的環境是 Apache 1.3 + PHP4, 所以我找到了這裡, 可以下載包好給 Mac 用的 PHP5 binary 套件, 很方便! 裝完只要 restart apache 就好了!

OK! 首先先下載 Zend framework, 然後我是解開放到

/usr/local/php5/lib/php/Zend

接著設定 php.ini 的 include_path, 加入 /usr/local/php5/lib/php/Zend/library, 變成

include_path = “.:/usr/local/php5/lib/php/Zend/library”

接著參照 ZF 的文件, 試一下 Zend_Service_Delicious 這個元件, 寫一小段程式如下, 哈! 馬上就可以列出我在 del.icio.us 裡的書簽 title, 真方便!

閱讀全文 »

2 個留言

最近使用 CodeIgniter 的雜亂心得

Published on May 28 2007 under CodeIgniter, PHP, Programming 1,485 Views

由於最近一直在 porting , 不只是為了好玩, 也是未來的趨勢, 所以採用了 framework 來作 porting 的動作, 其實一開始對於 framework 可以做到的事情, 有點感到驚訝! 一開始 porting 還滿好玩的, 但是相較於單純只是要將 view 跟 code 分離來說, 原本應該會採用 Smarty, 那麼我就可以很輕鬆的把這個程式 port 完, 不過在先前就一直有在 survey 一些 PHP framework, 所以這次才就直接衝了, 選用 CodeIgniter 這個 framework 來做 porting!

閱讀全文 »

6 個留言