CakePHP では、コントローラーメソッドの前または後にメソッドを実行する必要がbeforeFilter
あります (例: ログを保存する、ログインをチェックするなど)。afterFilter
CodeIgniter でこれを行うにはどうすればよいですか?
CakePHP では、コントローラーメソッドの前または後にメソッドを実行する必要がbeforeFilter
あります (例: ログを保存する、ログインをチェックするなど)。afterFilter
CodeIgniter でこれを行うにはどうすればよいですか?
フレームワーク コードの特定のポイントの前にコードを実行する目的の機能が実装されている Codeigniter のフックを使用する必要があります。
https://www.codeigniter.com/user_guide/general/hooks.html
リクエスト中のさまざまな時点でメソッドまたはクラスを呼び出すことができる組み込みフックがいくつかあります。
pre_system
pre_controller
post_controller_constructor
post_controller
display_override
cache_override
post_system
したがって、おそらく pre_system や pre_controller のようなものが必要です。
_remap() 関数を確認してください。通常のコントローラー関数を呼び出す前に、独自の関数にリダイレクトできます。次のように、独自の _remap 関数をコントローラーに含めることができます (ユーザー ガイドからコピー)。
public function _remap($method)
{
if ($method == 'some_method')
{
$this->$method();
}
else
{
$this->default_method();
}
}
_remap
URI の 2 番目のセグメントはパラメーターとして関数に渡され(例では として$method
)、必要に応じてプロセスをリダイレクトできます。