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类库详解

时间: 2024-10-16 22:16:48

php常用Library的相关文章

CentOS6.5下安装Robot常用Library

安装 yum install -y mysql-devel python-devel python-setuptools pip install MySQL-python pip install databaselibrary pip install robotframework_databaselibrary pip install pymongo pip install pymysql Python-Library /usr/local/lib/python2.7/site-packages

object - c 语言基础 进阶笔记 随笔笔记

重点知识Engadget(瘾科技)StackOverFlow(栈溢出)Code4Apprespon魏先宇的程序人生第一周快捷键: Alt+上方向键 跳到最上面  Alt+下方向键 跳到最下面         Alt+左方向键 跳到最左面   Alt+右方向键 跳到最右面        Alt+shift+方向键  可以批量复制内容,在按方向键可以删除行        command+鼠标  纵向复制内容userInteractionEnabled  控件的交互性;类的三大特性 :工程名:首字母一

R:ggplot2数据可视化——进阶(3)

Part 3: Top 50 ggplot2 Visualizations - The Master List, 结合进阶1.2内容构建图形 有效的图形是: 不扭曲事实 传递正确的信息 简洁优雅 美观是为了凸显信息 而不要盖过信息 不超载信息 1 相关性图 散点图 最常用 # install.packages("ggplot2") # load package and data options(scipen=999) # turn-off scientific notation lik

Android support library支持包常用控件介绍(一)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator

Android support library支持包常用控件介绍(二)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator

as3.0 library中图片的使用,及Bitmap常用属性

1. 在library中的图片如加载到显示列表中呢,我们可以使用Bitmap这个对象来载图片 如上图片,在library中我有一张图片,并给予了链接名为myBitMap,如何使用这张图片代码如下 import flash.display.Bitmap; var bitmap:Bitmap = new Bitmap(new myBitMap() as BitmapData);  bitmap.scaleX = 0.5; bitmap.scaleY = .5; bitmap.x = 110; bit

基于.NET平台常用的框架整理

自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库. 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架. Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度. Redis:是一个高性能的KV数据库. 它的出现很大程度补偿了Mem

【转】Header Only Library的介绍

什么是Header Only Library Header Only Library把一个库的内容完全写在头文件中,不带任何cpp文件. 这是一个巧合,决不是C++的原始设计. 第一次这么做估计是STL.在80年代末C++编译器还不支持模块分离(现在也不支持,以后估计也不会支持了), STL的作者不得不把模板的实现写在头文件中, 使得一个STL库的实现绝大部分都展示给了使用者. 第一次广泛被接受估计还是在Boost库,它不只提出使用hpp做为Header Only Library的文件后缀(因为

Robot Framework常用关键字介绍

下面关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库.Builtin库提供常用的关键字 1.log log 关键字就是编程语言里的"print"一样,可以打印任何你想打印的内容. 2.定义变量 通过"Set variable"关键字来定义变量 3.连接对象 "Catenate"关键字可以连接多个信息 加上"SEPARATOR="可以对多个连接的信息进行分割. 4.定义列表 通过