[英]php class magick function __call doesn't work
您好我通過使用magick類函數__call嘗試存儲調試信息,但沒有任何存儲在....
__呼叫
function __call($method, $arguments)
{
$load_functions = array('get', 'insert', 'update', 'delete', 'rawQuery');
if(in_array($method, $load_functions))
{
array_push($this->_debug, microtime(true));
}
}
執行
$app->database->setbase('MyBase');
$query = $app->database->get('MEMB_INFO');
$app->database->debug();
什么都沒有存入$ this - > _ debug array ... $ app-> database-> debug(); 返回空數組。
僅對非現有方法調用Magic方法__call。 但我想你的方法存在。
如果你真的想檢查調用的方法,你可以使用裝飾器。 它是包含原始類實例的類,與原始類具有相同的接口,並且每個方法調用被委托回原始對象。 您可以向裝飾器方法添加自定義調試邏輯(或使用__call並創建通用調試裝飾器)。 當然你需要將裝飾器實例注入$ app-> database。 它可以通過多種方式完成,取決於您的框架和環境(prod vs. dev等)。
我在想什么 - 在PHP中記錄所有Soap請求和響應
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.