Smarty之星鍋娛樂網

Posted on 07/28,2008

星鍋娛樂網你想當大明星嗎? 嗯,我想 :)

這案子在當初頁面設計尚未底定,且工作時間有限的情況下,我把這案子用Smarty,搭配MVC(Model-View-Controller)的架構來製作;另外再搭配上Subversion的版本控制功能,讓設計人員可以commit他們的template,工程師可以commit他們的程式碼,讓彼此修改頁面而不小心動到程式碼的影響降到最小,在萬一真的不小心改壞了,還可以回朔之前的版本,真的很方便。

這案子另外還有需要跟金流廠商串接的部份(線上刷卡、便利商店代收及網路ATM功能),忍不住想抱怨一下,有的金流廠商的API很方便(例如綠界),串接起來很輕鬆;但有的廠商的API,看了一下程式碼實在很老舊,明明就有switch的語法可以用,但還用一堆的if...else...來寫,看了實在火大,又還規定一定要用Big5編碼。(我這人有程式碼潔癖,所以看不下去最後就自己動手改寫了....)

網址:http://www.starswok.com


 

Zend Framework之全國加油站 :)

Posted on 06/19,2008

全國加油站之油滴寶寶經過了許久個日子的努力,終於讓全國加油站上線了,這次,用的也是ZF(Zend Framework)來實作的。

網站:http://www.npcgas.com.tw/

上次的HI-CHEW開心堂實作算是第一個試作品,新手上路,所以架構是仿照Rob Allen的"Getting Started with Zend Framework"這篇文章來佈署的,但上回實作的過程中總覺得有些不方便的地方,所以這次全國加油站網站在實作的MVC佈署架構,就上次實作的HI-CHEW更模組化一些,期望下次再建構網站時可以有更多的模組能在最小修改(或是不用修改)的情況下再重複使用。

心得:果然,還是直接實作比看一堆文件還學得快,也記得比較牢 :)


 

Zend Framework與Dojo的組合

Posted on 05/28,2008

Zend Framework Logo不久前ZF宣佈與Dojo的整合..
我個人比較愛jQuery,可惜目前ZF目前選擇的是Dojo當做它的好伴侶
這兩天再來了解一下Dojo,期待jQuery也被整合進去呀

參考資料:
官方消息
Zend Framework Dojo Integration
Zend Frameowork + Dojo的ppt

補充:
看了一下Dojo的資料,整個是個不小的架構,甚至還得改寫原來html code的習慣...試玩了一下Dojo的Helloworld,真的不太習慣...我還是比習慣jQuery,不過Dojo背後有大廠在支持啊...-_-


 

Zend Framework之Zend_ACL

Posted on 04/30,2008

Zend Framework Logo在Zend_Acl當中有兩個重要的部份:Resource(資源) 與 Role(角色),其中「角色」存取「資源」,舉個白話的例子,在一個進出受管制的電梯大樓,小明可以進入101樓的辦公室,表示小明這個「角色」,他的通行證可以刷卡進入101樓的電梯,進入101樓這個「資源」。

比較常見的是網站管理系統的權限實作,例如編輯部的同仁只能用網站的內容編輯系統,廣告部則可以使用廣告刊播系統以及報表系統,但沒有使用內容編輯的權限。那在ZF中,Zend_Acl如何實作這樣的概念呢?

 (閱讀全文)


 

Zend Framework之開心實作堂 :)

Posted on 04/08,2008

Zend Framework Logo看著上一篇網誌的日期,轉眼又是四個月過去了,話說這段時間除了手邊的案子一直在進行之外,就是花了些時間在Zend Framework上。不過看歸看,一直在觀望不敢拿自己手邊的案子做實驗 :) 

前不久ZF 1.5 Release推出了,看起來還不賴,就狠下心來用它了,反正好壞也是一刀 :)  最近手邊的一個星光幫林宥嘉代言的短期網路活動案(HI-CHEW開心堂),就整個是用ZF來實做的。

因為對MVC沒很熟,所以程式碼很多都不太MVC(我好像把Controller該做的動作寫到Model裡了),應該還有滿多地方要改進的,下個案子再來tune :)

活動還有些獎品,活動期間是97年4/1到5/30,有興趣的可以去買個糖果上去參加抽獎 :)


 

