2014年4月23日水曜日

[CakePHP]AppControllerのbeforeFilterが2回以上呼び出されている時。

「Missing View」のエラーがでる時なんかは、継承しているAppControllerのbeforeFilterが2回以上呼ばれていることがわかった。

また、それぞれのControllerでbeforeFilterを完全に上書きoverrideしている時でも(つまり、parent::beforeFilter();を書かないケース)、Missing View等のエラー画面を出すのにAppControllerのbeforeFilterが呼ばれてしまう。(せっかく完全上書きしてAppControllerのbeforeFilterを使わないようにしているのに)

具体的に言うと、AppControllerでは各Controllerで共通で使う、cookieを使った自動ログイン処理を入れたりするが、UserControllerだけはlogout処理等があるため自動ログインしたくない場合などに困る。(logout処理した直後に自動ログイン処理が走ってしまう。cookieはresponseが完了するまで反映されないため)

2014年4月6日日曜日

[Composer]不要なパッケージを削除する方法。

ここを参考に。
uninstall command please.


1. まずcomposer.json から不要なパッケージの行を削除。

2. composer update xx/yy を実行する。

xx/yyはパッケージ名。例えばこんな感じ。

 composer update cakedc/search


これで、不要なパッケージは、composer.lockからも削除され、実ファイル群も削除される。

2014年4月1日火曜日

[CakPHP]]Warning (512): SplFileInfo::openFile(/path/to/app/tmp/cache/cake_toolbar_cache20dabd4b42c7aea65f12ba6b3ed09c3b): failed to open stream: Permission denied [CORE/Cake/Cache/Engine/FileEngine.php, line 355]

こんな感じのエラーが出たら、とりあえず、

cd app/tmp/cache
chmod 666 cake_toolbar_cache20dabd4b42c7aea65f12ba6b3ed09c3b

をやればエラーは出なくなる。

SplFileInfo::openFile(/app/tmp/cache/persistent/cake_core_cake_console_):failed to open stream:Permission denied in /lib/…/FileEngine.php line 293

ここを参考にした。core.phpをいじることで恒常的に直せそうだけども今回は暫定対処で。

2014年3月31日月曜日

[Sublime Text]SublimeTextXdebugでcontext画面で変数の深い階層にnestされた値が見れない時

ここを参考にした。

Edit Projectで以下の値を挿入した。

"max_children": 128,
"max_depth": 3,
"max_data": 512,

[CakePHP]Access forbidden!が出た時

画面に以下の様に出て、
Access forbidden!

要求されたオブジェクトへのアクセス権がありません。 読み込みが許可されていないか、 サーバが読み込みに失敗したかでしょう。

サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。

Error 403

error_logに以下のように出てる時、

[Mon Mar 31 18:07:45.124983 2014] [authz_core:error] [pid 35957] [client 127.0.0.1:51200] AH01630: client denied by server configuration: /path/to/git/inqueue/home

対象アプリのhttpd.confのDirectoryタグ、virtulhostを利用している場合は、httpd-vhosts.confのVirtualHostタグ内のDirectoryタグに、以下を入れる。

Require all granted

[xdebug]php.iniの設定

PHP:  syntax error, unexpected $end, expecting TC_DOLLAR_CURLY or TC_QUOTED_STRING or '"' in /Applications/XAMPP/xamppfiles/etc/php.ini on line 1938

こんな感じのエラーが出た時、xdebugの設定を一番下ではなく、少し上にしてあげるとなぜか直りました。

[CakePHP]pcfg_openfile: unable to check htaccess file, ensure it is readable and that 'app/webroot/' is executable

[Mon Mar 31 13:57:42.425142 2014] [core:crit] [pid 11472] (13)Permission denied: [client ::1:55072] AH00529: /path/to/git/test01/app/webroot/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/path/to/git/test01/app/webroot/' is executable


error_logにこんなようなエラーが出たら、webrootをchmod 777したなおりました。