ㄚ凱隨手紀 | 我就是在碎碎念~

CAT | CakePHP

五月/10

10

FirePHP for CakePHP 安裝

FireBug, 是一個 Firefox 上面非常方便的網頁除錯工具….
FirePHP, 是 FireBug 的一個擴充, 可以讓 FireBug 處理 FirePHPCore librar 輸出的錯誤訊息…

有什麼好處?..
當用 FirePHP 後.. PHP 運行時候產生的錯誤訊息就不會直接輸出到畫面上影響畫面…
而可以在 FireBug Console 裡面才看到錯誤訊息或是 Debug 訊息…

在 CakePHP 怎麼裝呢?…
可以參考這篇文章..

http://bakery.cakephp.org/articles/view/debugging-with-firephp

基本上流程如下:
首先下載 FirePHPCore Library http://www.firephp.org/HQ/Install.htm
下載解開後, 把 FirePHP.class.php 拷貝到 APP/vendors/FirePHP

接著把 http://bakery.cakephp.org/articles/view/debugging-with-firephp 裡面的 FirePHP.deubgger.php 下載存在 APP/vendors/FirePHP 裡.

最後調整 APP/config/bootstrap.php ..
增加一行
App::import(‘Vendor’, ‘FirePHPDebugger’, array(‘file’ => ‘FirePHP’ . DS . ‘FireP
HP.debugger.php’));

這樣就好了…

以後 CakePHP 運行時候產生的錯誤訊息就會經由 FirePHP 輸出, 而不會直接輸出在畫面上囉!!!..

另外, 可以在任何一個地方使用 fb(‘Debug Message’); 來輸出除錯訊息到 FirePHP …

六月/09

8

Cake 如何執行 Shell …

CakePHP 支援可以很簡單輕易的寫出 shell/tasks 的 script ..
只要照著 The-CakePHP-Console 裡面的教學,很輕易的就可以照個跟 Controller 的寫法寫一個 Shell …

但是要怎麼把 Shell 在 crontab 裡面執行?…

基本上也很簡單..
下面是範例…

首先你要知道你的 Cake Core Lib 在哪…
像我是放在 /home/darkhero/library/ 下面的 cake 目錄下..
所以 cake 的執行檔的絕對路徑是 /home/darkhero/library/cake/console/cake

而我的 project 假設是放在 /home/darkhero/public_html/my_app 下面好了….

那我就要可以用 /home/darkhero/library/cake/console/cake -app /home/darkhero/publict_html/my_app

他就會自動去找出 /home/darkhero/public_html/my_app/vendors/shells/ 下面所有的 shell 並且列出來讓妳知道有哪些…
像是這樣…

APP/vendors/shells:
expire_check
update_thumbnail
daily_report

上面的這個輸出就表示我有寫了 3 個 shell 可以執行…

而執行的方式就.

/home/darkhero/library/cake/console/cake -app /home/darkhero/publict_html/my_app

就會執行囉…
而放入到 Crontab 則只要把上面的完整路徑丟進 crontab 就好囉.. :)

ps 通常我會把 /home/darkhero/library/cake/console/cake 設定一個 alias..這樣就會比較方便了.. :p
甚至還有像是 alias cake_my_app=’/home/darkhero/library/cake/console/cake -app /home/darkhero/public_html/my_app’ 這樣的設置.. :p

十二月/08

31

Model Validate Message 與 I18n

這裡有個要注意的地方!

由於 Model Validate 的Message部份用是類似下面這樣的方式設定…

class MyModel extends AppModel{
var $validate = array(
'born' => array(
'rule' => 'date',
'message' => 'Enter a valid date',
)
);
}

但是這樣在使用 i18n 的時候會有個問題是,我們無法在 object 的 var 使用 __() 去呼叫 i18n 的 global function .

解決方式是在 view 的地方改用自定義的錯誤訊息輸出.
view.ctp

<?php echo $form->error('born',__('Enter a valid date for born.',true));?>

而原來用 $form->input() 的部份記得加上參數 array(‘error’=>false) 來要求 input 不要判斷輸出 error tag.

No tags

十二月/08

25

CakePHP 1.2 Release

中文消息到這裡看吧…

http://twpug.net/modules/news/article.php?storyid=236

No tags

十二月/08

1

NamedScope for CakePHP

終於 CakePHP 也有了這個好用的 Model behavior .. 雖然 Rails 好像很久以前就有了.. :p .. 但是也來的不遲阿!!!

