[英]PHP before action and after action
我想知道如何使用Yii的beforeAction()和afterAction()做類似的事情。
我需要在PHP中使用與Yii中的兩個函數相同的行為,我不知道從哪里開始。
在我的情況下我真正需要的是每次執行一個函數時,它必須重新加載一些參數,並且在函數執行它的代碼之后,它必須再次設置它們。
第一個動作可以在構造函數中完成,但第二個動作只能使用回調來完成,這不是很可愛。
我還需要實現這個,因為函數的數量大約是30,每個函數都在做類似的事情。 使用這種行為,我將減少約70%的代碼大小。
function a1(){
load();
procA1();
set();
}
function a2(){
load();
procA2();
set();
}
function a3(){
load();
procA3();
set();
}
and so on...
更新:使用call_user_func($function_name, (optional) $parametrs)
+ magic __call
方法。 它和Yii完全一樣。
public function __call($name,$args) {
if (method_exists($this,$name)) {
$this->beforeAction();
$ret = call_user_func_array(array($this, $name), $args);
$this->afterAction();
return $ret;
}
}
現在你可以簡單地調用$object->a3()
。 您可以在類中使用名為a3
函數,但是為其添加private
修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.