by shigemk2

当面は技術的なことしか書かない

_メソッドの判定

CakePHPの処理の流れを追ってみよう - d.hetima

コントローラー内で、_で始まるメソッドはアクセスできないようになっているが、
どのようにアクセスできなくしているのだろうか。

1. app/webroot/index.php の $Dispatcher->dispatch($url) でクラスのメソッドを呼び出す
2. cake/dispatcher.php の 139 行目 ここでURLを判断している

$privateAction = $this->params['action'][0] === '_';

URL の先頭がアンダーバー(_)の場合、$privateAction が true になり、
その少し後の cakeError() によってエラーになる。