http://developingwithstyle.com/2008/11/20/namedscope-or-cakephp/

有了這個 Behavior 就可以簡單且清楚的定義常常會用到的 Conditions .

像是範例中,我們長長需要只找出有啟動過得使用者或是有在線上的使用者。

因此可以直接像是這樣設定


class User extends AppModel {

  var $actsAs = array(

    ’NamedScope’ => array(

      ’active’ => array(

        ’conditions’ => array(

          ’User.is_active’ => true

        )

      ),

     ’online’ => array(

        ’conditions’ => array(

          ’User.is_online’ => true

        )

      )

    )

  );

};



這樣以後在 Controller 中只要輕鬆的使用


$active_users = $this->User->active(‘all’, array(

    ’conditions’ => array(

        ’User.created’ => ’2008-01-01′ // 額外條件

    ),

    ’order’ => ‘User.name ASC’

));

或是更簡單的
$active_users = $this->User->active(‘all’);


 

No tags

六月/08

6

CakePHP 1.2 RC 釋出…

應該是昨天晚上的事吧…

Release: Pure Cake Power in RC1

不少東西有調整跟修改,性能方面似乎有用 XDebug 作過不少測試,也是提昇了很多喔。

不過要注意的就是像是 findAll() 的時候傳入的 conditions,要明確指定欄位的 model 喔..像是 $conditions = array(‘Model.field >’ => $value);

No tags

五月/08

30

資料庫讀寫分離

當系統越來越大的時候…
資料庫的負擔也會越來越大..這時候通常都會靠讀寫分離來讓系統更穩定. 讓資料庫更有效率…

在 CakePHP 可以靠下面的設定輕鬆達到…

database.php 的設定中..
[code]<?php
class DATABASE_CONFIG {

    public $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => '192.160.1.110',
        'port' => '',
        'login' => 'root',
        'password' => '1234',
        'database' => 'cakephp',
        'schema' => '',
        'prefix' => '',
        'encoding' => 'UTF8'
    );
    
    public $master = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => '192.168.1.100',
        'port' => '',
        'login' => 'root',
        'password' => '',
        'database' => 'cakephp',
        'schema' => '',
        'prefix' => '',
        'encoding' => 'UTF8'
    );
    
}
?>[/code]
先在 database 加入主要負責寫入的 master 主機…而一般負責讀取的主機就放在 default .

然後在 app_model.php 加入下面的處理…
[code]<?php
class AppModel extends Model {
    function beforeSave() {
        $this->useDbConfig = 'master';
    }
    
    function afterSave() {
        $this->useDbConfig = 'default';
    }
    
    function beforeDelete() {
        $this->useDbConfig = 'master';
    }
    
    function afterDelete() {
        $this->useDbConfig = 'default';
    }
}
?>
[/code]

這樣在實際執行的時候就會在寫入資料的時候自動切換到 $master 去進行寫入的動作了..

No tags

一月/08

3

新年新氣象,CakePHP也換新裝

新的一年到了,CakePHP也換上新的佈景,更發佈了 CakePHP 1.2 的 Beta 版了唷!

全文轉自 TWPUG

CakePHP 開發團隊祝福每個人新年快樂!在進入程式開發的第三年,回顧一下已經完成的事情;一年前, Cake 1.2 開發版本推出,開發團隊持續努力讓新功能穩定,也提供一個成長中的開發平台。開發團隊的目的是提供最簡單的程式架構,這個目的即將完成,開發團隊對於能夠 分享這個成果給所有人感到驕傲,儘管過程波折不斷。

今年開發團隊願與您分享 CakePHP 1.2 Beta,開發團隊認為這是目前最好的版本;新功能讓使用 Cake 成為一種樂趣,經過了一段時間的開發後,開發團隊認為這些功能已經趨於成熟,他們一直在實用性與擴充性之間找尋平衡點。當然,這跟 1.1 版有很多的差異,但是許多在 1.1 版開發的程式碼應該都能在 1.2 版運行,在必要的地方程式會提供警告,而必須捨棄的部份開發團隊也將它細分後提供優雅的解決方案,讓升級 1.2 版不需要太多重大的改變,大部分的改變只需要藉由錯誤訊息的提示進行搜尋與置換即可。

 

CakePHP 1.2.0.6311 & 1.1.19.6305 推出

No tags

十一月/07

6

安裝與使用PhpDocumentor

