zoukankan      html  css  js  c++  java
  • 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类库详解

  • 相关阅读:
    eclipse文件编辑器相关概念
    Oracle ROLLUP和CUBE 用法
    eclipse插件开发常用的选择器
    oracle多cpu并行查询
    MYECLISE6.5下CDT安装
    oracle SAMPLE 语法应用
    常用的gcc命令
    vbscript获取本机的ip地址和mac地址
    什么是Single Sign On
    eclipse插件开发中全局对象的获取
  • 原文地址:https://www.cnblogs.com/zhongyuan/p/4988657.html
Copyright © 2011-2022 走看看