Databse 数据库ORM

Doctrine 2

  • License : MIT
  • Source Code
  • Allo点评:Doctrine是功能最全最完善的PHP ORM,社区一直很活跃,对NoSQL也非常迅速的作出了跟进与支持。但之所以没有说Doctrine是最好的,是因为我对PHP究竟有没有必要使用如此庞大的ORM还心存疑虑,平心而论Doctrine的入门门槛实在有些高,尤其是DBAL的提出,更是要把开发者牢牢绑定在Doctrine这艘大船上,用与不用,还是要仔细权衡。

RedBeanPHP

  • License : New BSD
  • Source Code
  • Allo点评:相比起Doctrine,RedBean轻巧的简直要飞起来,这两个轮子就是一组最好的比照,是大而全,还是小而精,根据项目选择吧。

Documents & Testing 文档与测试

phpDocumentor 2

  • License : MIT
  • Source Code
  • Allo点评:老牌php文档生成工具。

Faker

  • License : MIT
  • Source Code
  • Allo点评:Faker是一个很神奇的项目,会自动生成拟真的数据,包括用户资料、长文本、IP、日期等等,在网站上线前测试时非常好用。

Datetime 时间处理

Carbon

  • License : MIT
  • Source Code
  • Allo点评:虽然PHP5内置的Datetime类已经足够应付一般需求,不过Carbon所提供的一些更人性化的处理则更符合实际需求,如果是时间相关的项目应该考虑使用。

File System 文件系统

Gaufrette

  • License : MIT
  • Source Code
  • Allo点评:文件系统几乎是所有项目都会遇到的问题,Gaufrette为常见的文件系统提供了一套统一接口,包括本地文件/FTP/Dropbox/GridFS/Zip/AmazonS3等等,是大型系统必备的组件。

Front-end 前端性能

Assetic

  • License : MIT
  • Source Code
  • Allo点评:Assetic可以说生来就是为了多模块的项目而存在的,有了Assetic,可以将分散在各模块中的前端文件编译、合并、压缩。可以让开发人员专注于代码的编写而不是前端文件的生成。

lessphp

  • License : MIT
  • Source Code
  • Allo点评:LESS编译器的php版本。不过对于复杂的LESS项目,比如bootstrap,编译的结果与NodeJS原版还是有差异,只能做为Assetic的一个补充。

minify

  • License : MIT
  • Source Code
  • Allo点评:PHP版本的CSS/JS压缩器。

HTTP Client HTTP客户端

Requests

  • License : MIT
  • Source Code
  • Allo点评:Requests实现的非常灵巧,底层默认没有使用cURL而是采用fsockopen作为通信手段,非常适合集成在一些小型项目中。

Buzz

  • License : MIT
  • Source Code
  • Allo点评:另一个轻量级的HTTP客户端实现,文档上不够丰富。独到之处在于内置了事件机制,可以更灵活的集成。

HTML & Dom

HTMLPurifier

  • License : LGPL v2.1+
  • Source Code
  • Allo点评:凡是有WYSIWYG功能的项目,XSS以及恶意的提交都会成为一个头痛的问题。HTMLPurifier提供了完整的HTML校验与纠错,又无需安装tidy扩展

PHP Simple HTML DOM Parser

  • License : MIT
  • Source Code
  • Allo点评:解析HTML为DOM并且可以使用jQuery选择器操作DOM,如果需要提取HTML页面内容而不考虑高性能,那么用PHP Simple HTML DOM可以很惬意。

Image 图形处理

Imagine

  • License : MIT
  • Source Code
  • Allo点评:Imagine为几大图形处理库提供了一个统一接口,即后台可以为Gd、Imagick、Gmagick的任意一种,而代码保持不变。其实Pear也提供过类似的库Image_Transform,但是Imagine明显更胜一筹。我还基于Imagine做了一个可以用URL操作图片的项目EvaThumber,可以更加简单的集成。
  • 应用范围:缩略图生成等任何图形相关的功能。

Log处理

Monolog

  • License : MIT
  • Source Code
  • Allo点评:可以非常简单的规定Log格式,并有众多的后端支持。虽然像Zend Framework也内置了Zend\Log这样的组件,但是Monolog仍然是最全面专业的Log处理首选方案
  • 应用范围:几乎所有需要线上调试或者收集用户信息的系统

Markups 标记语言

PHP Markdown

  • License : New BSD License
  • Source Code
  • Allo点评:Markdown在轻量级标记语言中已经俨然有一统天下的趋势,PHP Markdown应该是目前以PHP编写的最好的Markdown解析器。当然一般来说使用Markdown作为标记语言需要搭配一个JS编辑器,比如PageDown-Bootstrap
  • 应用范围:任何中长篇的用户数据录入,比如用户评论、Blog等场景。可以减轻用户录入负担,并且有效的防止XSS

Payment Gateways 支付网关

Aktive Merchant for PHP

  • License : MIT
  • Source Code
  • Allo点评:Ruby项目Active Merchant的php版本。对PayPal、Authorize.net等多家支付网关提供了统一的接口。
  • 应用范围:需要支付网关的项目,有国内支付宝等网关支付需求的完全可以贡献代码

Omnipay

  • License : MIT
  • Source Code
  • Allo点评:统一接口的支付网关,支持的支付接口更丰富一些。

