標籤:php composer monolog
當你想著鞋墊自己的東西的時候,或者說是整理下過去用過的工具,代碼,這時候你就會想到看看github上比較好的代碼,這裡主要講PHP的
估計在win上安裝composer比較麻煩,或者不好用,但是你想用本地的wamp,那麼你可以用虛擬機器安裝好composer,然後就可以下載你需要的。這裡以我正在使用的monolog日誌系統
composer require monolog/monolog
這樣就會在目前的目錄產生和下載
vender就是統一的第三方外掛程式的檔案夾,composer.json就是設定檔,composer會根據這個去下載第三方,composer.lock會限制composer不會更新你安裝過外掛程式的版本,保持你們開發的穩定性
現在來說說monolog,本來就是安裝PHP規範寫的,文檔也寫的比較清楚,不過文檔看完,你瞭解了設計思路,但是具體的應用需要自己在使用中慢慢發掘或者專門去測試一下
上代碼:
<?phpinclude "vendor/autoload.php";use Monolog\logger;use Monolog\Handler\StreamHandler;use Monolog\Formatter\LineFormatter;// include "vendor/monolog/monolog/tests/Monolog/LoggerTest.php";//設定格式的地方$dateFormat = "Y-n-j, g:i:a";$output = "%datetime% > %channel%.%level_name% > %message% %context% %extra%\n";$formatter = new LineFormatter($output, $dateFormat);$log = new Logger(‘myApp‘);//$log = new Monolog\Logger("name");$bug_log = new StreamHandler(‘logs/development.log‘,logger::DEBUG);$bug_log->setFormatter($formatter);$log->pushHandler($bug_log);$log->pushHandler(new StreamHandler(‘logs/production.log‘,logger::WARNING));$error = array(‘12‘=>‘jack‘,‘13‘=>‘marry‘);$error_string = ‘a error‘;//$log->debug($error_string);//$log->warning(‘This is a warning. No caring now‘);//$log->info(‘Where Can I see you?‘);// $logtest = new LoggerTest();// $logtest->testGetName();$log->addInfo(‘Adding a new user‘, array(‘username‘ => ‘Seldaek‘));$log->pushProcessor(function ($record) { $record[‘extra‘][‘dummy‘] = ‘Hello world!now I cannot see the world outside.‘; return $record;});//withName是單獨複製,換個名字記錄$securityLogger = $log->withName(‘security‘);$securityLogger->info(‘我涉及到的都是安全問題‘);
針對資料庫的寫法
上代碼
use Monolog\Logger; use Monolog\Handler\AbstractProcessingHandler; class PDOHandler extends AbstractProcessingHandler { private $initialized = false; private $pdo; private $statement; public function __construct(PDO $pdo, $level = Logger::DEBUG, $bubble = true) { $this->pdo = $pdo; parent::__construct($level, $bubble); } protected function write(array $record) { if (!$this->initialized) { $this->initialize(); } $this->statement->execute(array( ‘channel‘ => $record[‘channel‘], ‘level‘ => $record[‘level‘], ‘message‘ => $record[‘formatted‘], ‘time‘ => $record[‘datetime‘]->format(‘U‘), )); } private function initialize() { $this->pdo->exec( ‘CREATE TABLE IF NOT EXISTS monolog ‘ .‘(channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED)‘ ); $this->statement = $this->pdo->prepare( ‘INSERT INTO monolog (channel, level, message, time) VALUES (:channel, :level, :message, :time)‘ ); $this->initialized = true; }
願大家一路順風,更多的學習更多優秀的代碼,在使用完,休閑的時候看看人家的思路
願法界眾生,皆得安樂
本文出自 “一站式解決方案” 部落格,請務必保留此出處http://10725691.blog.51cto.com/10715691/1955540
PHP之依賴管理 composer