app/config/core.php内の下記定数の値を0~3のどれかにを変更することで
cakephpのデバッグをコントロールできます。
Configure::write(’debug’, 0~3);
0:本番運用
エラー出力無し。
app/tmp/cache/models の中にDBスキーマのキャッシュファイルがあるが,
これは【1】以上にしないと更新されない。
【0】後にDBを変更したときは、手動でこのキャッシュファイルを消さないといけない。
1:開発用(PHPエラー出力)
error_reporting(E_ALL)
ini_set(’display_errors’, 1)
上記2つが内部的に実行されます。
2:開発用(1プラスDBクエリー情報の出力)
・ (default) 8 queries took 10 ms」クエリの数(8)と,合計時間(10ms)
・Nr 実行したクエリーの連番
・Query 実行したSQL文
・Error エラー情報
・Affected UPDATEやDELETEの際は,影響した行数、 SELECTの場合は結果の行数
・Nom. rows 結果の行数
・Took (ms) DB上でのクエリの実行時間
3:開発用(2プラスコントローラーのオブジェクト情報)
ビューかコントローラーに記述する必要がある。
これはあまり使用しないでしょう。オブジェクト情報が見たければ、その都度pr($this)など記述
すればいいと思います。
ubuntu9.10
数年ぶりのリナックス。
viのコマンドもすべて忘却。
コマンドメモ、とりあえずメモ。
あとから整理する、と思う。
マウントされているUSBなどの情報一覧。 どのデバイスが使われているのか見る時 スーパーユーザーじゃないと表示されない fdisk -l フォルダやファイルのパーミッションまで見れる ls -l どっとから始まるファイルなども表示 ls -a スーパーユーザーに変身 このコマンドの後パスワード聞いてくる sudo su 現在実行中のプロセス表示 ps ax ps ax|grep firefox プロセスを停止 kill 上記プロセス番号 IPアドレス確認 ifconfig 画面のTOPからの入力になる Ctrl+l 自動起動されているものを見る 3,4,5がonで自動起動されている chkconfig --list ----------------------samba---------------------- サンババージョン確認 vは大文字 smdb -V /etc/samba/smb.conf smb.conf設定ファイル 強制的にパーミッション777で共有を作成する時 read only = No force create mode = 0777 force directory mode = 0777 guest only = Yes ユーザー追加 smbpasswd -a ユーザー名 サンバ再起動 sudo /etc/init.d/samba restart ----------------------vim---------------------- インサートモードに移行 i コマンドモードに移行 ESCボタン 上書き保存 :w 上書き保存+終了 ZZ ページ下送り Ctrl+d ページ上送り Ctrl+u x カーソル位置の文字を削除 dd 行の削除 p 削除データの貼り付け u 編集の取り消し / 文字の検索 ? 逆方向の文字の検索 a コマンドモードから入力モードに切り替え(カーソル位置の後ろから文章を追加) i コマンドモードから入力モードに切り替え(カーソル位置の前に文章を追加) o コマンドモードから入力モードに切り替え(カーソル位置の行の次の行に追加) R コマンドモードから入力モードに切り替え(カーソル位置の文章を置き換え) Esc 入力モードからコマンドモードに切り替え :w→Enter viを終了せずにファイルを保存 ZZ ファイルを保存しviを終了 :q !→Enter ファイルを保存せずにviを終了
app/config/core.php ファイル内の
Configure::write(’debug’, 2);
この設定が2以上で発行されたSQL文がページの下部に表示されます。
発行されたSQL文をファイルに取得します。
①
cake/libs/model/datasources/dbo
┃
┗dbo_mysql_log.phpを作成
<?php
uses("model".DS."datasources".DS."dbo".DS."dbo_mysql");
class DboMysqlLog extends DboMysql{
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
┃
┗’driver’ => ‘mysql_log’,にする
var $default = array( 'driver' => 'mysql_log', 'persistent' => false, 'host' => 'localhost', 'login' => 'verynight', 'password' => 'xxxxxx', 'database' => 'database', 'prefix' => '', 'encoding' => 'utf-8' ); --
③定数LOG_SQLをapp/config/bootstrap.phpにてdefineする
これで
app/tmp/logs/debug.log にSQL文が出力される。
出力内容を見やすくカスタマイズするには①のdbo_mysql_log.phpファイルにて
function showLog()をオーバーライドしてゴリゴリ書くらしい。
head内にjavascriptの外部ファイルのリンクを貼りたい場合は
layout内に下記を記述する。
echo $scripts_for_layout; -
コントローラーにて下記を記述する。
public $helpers = array("javascript");
-
ビューにて
//$scripts_for_layoutに出力
$javascript->link("jquery",false);
//trueなら、記述したその場所に出力される
echo $javascript->link("jquery-1.3.2.min",true);
-
と記述する。第2引数のfalseが【$scripts_for_layout】に出力するという意味。
trueならその場に書き出すので、echoがいる。
フォルダのメモ
app/config/
┃
┣bootstrap.php
┃ ┣defineなどの定数を記述
┃ ┗配列をfunctionで設定
┃
┣core.php
┃ ┗debugのモードの設定(Configure::write('debug', 2);)
┃
┗database.php
┗データベース設定
app/view/
┃
┣elements/
┃ ┗各ページに埋め込むテンプレート
┃
┗layouts/
┗全ページ共通のレイアウトのテンプレート
app/webroot/
┃
┣css/
┣img/
┣js/
┗index.php
┣appディレクトリやcakeディレクトリの設定
┣ini_setなどの設定もここでやる
┗cakeに依存しないhtmlはこの場所に置く
---
コントローラー内での基本的な設定メモ
/** * デフォルトtrue * trueでビューを使用するので各アクションに対応したテンプレを用意しないといけない(テンプレないとエラー出る) */ public $autoRender = true; /** * デフォルトtrue、上下に紺色のCAKEのデフォルトレイアウトが表示される * そのデフォルトレイアウトを変更する場合は下記の$layoutで指定して、 * その名前のテンプレートをview/layout/の中に置く */ public $autoLayout = true; /** * これを設定するとLayout/xxx.ctp が適用されるようになる(全ページ共通テンプレート) */ public $layout = "pagebase";