« afterRenderメソッドの注意点勉強会資料 »

最初に準備しておきたい項目

最初に準備しておきたい項目

パーマリンク 2008/06/07 09:18:22 著者: cakephp メール
カテゴリ: 設定

CakePHPをインストールした後、開発する前にやっておきたい内容をまとめておきます。
(少しずつ加えていきます)

1.URLの最後にスラッシュを必ずつける

もちろん付けない設定も可能で、どちらかに統一させる方が良いと思います。

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;
            }
        }
    }

参考:CakePHPでURIの形式を統一する


2.radioボタンの各要素部分をクリックした時にも対象の項目を選択状態にする

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);



3.エラーログを指定したファイルに書き込むようにする

公開する前であれば、デバック情報を画面上に表示させていても問題ありませんが、公開後はそうはいきません。
ですので、予め指定したファイルにログが書き込まれるように設定しておきましょう。

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 にすれば書き込みされません。


4.実行された SQL をログに書き込む設定

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);

参考:CakePHP SQLをログに記録

この記事へのトラックバック アドレス

トラックバックURL(右クリックでURLのコピーをしてください)

モデレーション待ちのフィードバック

この投稿にはモデレーション待ちのフィードバックが 3 件あります....

コメントを残す


頂いたメールアドレスはこのサイト上には表示されません

頂いたURLは表示されます。
(改行が自動で <br /> になります)
(Name, email & website)
(ユーザに、メッセージ・フォームを通じた連絡を許可します (あなたのメール・アドレスは表示されません))
2018年4月
 << <   > >>
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     multiblog platform