寫文件是一個程式設計師最最痛苦的事情之一,尤其是寫了一堆程式後有人要你把 Function ,Class 等等等等,寫成一份文件。

這事情不管你是寫 c/c++ , perl , ruby , php 都不例外。

phpDocumentor 是我們的救星! 只要在寫程式的時候,乖乖的寫一點註解,寫一點範例,多一點說明,注意一下格式,等到程式完工後,只要一個指令,就可以立刻把全部程式的說明文件產生出來,而且還有多種樣式可以選擇,甚至可以作成  PDF , CHM 喔…

好了,屁話不多說,先來說說怎麼裝上這好用的東西吧…

phpDocumentor 本身已經是 pear 的成員之一,所以安裝的時候只要用 pear 來安裝即可(以下範例為在 Windows 下進行,以後再補上 LInux 下的)

–如果你已經有裝 php 跟 pear 請跳過–

首先假設我把我的的 php 安裝路徑在 d:\php\

也就是說我從 www.php.net 下載了最新的 php win32 安裝檔案,解開後放在 d:\php\

那麼這個目錄下面應該有 d:\php\PEAR這個目錄,但是當你進去看的時候,你會發現好像沒有 PEAR 相關程式庫阿…

沒錯,這個時候你還沒有安裝 PEAR 請先用 go-pear.php 安裝基本 pear 環境。

那麼在 d:\php 目錄下有一個檔案,叫做 go-pear.bat 請開一個 cmd 視窗去執行他,中間會有一些問題,基本上都照預設值去跑就可以了…

跑玩後,你的 pear 應該會被安裝在 d:\php\PEAR\pear 下面,而幫助你安裝其他 pear 套件的 pear.bat 則在 d:\php\PEAR下面

–安使安裝 phpDocumentor –

安裝 phpDocumentor 的過程也很簡單,只要利用 pear.bat 即可!

使用指令如下

d:\php\PEAR\pear.bat install -o PhpDocumentor

當中有多下一個 -o 的參數,意思是要 pear 把相依的套件也一起下載安裝。

安裝完成後 d:\php\PEAR 下面應該會多一個 phpdoc.bat 的批次檔,我們就可以用這個批次檔來產生我們的文件。

– 使用 phpdoc.bat 產生文件 –

產生文件的方式我通常只有用下面一行指令解決:

d:\php\PEAR\phpdoc.bat -o HTML:Smarty:PHP -d d:\myProject\php_source\ -t d:\myProject\docs

這樣子的意思是說,採用 HTML:Smarty:PHP 的樣板格式,然後原始碼目錄在 d:\myProject\php_source\ ,接著把產生的文件放在 d:\myProject\docs 底下。

當中若是你只要對一個檔案作文件的話,可以把 -d 改成 -f 然後後面接的著就是指定的檔名。

樣板的格式基本上有 HTML, XML, PDF, CHM 四大類別,通常我用的都是 HTML:Smarty:PHP 這個,因為他比較好看!

另外還有就是 CHM:default:default 這個.用來產生 chm 的,不過他產生出來的是 .hhp 檔案,也就是還沒有經過 HTML helper 編譯過的檔案,所以要另外安裝 HTML Helper 來編譯 hhp 檔案就可以產生你要的檔案。

– 最後來說一下怎麼寫註解 –

phpDocumentor 的註解有一定的規格,但是都跟我們原來寫註解的方式很像,只是要注意一下東西而已。

簡單的來看個範例好了

<?php
/**
 * 這裡是這個物件的說明
 * 可以多行喔!~
 *
 */
class MyClass {
    /**
     * 這裡是變數的說明
     *
     * @var int
     */
    var $a ;
    /**
     * 這裡是變數的說明.
     *
     * @var string 這裡也可以放說明
     */
    var $b ;
    
    /**
     * 這是針對函式的說明
     * 也是一樣可以多行
     * 若是簡單的範例也可以放這裡
     *
     * @param int $a 可以放入傳入的型態
     * @return array 可以說明回傳的型態
     */
    function first ( $a ) {
        return array();
    }
}
?>

基本上都是在

/*
*
*/

中間寫註解,別忘了每行前面要有個 * 喔!

註解比較常用到參數的應該是
@author 程式作者名稱,聯絡方式
@const 常數
@deprecate 不建議使用的 API
@global 全域變數
@param 函數的參數
@return 回傳值
@see 可參考函數
@since 開始時間
@static 靜態變數
@var 物件成員變數
@todo 計畫中要進行的項目
 

