我在symfony中寫入文件,並且我在actions.class.php
文件之一中。如何在編寫PHP代碼(用於調試)時找出變量的值?
通常我只是echo
變量的值,但因爲這是一個動作類模塊,我不能這樣做,因爲我無法輸出到頁面。
我想使用FirePHP,但它涉及到安裝它的服務器端,我想知道更容易或內置的解決方案。
我在symfony中寫入文件,並且我在actions.class.php
文件之一中。如何在編寫PHP代碼(用於調試)時找出變量的值?
通常我只是echo
變量的值,但因爲這是一個動作類模塊,我不能這樣做,因爲我無法輸出到頁面。
我想使用FirePHP,但它涉及到安裝它的服務器端,我想知道更容易或內置的解決方案。
在整個代碼中發送電子郵件。您可以在腳本末尾或整個過程中發送一個。兩者都有好處。在整個過程中發送電子郵件將很容易讓你知道哪裏出了問題,如果你最終沒有收到電子郵件和電子郵件,節省開銷(看起來這似乎不是問題)。
如果您有權訪問服務器的日誌文件,則可能需要查看PHP的error_log函數。它會將一個字符串打印到PHP的錯誤日誌中,然後您可以檢查日誌文件。
-edit-:error_log還允許你給自己發送郵件。但這很愚蠢。
確實有一點。這確實很好。 – SchautDollar 2013-02-28 22:42:22
通過電子郵件發送日誌,工作是肯定的,但也有一些更好的,更容易和更快的方式做到這一點;)
在symfony中,你可以訪問記錄器,這將允許您登錄任何東西。在prod環境中,默認情況下禁用它(當然,您可以將其打開),但是在dev中,它不僅可以在日誌文件中使用,而且還可以在Sf Web調試欄中打印。
內的行動用途:
$this->getLogger()->debug('My $variable value is now: '.$variable);
您也可以使用記錄的其他級別(->warning('')
,->err('')
,->crit('')
等)。當然,如果它是一個數組或對象,則需要將該變量更改爲字符串。
其實你可以在echo
和var_dump
的事情中行動。它們會顯示在你的頁面中(儘管在實際模板之前顯示的東西與佈局混亂不堪)。
請記住,echo
只適用於字符串和數字。如果您嘗試回顯布爾值或數組,您將看不到任何內容。如果您嘗試回顯對象,那麼將使用__toString()
方法或引發錯誤。
你應該提到它取決於environement的日誌配置(prod/dev/cache/etc ...)。有時候,在prod env上不允許記錄(甚至是err或crit)。 – j0k 2013-03-01 09:27:34
是否可以回顯變量,然後使用退出? – MIIB 2013-02-28 22:32:50
它似乎只是導致頁面變爲空白。 – 2013-02-28 22:34:24
骯髒,凌亂,但電子郵件自己會工作。 – SchautDollar 2013-02-28 22:34:24