3月 17

Viewで同じレイアウトでよく使うパーツを使うとき、renderElementを使います。
ログインフォームやサイドバーに出す部分などでよく使うやつです。

Smartyだとこんな感じですね。
index.tpl

{include file='form.tpl'} 
{include file='ranking.tpl'} 

Cakeの場合は以下のようになります。
index.ctp

    <?php echo $this->renderElement("form")?>
    <?php echo $this->renderElement("ranking")?>

下記のファイルがインクルードされます。

views/elements/form.ctp
views/elements/ranking.ctp

3月 17

Cakeでlistアクションにcategoryとpageを渡す場合、下記のようなURIになります。
http://localhost/blog/list/3/2

コントローラー側:

    function list( $category, $page ){
        //処理
    }

listアクションへのパラメーター数が違うパターンがあると面倒です。

下記のように”URL/パラメーター:値”の形にするとパラメーター付きで値を
渡せます。

http://localhost/blog/list/category:3/page:2
コントローラー側:

    function list(){
        $this->params['named']['category']; 
        $this->params['named']['page']; 
    }

3月 16

/cake/libs/view/layouts/default.ctp

/app/views/layouts/default.ctpにコピーして編集して使います。

コントローラーから下記のように指定できます。
(/app/views/layouts/admin.ctpを指定する場合)
$this->render($layout=’admin.ctp’, $file=’index.ctp’);

3月 16

アクション名ではないViewを使用させたいときは、下記のようにします。

function edit(){
     // renderでテンプレートを指定できます(add.ctpを指定)
     $this->render('add');
}

3月 15

PHP5にはSimpleXMLなどがありますが、CakePHPのXMLクラスでも同様に使えます。
ローカルファイルに使ったり、WEBAPIのリクエストURLやRSSを処理したり出来ます。


$xml_rakuten = "http://api.rakuten.co.jp/rws/2.0/rest?
developerId=[YOUR_developerID]
&operation=ItemSearch
&version=2009-04-15
&keyword=%E7%A6%8F%E8%A2%8B
&sort=%2BitemPrice";

uses('Xml');
$xml = new Xml($xml_rakuten);
$xml_array = Set::reverse($xml);

7月 27

PhpDocumentorはプログラムソースからリファレンスを生成することができるツールです。

プログラムソースのコメントからリファレンスを生成します。

HTMLやPDFにアウトプットすることができます。

■インストール
Ubuntuパッケージ
$sudo apt-get install

Linuxソース
ここからDLして
unzip xxx.zip
cd xxx
./configure;make;make install;

■クラスのコメントの書き方

/**
* ログインクラス(クラスの論理名)
*
* ログインに関する機能を有するクラス(クラスの説明)
*
* @package パッケージ名
* @author 著作者 <著作者メール>
* @since 2009/07/27
* @version $Id: login.class.php,v 1.0 2009/07/27 20:15:32 xxx Exp $
*/

■メソッド、関数のコメントの書き方

/**
* loginチェック(メソッドの説明)
*
* @param string $arg ユーザー名
* @param integer $arg2 パスワード
* @return string 1:LoginOK 0:LogniNG
*/

■ドキュメント生成

phpdoc -t ./ドキュメント保存先 -d ./ソースディレクトリ

$ cd sourceディレクトリ
$ mkdir doc
$ phpdoc -t ./doc -d ./* -o HTML:Smarty:PHP
// -o HTML:Smarty:PHP を指定するとUTF-8のソースで文字化け無く見れます

■マニュアル
PEAR
phpDocumentor