PHP之依賴管理composer
當你想著鞋墊自己的東西的時候,或者說是整理下過去用過的工具,程式碼,這時候你就會想到看看github上比較好的程式碼,這裡主要講PHP的
估計在win上安裝composer比較麻煩,或者不好用,但是你想用本地的wamp,那麼你可以用虛擬機器安裝好composer,然後就可以下載你需要的。這裡以我正在使用的monolog日誌系統
composer require monolog/monolog
這樣就會在當前目錄生成和下載
vender就是統一的第三方外掛的資料夾,composer.json就是配置檔案,composer會根據這個去下載第三方,composer.lock會限制composer不會更新你安裝過外掛的版本,保持你們開發的穩定性
現在來說說monolog,本來就是安裝PHP規範寫的,文件也寫的比較清楚,不過文件看完,你瞭解了設計思路,但是具體的應用需要自己在使用中慢慢發掘或者專門去測試一下
上程式碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?php include "vendor/autoload.php" ;
use Monologlogger;
use MonologHandlerStreamHandler;
use MonologFormatterLineFormatter;
// include "vendor/monolog/monolog/tests/Monolog/LoggerTest.php"; //設定格式的地方 $dateFormat = "Y-n-j, g:i:a" ;
$output = "%datetime% > %channel%.%level_name% > %message% %context% %extra% ;
$formatter = new LineFormatter( $output , $dateFormat );
$log = new Logger( `myApp` );
//$log = new MonologLogger("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( `我涉及到的都是安全問題` );
|
針對資料庫的寫法
上程式碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
use MonologLogger;
use MonologHandlerAbstractProcessingHandler;
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;
}
|
願大家一路順風,更多的學習更多優秀的程式碼,在使用完,休閒的時候看看人家的思路
願法界眾生,皆得安樂
本文轉自 jackdongting 51CTO部落格,原文連結:http://blog.51cto.com/10725691/1955540
相關文章
- PHP依賴管理ComposerPHP
- Composer -- PHP依賴管理的用法PHP
- PHP的依賴管理工具-ComposerPHP
- PHP依賴管理工具Composer安裝PHP
- Composer之依賴包下載地址
- 依賴管理和依賴範圍
- golang 依賴管理Golang
- Maven依賴管理:控制依賴的傳遞Maven
- govendor依賴包管理Go
- 探索 JavaScript 中的依賴管理及迴圈依賴JavaScript
- composer包依賴衝突解決一例
- PHP 依賴注入容器實現PHP依賴注入
- PHP 依賴注入基礎理解PHP依賴注入
- Gradle for Android系列之四 依賴包管理GradleAndroid
- Flutter 中的依賴管理Flutter
- Maven依賴管理系統Maven
- 開發composer 包所遇到的問題之,依賴的包報警告資訊
- composer依賴相關的問題和解決辦法
- 使用IDEA模組之間依賴找不到依賴類Idea
- PHP回顧之ComposerPHP
- PHP 依賴注入容器 Pimple 筆記PHP依賴注入筆記
- nodejs 中的依賴管理NodeJS
- 開源依賴項管理指南
- Android 依賴管理簡介Android
- Maven最佳實踐:管理依賴Maven
- 完整的PHP依賴倒置原則例程PHP
- .NET之預設依賴注入依賴注入
- npm如何管理依賴包的版本NPM
- 使用godep管理Golang專案依賴Golang
- 使用govendor管理Golang專案依賴Golang
- 官方依賴管理工具:dep
- Maven的頂級功能——依賴管理Maven
- 依賴
- PHP 控制反轉(IoC) 和 依賴注入(DI)PHP依賴注入
- PHP 控制反轉(IOC)和依賴注入(DI)PHP依賴注入
- PHP 之 Composer 新手入門指南PHP
- 依賴倒置(DIP)與依賴注入(DI)依賴注入
- 【資料庫之函式依賴】資料庫函式