寫個日誌封裝器....
<?php
/** * 日誌系統抽象類
* */
abstract class logwriterabstract
/** * logfirephpwriter 類提供對 firephp 的支援
*/class logfirephpwriter extends logwriterabstract
if ($this->_enabled)
$this->_kernel->fb($msg, $title, firephp::info);
}}/**
* logfile 類提供基本的檔案日誌服務
*/class logfilewriter extends logwriterabstract
$dir = realpath($dir);
if (substr($dir, -1) != ds)
if (!is_dir($dir) || !is_writable($dir)) else
global $___sfw_loaded_time;
$sec = (int) $___sfw_loaded_time;
$usec = $___sfw_loaded_time - $sec;
$this->_starttag = sprintf("[%s %s] *****== sfw loaded *****==\n",
date($this->dateformat, $sec), $usec);
if (isset($_server['request_uri']))
// 註冊指令碼結束時要執行的方法,將快取的日誌內容寫入檔案
shutdowncallback::getinstance()->add(array($this, '__writelog'));
// 檢查檔案是否已經超過指定大小
if (file_exists($this->_logfilename)) else
if ($maxsize >= 512) }}
}/**
* 追加日誌資訊
** @param string $msg
* @param string $title
* @param string $level*/}
/*** 將快取的日誌資訊寫入實際儲存,並清空快取
* 此方法由系統自動呼叫
* */
function __writelog()
flock($fp, lock_ex);
fwrite($fp, str_replace("\r", '', $content));
flock($fp, lock_un);
fclose($fp);
}}
<?php
/** * 應用程式基本啟動檔案,提**用程式執行的關鍵設定資訊
*/$root_dir = dirname(dirname(dirname(__file__)));
/** * 如果要整合第三方的 php 庫,錯誤報告也許要修改為:
* * error_reporting(e_all & ~(e_strict | e_notice));
*/error_reporting(e_all | e_strict);
$config = array(
/*** 應用程式的 id,用於唯一標識乙個應用程式
*//**
* 應用程式根目錄
*/'root_dir' => $root_dir,
/*** 主程式所在目錄
*//**
* 輔助庫目錄
*/'library_dir' => "/_code/lib",
/*** 配置檔案所在目錄
*/'config_dir' => "/_code/config",
/*** 臨時(快取)檔案所在目錄
*/'tmp_dir' => "/_code/tmp",
/*** 日誌檔案所在目錄
*/'log_dir' => "/_code/log",
/*** 所有擴充套件模組所在的目錄
*/ );
// 設定類檔案基本路徑
//set_include_path('.' . path_separator . $config['library_dir'] . path_separator . get_include_path());
// 載入不同命名空間下的配置檔案 .sys.php,.route.php
$configfornamepace = array(
/*** 國際化和本地化
*/ '_i18n_multi_languages' => false,// 指示是否啟用多語言支援
'_l10n_default_timezone' => 'asia/shanghai',// 預設的時區設定
/*** 日誌設定
*/'_log_enabled' => true ,
'_log_writer' => 'logfilewriter' , //logfirephpwriter
'_log_filename' => "-access.log" ,
'_log_file_maxsize' => 512 ,
'_log_levels' => 'notice, debug, warning, error, exception, info' ,
/*** 資料庫鏈結dsn設定
*/ '_db_default_dsn' => array(
'driver' => 'mysqlt',
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'smallcms',
'charset' => 'utf8',
), ); /**
* 初始化應用程式
*/// 設定預設的時區
// 設定應用的日誌記錄服務
require_once("/log.php");
// 設定應用的快取服務
// 載入資料庫操作元件
require_once("/db.php");
// 設定分發器物件,並進行請求分發
require_once("/web.php");
$wd = webdispatcher::getinstance();
$wd->setnamespace($namespace);
// 設定過濾器
//$wd->addbeforefilter(new requestauthfilter());
$response = $wd->dispatching();
if ($response) echo $response;
置頂 寫個日誌封裝器 感覺用起來很爽
寫個日誌封裝器.日誌系統抽象類 abstract class logwriterabstract logfirephpwriter 類提供對 firephp 的支援 class logfirephpwriter extends logwriterabstract if this enabled th...
一起用C 寫個行列式計算器
剛剛開始 上大學的我,對於線性代數不是很理解。總感覺是那麼回事,又不是那麼回事。所以果斷把書裡的定義用程式解一遍。廢話不多說,直接上行列式類的 class hls d.add new int d.add new int public int get int index x,int index y 獲...
對《用C寫個取暖器》的看法
原文在http community.csdn.net expert topic 4446 4446519.xml?temp 284588 這帖子應該不是原創,在網上也搜得出很多日期在其前的同內容文章,而且並不是用c寫的,而是c c是沒有像new之類的用法的。我還是對其的 瘋狂 想法所深深吸引,這才是...