簡體   English   中英

php類magick函數__call不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM