| « afterRenderメソッドの注意点 | 勉強会資料 » |
CakePHPをインストールした後、開発する前にやっておきたい内容をまとめておきます。
(少しずつ加えていきます)
もちろん付けない設定も可能で、どちらかに統一させる方が良いと思います。
app/app_controller.php
function beforeFilter()
{
// URLの最後に/を入れる
if (isset($this->params['url']['url'])) {
$uri = $this->params['url']['url'];
if (substr($uri, -1) != '/') {
$this->redirect($uri . '/', 301);
exit;
}
}
}
app/config/tags.ini.php を作成し、そのファイルに下記の内容を記載します。
radio = "<input type="radio" name="data[%s][%s]" id="%s" %s /><label for="%s">%s</label>"
そして、cake/libs/view/helpers/html.php を app/views/helpers/html.php にコピーします。
そのファイル内の下記の部分を修正します。
//修正前
$out[] = sprintf($this->tags['radio'], $this->model, $this->field, $individualTagName, $parsedOptions, $optTitle);
↓
//修正後
$out[] = sprintf($this->tags['radio'], $this->model, $this->field, $individualTagName, $parsedOptions, $individualTagName, $optTitle);
公開する前であれば、デバック情報を画面上に表示させていても問題ありませんが、公開後はそうはいきません。
ですので、予め指定したファイルにログが書き込まれるように設定しておきましょう。
webroot/index.php
require CORE_PATH . 'cake' . DS . 'bootstrap.php';
// 以下、追加
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', LOGS . 'error.log');
書き込みを行いたくない時は、log_errors を 0 にすれば書き込みされません。
CakePHP では SQL 文を直接書く機会が少なく、find などの関数を使って処理を行うことがほとんどです。
大変便利なのですが、実際にどのような SQL 文が実行されているかが分かりにくいです。
エラーログと同様に、予めファイルに書き込まれるように組み込んでおけば、公開後の対応が楽になります。
cake/libs/model/dbo/dbo_postgres_log.php を作成します。
<?php
uses ('model' . DS . 'dbo' . DS . 'dbo_postgres'); // 1.1の場合
//uses ('model' . DS . 'datasources' . DS . 'dbo' . DS . 'dbo_postgres'); // 1.2 RC2 の場合
class DboPostgresLog extends DboPostgres {
var $queryNo = 1;
function execute($sql) {
$ret = parent::execute($sql);
if (defined('LOG_SQL') && LOG_SQL) {
$this->log(sprintf("%d. %s", $this->queryNo, $sql), LOG_DEBUG);
$this->queryNo++;
}
return $ret;
}
}
次に、データベース接続設定ファイルで上記のファイルを読み込むように設定します。
app/config/database.php
class DATABASE_CONFIG {
var $default = array('driver' => 'postgres_log',
'host' => '**********',
'login' => '**********',
'password' => '**********',
'database' => '**********',
'prefix' => '');
}
最後に、ログへの出力を行うかどうかの設定をします。
app/config/core.php
define('LOG_SQL', true);
トラックバックURL(右クリックでURLのコピーをしてください)