“開発を便利にする5つのTips” フォーラム – CakePHP Users in Japan で紹介されていた記事です。

Make your life easier with these five CakePHP Quicktips ? Debuggable Ltd

1. prd という便利な関数を作成する

pr($someVar);
die;

というコードをよく書くなら prd という関数を作ってしまえば、もっと楽できますね。

function prd($var) {
    pr($var);
    die;
}

2. メール送信のデバッグ方法

Email コンポーネントを使用しているならデバッグモードが使用できます。

$this->Email->delivery = 'debug'; // debug モードにする

$this->Email->send();  // メール送信
prd($this->Session->read('Message.email'));  // メール送信内容を表示する

Email コンポーネントでは delivery プロパティに ‘debug’ をセットするとセションに送信するメールの内容(ヘッダ、件名、本文など)を pre タグではさんでセットしてくれます。

3. エレメントを積極的に使用する

他のコントローラ用のビューもエレメントとして使用できる。
例えば /views/post/view.ctp をエレメントとして使用したい場合は下記のように指定できます。

echo $this->element('../post/view');

element メソッドは renderElement でもかまいません。値を渡したい場合は下記のようにも書けます。

<?php foreach ($posts as $i => $post): ?>
  <?php echo $this->element('../posts/view', array('post' => $post, 'forIndex' => true, 'excerpt' => false)); ?>
<?php endforeach; ?>

4. ページタイトルをビューで指定する

ページタイトルをコントローラで指定するのではなくビューで指定する。

$this->pageTitle = 'ページタイトル';

h1 タグとページタイトルを同じにする場合は下記のように書けば一石二鳥です。

<h1><?php echo $this->pageTitle = 'ページタイトル'; ?></h1>

5. 長い配列を避ける

メソッドで長い配列を定義するのは醜いので、デフォルト値と変更する値をマージして返す配列作成用のメソッドを作成する。

function setup($settings = array()) {
  $defaults = array(
    'assocs' => array(
      'types' => array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany')
    ),
    'queries' => array(
      'filters' => array(),
      'associated' => true,
      'describe' => false
    ),
    'schema' => array(),
    'log_sql_table' => 'logs'
  );

  $this->settings = am($defaults, $settings);
}

関連する投稿