php
PHP 5.1.6 の場合、配列取得後に続けてインデックス指定をするとエラーになる。 Parse error: syntax error, unexpected '[', expecting ',' or ';' in /var/www/html/〜〜〜 この場合、一度変数に格納してからアクセスする必要がある。
実際に発行された生のSQL文を見たい場合。SQL実行後に getDataSource()->getLog()); //以外 debug($this->[Model名]->getDataSource()->getLog()); ?> を埋める。 SQL文のみ表示。 ' . $this->getDataSource()->getLog()['log'][2]['query']); ?>
テーブルのカラムを追加したが、Insertできない事態が発生した。 原因は app/tmp/cache/models 内の cake_models_xxx_yyy が残っていたため。 ファイルを削除すればキャッシュが消えて、変更が無事反映された
メモリ不足時に発生する PHP Fatal error: Allowed memory size of 〜〜〜 bytes exhausted (〜〜〜〜のエラー。php.ini に memory_limit = 512MBとしてapacheを再起動するか、 変更権限ない場合は該当箇所を暫定的に とすることで回避する。
ファイル読み書きの際は fopen() を使う。 「ファイルがない」「権限がない」等のエラー時に FALSE を返すので、チェックをしていないとその後の処理で Warning: fgetcsv() expects parameter 1 to be resource, boolean given in [ファイルパス] on line […
json形式返却時のutil関数。
Windowsで作成されたファイルは改行コードがCR+LFなので、UNIX(LF)やMac(CR)だとうまく表示されない。 アップロードされたファイルの扱いをサーバのOSに依らず等しくするためにも、改行コードを揃えておく。
DB接続先の切り替えをbootstrap.phpで行うよう編集する。./app/config/database.php の設定。 'mysql', : : ); var $product = array( 'driver' => 'mysql', : : ); /** DBの切り替え **/ public function __construct() { //cf. bootstrap.php $connec…
CakePHPにおいて、views/layouts/top.ctp にレンダリングして画面表示する場合は autoLayout = true; $this->layout = 'top'; } ?> とする。一方、レンダリング後の内容をファイルに保存する(または、処理を加える)場合は autoLayout = false; // views/la…
HTMLファイルを読み込み、タブ・改行・コメントを削除することで容量を減らす。 CakePHP等でレンダリングした内容を加工する際にも使える。 /s', '', $html); ?>
パラメータの取得方法。POSTリクエストの場合。 existsEmpty(array($text1, $text2))) { throw new Exception('Error: Missing Parameter'); } //処理 } c…
controllerは短いほうが良い。 リクエストからレスポンスまでの処理の流れが一覧できる程度の長さが理想。よって実処理はcomponentに任せる。 JavaのServiceのイメージ。任せることによって コントローラの肥大化を回避 できるだけでなく、 処理の共通化(複…
複数の値を1行で配列に格納する。 list($map['id'], $map['name'], $map['gender']) = array($id, $name, $gender);print_r($map); // =>Array ( [gender] => male [name] => myname [id] => 1 ) 別関数で複数値を取得する時に使える。 list($map['id'], $ma…
忘れがちなfor文。 インデックスを指定して値を取得する for($ii = 0; $ii < count($array); $ii++) { $value = $array[$ii]; //処理} 直接値を取得する foreach($array as $value) { //処理} 連想配列からキーと値を取得する foreach($map as $key => $valu…