禅道项目系统代码随记(一)

代码1:

/**
 * Set the member's value of one object.
 * <code>
 * <?php
 * $lang->db->user = 'wwccss';
 * helper::setMember('lang', 'db.user', 'chunsheng.wang');
 * ?>
 * </code>
 * @param string    $objName    the var name of the object.
 * @param string    $key        the key of the member, can be parent.child.
 * @param mixed     $value      the value to be set.
 * @static
 * @access public
 * @return bool
 */
static public function setMember($objName, $key, $value)
{
    global $$objName;
    if(!is_object($$objName) or empty($key)) return false;
    $key   = str_replace('.', '->', $key);
    $value = serialize($value);
    $code  = ("\$${objName}->{$key}=unserialize(<<<EOT\n$value\nEOT\n);");
    eval($code);

    return true;
}

代码2:

/**
 * set Debug
 *
 * @access public
 * @return void
 */
public function setDebug()
{
    if(isset($this->config->debug) and $this->config->debug)
    {
        error_reporting(E_ALL & ~ E_STRICT);
        register_shutdown_function
('saveSQL');
    }
}
 
/**
 * Save the sql.
 *
 * @access protected
 * @return void
 */
function saveSQL()
{
    if(!class_exists('dao')) return;
    global $app;
    $sqlLog = $app->getLogRoot() . 'sql.' . date('Ymd') . '.log';
    $fh = @fopen($sqlLog, 'a');
    if(!$fh) return false;
    fwrite($fh, date('Ymd H:i:s') . ": " . $app->getURI() . "\n");
    foreach(dao::$querys as $query) fwrite($fh, "  $query\n");
    fwrite($fh, "\n");
    fclose($fh);
}
//register_shutdown_function 函数可以设置一个当执行关闭时被调用的另一个函数.也就是说当们的脚本执行完成或意外死掉导致PHP执行即将关闭时,我们的这个函数将会被调用.

纯代码, C&&V In 禅道项目系统

标签: 代码, 禅道, 随记