更多更詳細的資料請到 http://www.phpdoc.org/ 看囉!~

No tags

十月/07

23

CakePHP 1.2 pre-beta 釋出…

昨天 CakePHP 釋出了最新的 Release …
其中比較受關注的是 1.2 已經進入 Pre-Beta 的階段.

有 1.1 的更新
Stable: 1.1.18.5850

也有 1.2 的 Pre-Beta
Pre-Beta: 1.2.0.5875 pre-beta

這次的 1.2 中有不少更新,有使用1.2的朋友可要多注意看看唷!~
詳情可以看這裡…New CakePHP Releases

Happy Bake!..

No tags

Older posts >>

Ativan withdrawal
Buy propecia
Viagra next day
Buy viagra online get prescription
Soft cialis
Canada cialis online
Lowest prices on tramadol
Buy propecia without prescription
Viagra retail discount
Tramadol medication
Buy generic propecia online
Viagra from usa
Viagra tablets sale
Levitra and dosage
Phentermine pregnancy
Purchase propecia online
Online pharmacy propecia
Doxycycline hyclate
Generic viagra 100mg soft pills
Viagra info
Viagra drugs
Viagra canada
Phentermine 37.5mg
Cialis overnight
Adipex versus phentermine
Purchase cialis online
Prednisone and thyroid
Generic cialis pill
Generic prices online cialis
Cialis murah klang
Order levitra online no prescription
Prednisone dogs
Next day viagra
Levitra paypal
Viagra pill for woman
Viagra buy
Propecia online
Viagra sales on line
Soft viagra
Online levitra us
Does propecia cause genetic disorders
Buy cost low viagra
Canadian cialis pharmacy
Viagra prices
Viagra female use
Cialis transdermal
Phentermine free consultation
Get levitra
Cheap valium no prescription
Is tramadol a controlled substance
Xanax pain relief
Experience taking valium
100mg tramadol
Viagra effects on women
Order cialis online without prescription
Viagra cialis
Discount price viagra
Adipex p diet pills
Cialis applied directly
Viagra and side effects
Cialisis in canada
India viagra generic
Discount cialis levitra viagra
Cheap pfizer viagra uk
Cialis online prescription
Cialis pills for sale
Accutane long term side effects
Phentermine 37.5 without prescription
Cialis on sale
Buy viagra overnight
Phentermine diet pills
Valium from mexico
Cialis canadian drugs
Viagra in bali
Effexor and tramadol
Buy propecia international pharmacy
Buy uk viagra
Cialis injury attorney ohio
Uk alternative viagra
Online pharmacy uk viagra
Buy viagra online uk
Viagra sales in uk
Order adipex no prescription
30mg phentermine
Cheap price viagra
Levitra prices
How viagra works
Cialis headaches
Uk viagra
Cialis generic low price
Buy cheap cialis online
Viagra free pills
El cialis generico
50mg cialis
Buy valium no prescription
Canadian pharmacy phentermine
Doctors prescribe phentermine
Generic viagra pill
Levitra recommended dosages
Viagra uit india
Buy tramadol cod
Buy levitra low price
Online pharmacy viagra
Extra cheap phentermine
Viagra interaction
Canadian pharmacy generic viagra
Compare viagra price
Cheap xanax
Uk propecia sales
Xanax 5mg
Urine tramadol dot
Xanax mixed with pot
Cheapest uk viagra
Cialis ireland
Cheapest price viagra
Natural viagra uk
Georgia accutane injuries
Viagra lowest prices
How to get off xanax
How does xanax work
Viagra online shop
Compare prices of phentermine
Tadalafil and viagra are they the same
Phentermine side effects dangers
Lowest prices on generic viagra
Xanax addictive
Viagra danger
Phentermine with no prescription
Cialis softabs
100mg viagra
Ativan does it change your personality
Cialis from india
How much ativan is too much
Buy propecia online
Ativan normal doses
Cost levitra
Chip cialis
Cialis tadalafil
Buy cheap online uk viagra
Cialis causing itching
Levitra canadian
Allergy to cialis
Uk online pharmacies for viagra etc
Drug stores that sell xanax
Cialis india pharmacy
Generic review viagra
Cialis purchase
Cheapest prescription viagra
Trench mouth doxycycline
Soma 350mg

Theme Design by devolux.nh2.me