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