程序员人生 网站导航

”凤毛麟角的ZendFramework“--Zend_Debug的使用和实现1

栏目:ZendFramework时间:2014-04-09 06:31:18


给我们提供了Zend_Debug类用来打印或返回某个表达式或变量的信息。

使用方法如下:

Zend_Debug::dump($var, $label=null, $echo=true);


具体实现:

class Zend_Debug{    /**     * @var string     */    protected static $_sapi = null;    /**     * Get the current value of the debug output environment.     * This defaults to the value of PHP_SAPI.     *     * @return string;     */    public static function getSapi()    {        if (self::$_sapi === null) {            self::$_sapi = PHP_SAPI;        }        return self::$_sapi;    }    /**     * Set the debug ouput environment.     * Setting a value of null causes Zend_Debug to use PHP_SAPI.     *     * @param string $sapi     * @return void;     */    public static function setSapi($sapi)    {        self::$_sapi = $sapi;    }    /**     * Debug helper function.  This is a wrapper for var_dump() that adds     * the <pre /> tags, cleans up newlines and indents, and runs     * htmlentities() before output.     *     * @param  mixed  $var   The variable to dump.     * @param  string $label OPTIONAL Label to prepend to output.     * @param  bool   $echo  OPTIONAL Echo output if true.     * @return string     */    public static function dump($var, $label=null, $echo=true)    {        // format the label        $label = ($label===null) ? '' : rtrim($label) . ' ';        // var_dump the variable into a buffer and keep the output        ob_start();        var_dump($var);        $output = ob_get_clean();        // neaten the newlines and indents        $output = preg_replace("/]=>(s+)/m", "] => ", $output);        if (self::getSapi() == 'cli') {            $output = PHP_EOL . $label                    . PHP_EOL . $output                    . PHP_EOL;        } else {            if(!extension_loaded('xdebug')) {                $output = htmlspecialchars($output, ENT_QUOTES);            }            $output = '<pre>'                    . $label                    . $output                    . '</pre>';        }        if ($echo) {            echo($output);        }        return $output;    }}

说白了就是var_dump.

如此简单,如果能够加入更好的调试功能就好了。期待Zend_Debug的更强大的改进。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