Queue 任务队列

php-resque

  • License : MIT
  • Source Code
  • Allo点评:php-resque是Ruby项目resque在php下的实现。虽然Gearman也是一个不错的选择,但是resque的构架设计更加简洁清晰,更加符合KISS原则。简单用法可以参看用PHP实现守护进程任务后台运行与多线程一文
  • 应用范围:需要后台任务的系统,比如邮件发送、同步信息等需求。

Templating 模板引擎

Twig

  • License : New BSD License
  • Source Code
  • Allo点评:如果说对模板引擎的印象还停留在Smarty的阶段,那么你真的已经落后于时代了。Twig是目前关注度最高的PHP模板引擎,比Smarty提供了更简约和易懂的语法。当然如果项目没有主题切换这样的需求,php本身就是最好的模板引擎。
  • 应用范围:有皮肤、主题切换需求的项目,可以避免php模板带来的安全问题

PHP那些最好的轮子的更多相关文章

  1. 避免重复造轮子的UI自动化测试框架开发

    一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...

  2. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  3. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  4. h5engine造轮子

    基于学习的造轮子,这是一个最简单,最基础的一个canvas渲染引擎,通过这个引擎架构,可以很快的学习canvas渲染模式! 地址:https://github.com/RichLiu1023/h5en ...

  5. 存在即合理,重复轮子orm java版本

    1,业务描述前序? 需求来源于,公司的运营部门.本人所在公司(私营,游戏行业公司),从初创业,我就进入公司,一直致力于服务器核心研发. 公司成立块3年了,前后出产了4款游戏,一直在重复的制造公司游戏对 ...

  6. Appium 三种wait方法(appium 学习之改造轮子)

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  7. JS实现常用排序算法—经典的轮子值得再造

    关于排序算法的博客何止千千万了,也不多一个轮子,那我就斗胆粗制滥造个轮子吧!下面的排序算法未作说明默认是从小到大排序. 1.快速排序2.归并排序3.冒泡排序4.选择排序(简单选择排序)5.插入排序(直 ...

  8. 我为什么还要造轮子?欠踹?Monk.UI表单美化插件诞生记!

    背景 目前市场上有很多表单美化的UI,做的都挺不错,但是他们都有一个共同点,那就是90%以上都是前端工程师开发的,导致我们引入这些UI的时候,很难和程序绑定.所以作为程序员的我,下了一个决定!我要自己 ...

  9. 「iOS造轮子」之UIButton 用Block响应事件

    俗语说 一个不懒的程序员不是好程序员 造轮子,也只是为了以后更好的coding. coding,简易明了的代码更是所有程序员都希望看到的 无论是看自己的代码,还是接手别人的代码 都希望一看都知道这代码 ...

  10. 造轮子之数据库对比工具DataBaseComparer

    最近同时在维护好几个项目,有些项目是SqlServer的,另一些是MySql的,DBA推荐了一个线上库和线下库的对比工具,用的时候经常会在对比时,半天都没有进度.索性自己这次造个轮子,做了一个纯对比数 ...

随机推荐

  1. 个人学习FPGA的初步过程

    对于FPGA,完全是从零开始学习,简单讲述一下我个人学习FPGA的经历吧: 没有开发板的日子.说真的要我掏腰包买开发板觉得是一件非常奢侈的事情.理由1:现成的东西,背后影藏诸多诡异的事情我们是无法体会 ...

  2. at 定时任务

    每天一个linux命令(49):at命令   在windows系统中,windows提供了计划任务这一功能,在控制面板 -> 性能与维护 -> 任务计划, 它的功能就是安排自动运行的任务. ...

  3. WEB在线预览PDF

    这是我在博客园发表的第一篇文章.以后会陆续把在线预览其他格式文档的解决方案发表出来. 解决思路:把pdf转换成html显示. 在线预览pdf我暂时了解3种解决方案,欢迎大家补充. 方案一: 利用pdf ...

  4. iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。

    转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...

  5. Horizon/DomainWorkFlow

    https://wiki.openstack.org/wiki/Horizon/DomainWorkFlow

  6. Pop框架简述

    Facebook发布了Paper之后,进一步开源了其背后的动画引擎Pop,此框架并不满足于苹果自身的动画单调性,致力于给用户一种逼真的动画效果,可以减少用户对于苹果原生Core Animation 复 ...

  7. 2、手把手教你Extjs5(二)项目中文件的加载过程

    上一节中用sencha工具自动创建了一个项目,并且可以在浏览器中查看.现在我们来看看js类加载过程.如下图所示: 1、首先:浏览器中输入 localhost:1841 ,调用 index.html; ...

  8. 基于MDK编程STM32程序无法使用,硬件仿真在汇编窗口看到停留在“0x0800XXXX BEAB BKPT 0xAB //进入调试模式”

    为方便工作上做测试,移植FreeRTOS到STM32F103xx,先做简单的UART1 printf. 工程编译通过,运行逻辑也确认可行,可就是无法正常打印消息.对比了网上的移植工程也是一致,硬件仿真 ...

  9. realm-java 源码疑问

    JNIEXPORT void JNICALL Java_io_realm_internal_Group_nativeWriteToFile( JNIEnv* env, jobject, jlong n ...

  10. 增量式PID的stm32实现(转)

    源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: ...