php常用Library

突然兴起,想总结一下php使用过的类库,当然,是一点一点增加,不会一下子完整哦~

 

一、php日志类库 Monolog

     功能强大,可以把日志发送到文件、socket、邮箱、数据库和各种web services。

   可替换性强。

     可扩展和自定义很方便。

 

思考:

  如果让我设计,我会考虑提供给用户,

    1、可以直接操作的log对象。

    2、输入流对象,xxxHandler对象,在log对象和输出介质之间抽象一层出来。   // log对象-----> streamHandler----->实际的xxx.txt文档   因为输出介质有可能是txt文档、mysql数据库、邮件、socket发送等等

    //StreamHandler写入磁盘,Mailhandler写入邮件,在Monolog中,xxxHandler对象是堆栈式,流水线处理,即从上到下,先处理MailHandler决定是否邮件发出该日志,完成后,判断是否暂停执行下面的处理,如果

    //如果继续,在走到StreamHandler写入磁盘。。。 这种 堆栈式,线性流水解决方案很棒。

    3、Monolog里面用的是,观察者模式,往log对象中注入多个监听xxxHandler。

    log对象---(观察者模式)------>xxxHandler-------->输出介质

 

    4、但,,如果是我,就建一个抽象类Handler,把具体模式放在Handler类实现,log对象之间操作Hanlder里面的方法,方法实现用具体的StreamHandler或者MailHandler,但这样就不是流水线式从上到下执行的。在

    只需要执行一个时,用这种方式会更好。

 

 

StreamHandler:把记录写进PHP流,主要用于日志文件。
SyslogHandler:把记录写进syslog。
ErrorLogHandler:把记录写进PHP错误日志。
NativeMailerHandler:使用PHP的mail()函数发送日志记录。
SocketHandler:通过socket写日志。
AmqpHandler:把记录写进兼容amqp协议的服务。
BrowserConsoleHandler:把日志记录写到浏览器的控制台。由于是使用浏览器的console对象,需要看浏览器是否支持。
RedisHandler:把记录写进Redis。
MongoDBHandler:把记录写进Mongo。
ElasticSearchHandler:把记录写到ElasticSearch服务。
BufferHandler:允许我们把日志记录缓存起来一次性进行处理

 

 

 

 

相关链接:

http://segmentfault.com/a/1190000002775923  //monolog类库详解

posted @ 2015-11-23 15:42  zyliang  阅读(1151)  评论(0编辑  收藏  举报