Cakephpのテスト時にSessionの値が取れない

Cakephp 2.5.3でコントローラーのテストのとき

$this->testAction('/Sample/save', ['return' => 'vars']);
$flash = CakeSession::read('Message.flash');
$this->assertEquals('保存しました', $flash);

とすると CakeSession::read(‘Message.flash’) がとれませんでした

$this->testAction('/Sample/save');
$flash = CakeSession::read('Message.flash');
$this->assertEquals('保存しました', $flash);

として flash をとってやって

$this->vars
でパラメータは取ればとりあえず解決

詳しく理解しないとですが、ここまでで

phpで配列のキーの先頭を取得する

phpで配列のキーの先頭をとってみました

まず関数を調べる

PHP: current – Manual

配列内の現在の要素を返す

PHP: reset – Manual

配列の内部ポインタを先頭の要素にセットする
返り値に先頭の値が返ってきます

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
var_dump(current($list)); 
// string(1) "a" 
var_dump(reset($list));                                                                               
// string(1) "a"

といった感じで、配列を宣言しただけだと、同じ結果が返ります

PHP: array_keys – Manual

配列のキーすべて、あるいはその一部を返す

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
var_dump(array_keys($list));
/*
array(3) {
  [0] =>
  string(1) "A" 
  [1] =>
  string(1) "B" 
  [2] =>
  string(1) "C" 
}
*/

とキーが配列で返ります

組み合わせて

$list = [
  'A' => 'a',                                                                                         
  'B' => 'b',
  'C' => 'c',                                                                                         
];
$keys = array_keys($list);                                                                             
var_dump(reset($keys)); 
// string(1) "A" 

これがいいかなと思っています

ECCUBEで「data/cache/../mtb_constants_init.php が存在しません」のエラー

ECCUBEで「data/cache/../mtb_constants_init.php が存在しません」のエラーが出ました

プログラムとしては
data/class/SC_Initial.php L182 defineParameter

data/class/cache/mtb_constants.php があるか
なければ data/class/cache/../mtb_constants_init.php からコピー

としてる箇所で、下記で解決

$ mkdir data/class/cache

cacheディレクトリがないのが原因でした
git管理しているときは、

$ touch data/class/cache/.gitkeep

としておいて、git管理しましょう

phpのtrue && falseなどの判定

ちょっと動きを確認

var_dump(true && true);
// true
var_dump(false && true);
// false
var_dump(true && false);                                                                              
// false
var_dump(false && false);                                                                             
// false

var_dump(true || true);                                                                               
// true
var_dump(false || true);                                                                              
// true
var_dump(true || false);
// true
var_dump(false || false);
// false

&& はひとつでもfalseが入れば、false
|| はひとつでもtrueが入れば、true
になります