2012/05/23

[cakePHP] テンプレートを使わない場合

json返すだけとか、テンプレート使わない場合
$this->autoRender  = false;
参考:CakePHP ~を使わないシリーズ viewをつかわない

[cakePHP] cakePHP2.0で404エラーを出したい

以前はコントローラーで
$this->cakeError('***');
でエラーになってたんですが、バージョン2は変わってました
throw new NotFoundException():
新しく出来た例外のクラスをthrowするようになってました。

2012/05/15

[iOS] iPad, iPhoneのaudioタグは同時に複数鳴らせない


iPad向けにsafariでできるゲームのようなものを作った。
その際、audio関連で色々引っかかった。
起きた問題はすべてPC版のsafariでは起きない問題だったので注意。
アニメーションなんかの動き系はPC版とあまり変わらないけど、audioは別。

・同時に複数鳴らせない
・クリックイベントと音がずれる

同時に鳴らせないのは仕様で、音がずれるのは複数の音声ファイルを扱うのは下手だからみたい。
全部のファイルをくっつけて、指定の音までシークして再生させると良いらしい。

参考:
【HTML5】iPhone向けWEBアプリで、Audioを使ってみてハマった点
iPhoneでHTML5のaudio要素を使うときに気をつけたいこと

2012/05/10

[PHP] debug_backtrace 実行されたメソッドをさかのぼって表示してくれるメソッド。


PHPのある部分で、どうやってその処理までたどり着いたか遡って調べたくなる時がある。
そんな時はdebug_backtrace
処理のながれをさかのぼって連想配列で返してくれる。
バージョンによって引数が違うようなので注意。

参考:PHPマニュアル debug_backtrace

2012/05/02

[JavaScript] データを格納した変数を変更すると、もとのデータも変更されたりされなかったり

JavaScriptの基本なんだけど、ふとどういう挙動なのか曖昧になったので確認&メモ
var test =  {
    arr: [1,2,3,4],
    bool: true,
    num: 100,
    str: 'unko',
    obj: {
     baka: 'fool',
 aho: 'idiot'
    },
    test: function(){
 //配列
 var arr = this.arr;
 arr.shift();
 //元のデータも変更される
 console.log(this.arr);//[2,3,4]
 
 //真偽値
 var bool = this.bool;
 bool = false;
 //真偽値は元のデータは変更しない
 console.log(this.bool);//true
 console.log(bool);//false こっちはもちろん変更されてる
 
 //数値
 var num = this.num;
 num = 99;
 //変更されない
 console.log(this.num);//100
 
 //文字列
 var str = this.str;
 str = 'chinko';
 console.log(this.str);//unko
 
 //オブジェクト
 var obj = this.obj;
 obj.baka = 'stupid';
 //変更されている
 console.log(this.obj.baka);//stupid
    }
}

test.test();
オブジェクトは参照渡し。 参考:参照型の値を変数へ代入

2012/05/01

[MYSQL] 日付データの比較で、あるカラムを現在日時と比較して表示したい


あるデータが現在日時より新しい、または古いレコードだけ取得したい場合がある。
ブログの予約投稿なんかは投稿日時に設定されている日時が現在より古い場合だけ表示ってことになるし、期限のあるイベントやキャンペーンなんかは、その期間が現在日時より未来のものだけ表示することが多い。

そういう場合のSQL
SELECT * FROM テーブル名 WHERE カラム名 >= NOW();