自動產生swf檔

Posted on 08/22,2007

我的環境:
Windows XP Professional(SP2)
Appserv(Apache 2.2.4, PHP/5.2.3, MySQL 5.0.45)

透過Ming就可以直接產生swf檔

 (閱讀全文)


 

Zend Framework安裝

Posted on 08/14,2007

環境:
Windows XP Professional(SP2)
Appserv(Apache 2.2.4, PHP/5.2.3, MySQL 5.0.45)
Zend Framework 1.0.1(2007-07-30)

 (閱讀全文)


 

PHP5 Magic Function : __autoload

Posted on 08/03,2007

在PHP裡使用類別,若忘了把類別檔案給include進來,在實體化的時候會發生錯誤。在PHP5裡有這個方便的function可以用:「__autoload」。透過它,就可以讓類別檔在需要的時候載入了。

function __autoload($class_name){
  $filename = strtolower($class_name) .'.php';
  $file = site_path .'classes' .DIRECTORY_SEPARATOR .$filename;
  if(!file_exists($file)){
    return false;
  }
  include_once ($file);
}

這樣只要把類別檔放在classes目錄裡面,它在需要用的時候就會透過__autoload function去找到相對應的檔案Cool

根據php.net所寫的注意事項:
1. 它在Command Line模式底下不能用;
2. 在裡面丟出Exception抓不到


 

PHPMailer

Posted on 05/02,2007

為了要用PHP在透過本機的mail程式發信,搞了一整晚都搞不太定的sendmail.cf,換了postfix也時穩時不穩(看樣子我的LPI認證是考假的了..)

突然想起以前某個外發的程式碼裡有這玩意

http://phpmailer.sourceforge.net/

可以指定非本機的SMTP server發信,還可以夾帶檔案、HTML格式寄信,還是以OOP的方式寫的,使用上相當容易

寫這class的作者,真的是佛心來的!! :)


 

Create Thumbnail Image with PHP & GD

Posted on 04/09,2007

用PHP直接產生小縮圖的方法:
http://icant.co.uk/articles/phpthumbnails/
http://www.sitepoint.com/article/php-gd-libraries

透過GD Library就能直接操作,真方便,ASP就還得靠其它元件才能玩
最近的案子都會用得上 :)


 

PHP在unicode時出現亂碼

Posted on 01/03,2007

自己最近在試PHP的時候,發現當include一個unicode的檔案進來,會出現下列錯誤:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:\www\v3\ortho\classes\GlobalSettings.php:1) in E:\www\v3\ortho\classes\GlobalSettings.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at E:\www\v3\ortho\classes\GlobalSettings.php:1) in E:\www\v3\ortho\classes\GlobalSettings.php on line 3

環境:Appserv on Windows 2000

我試著用記事本把被include的那個檔案另存成UTF-8,還是出現一樣的問題
找了一下資料,似乎是一個叫做BOM(Byte Order Mark)的問題
網路上發現有一些文章可以參考:

-談談Unicode編碼,簡要解釋UCS、UTF、BMP、BOM等名詞
-Unicode、BOM
-用 unicode (UTF-8) 編輯的中文網頁卻出現亂碼

解決方法:
我發現一個免費又不錯用的unicode editor叫做「EmEditor」,它可以在存成UTF-8格式時,不把BOM加上去,這樣程式執行起來就正常了 :)


 

PHP OOP

Posted on 12/31,2006

最近拿PHP來玩OOP(Object-Oriented Programming),發現這還挺有趣的 :)

一、建立類別:

<?php
class myFirstClass{
  var $username;
  var $age;

  function myFirstClass(){
    //this is CONSTRUCTOR!!
  }

  function showMe(){
    echo "My Name is " .$this->username .", and I'm " .$this->age ." years old!";
  }
}
?>

二、類別實體化:

<?php
  $myInstance = new myFirstClass();
  $myInstance->username = "eddie";
  $myInstance->age = 20;
  $myInstance->showMe();
?>

它應該在頁面上會輸出:
My Name is eddie, and I’m 20 years old!

我用的是php4的版本,所以跟5的版本應該會有些不同,至少Contrustor的方法就不太一樣了

參考資料:
PHP: Classes and Objects (PHP 4) - Manual
How efficient is OOP in PHP?