转自: https://my.oschina.net/editorial-story/blog/882780

PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域,是大多数后端开发者的首选。PHP 作为最受欢迎的编程语言之一,经常出现在各大语言之战中,但到底谁是最好的编程语言呢?这不是文章要讨论的内容:)

本文从众多 PHP 开源库中选出了几款实用有趣的工具,希望对你的学习工作有帮助。

1、PHP 日志工具 Monolog

Monolog 是一种支持 PHP 5.3+ 以上的日志记录工具。并为 Symfony2 默认支持。

示例代码:

<?php

use Monolog\Logger;
use Monolog\Handler\StreamHandler; // create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // add records to the log
$log->addWarning('Foo');
$log->addError('Bar');

2、Excel 操作库 PHPExcel

PHPExcel 是一个用来读写 Excel 2007 (OpenXML) 文件的 PHP 库。

示例代码:

include 'PHPExcel/IOFactory.php';

$inputFileName = './sampleData/example1.xls';

echo 'Loading file ',pathinfo($inputFileName,PATHINFO_BASENAME),' using IOFactory';
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName); $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
var_dump($sheetData);

3、PHP 机器学习库 PHP-ML

PHP-ml 是 PHP 的机器学习库。同时包含算法,交叉验证,神经网络,预处理,特征提取等。

示例代码:

use Phpml\Classification\KNearestNeighbors;

$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b']; $classifier = new KNearestNeighbors();
$classifier->train($samples, $labels); $classifier->predict([3, 2]); 
// return 'b'

4、PHP 的 OAuth 库 Opauth

Opauth 是一个开源的 PHP 库,提供了 OAuth 认证的支持,让你无需关注不同 Provider 之间的差别,提供统一标准的访问方法。目前支持 Google、Twitter 和 Facebook,其他的 Provider 支持也将陆续提供。同时也支持处理任何 OAuth 认证提供方。

5、PHP 调试库 Whoops

Whoops 适用于PHP环境的错误捕获与调试PHP库; whoops非常容易使用,它提供stack-based错误捕获及超美观的错误查看。

6、PHP 缓存库 phpFastCache

phpFastCache 是一个开源的 PHP 缓存库,只提供一个简单的 PHP 文件,可方便集成到已有项目,支持多种缓存方法,包括:apc, memcache, memcached, wincache, files, pdo and mpdo。可通过简单的 API 来定义缓存的有效时间。

示例代码:

<?php
// In your config file
include("php_fast_cache.php");
// This is Optional Config only. You can skip these lines.
// phpFastCache support "apc", "memcache", "memcached", "wincache" ,"files", "pdo", "mpdo" and "xcache"
// You don't need to change your code when you change your caching system. Or simple keep it auto
phpFastCache::$storage = "auto";
// End Optionals // In your Class, Functions, PHP Pages
// try to get from Cache first.
$products = phpFastCache::get("products_page"); if($products == null) {
$products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION;
// set products in to cache in 600 seconds = 10 minutes
phpFastCache::set("products_page",$products,600);
} foreach($products as $product) {
// Output Your Contents HERE
}
?>

7、PHP 框架 Guzzle

Guzzle 是个 PHP 框架,解决了发送大量 HTTP 请求和创建 web 服务客户端的问题。它包括了创建坚实服务客户端的工具,包括:服务描述来定义 API 的输入和输出,通过分页资源实现资源迭代,尽可能高效的批量发送大量的请求。

示例代码:

$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'https://api.github.com/user', [
'auth' => ['user', 'pass']
]);
echo $res->getStatusCode();
// "200"
echo $res->getHeader('content-type');
// 'application/json; charset=utf8'
echo $res->getBody();
// {"type":"User"...' // Send an asynchronous request.
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://httpbin.org');
$promise = $client->sendAsync($request)->then(function ($response) {
echo 'I completed! ' . $response->getBody();
});
$promise->wait();

8、CSS-JS合并/压缩 Munee

Munee是一个集图片尺寸调整、CSS-JS合并/压缩、缓存等功能于一身的PHP库。可以在服务器端和客户端缓存资源。它集成了PHP图片操作库Imagine来实现图片尺寸调整和剪切,之后进行缓存。

示例代码:

require 'vendor/autoload.php';
echo \Munee\Dispatcher::run(new \Munee\Request());
<!-- Combining two CSS files into one. -->
<link rel="stylesheet" href="/css/bootstrap.min.css, /css/demo.css"> <!-- Resizing image -->
<img src="/path/to/image.jpg?resize=width[100]height[100]exact[true]"> <!-- Files that need preprocessing are compiled automatically -->
<link rel="stylesheet" href="/css/demo.scss"> <!-- Minifying code -->
<script src="/js/script.js?minify=true"></script>

9、PHP 模板语言 Twig

Twig是一个灵活,快速,安全的PHP模板语言。它将模板编译成经过优化的原始PHP代码。Twig拥有一个Sandbox模型来检测不可信的模板代码。Twig由一个灵活的词法分析器和语法分析器组成,可以让开发人员定义自己的标签,过滤器并创建自己的DSL。

示例代码:

// Template HTML

<p>Welcome {{ name }}!</p>

// Rendering

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
'cache' => '/path/to/compilation_cache',
)); echo $twig->render('index.html', array('name' => 'George'));

10、PHP 爬虫库 Goutte

Goutte 是一个抓取网站数据的 PHP 库。它提供了一个优雅的 API,这使得从远程页面上选择特定元素变得简单。

示例代码:

require_once '/path/to/goutte.phar';

use Goutte\Client;

//发送请求
$client = new Client();
$crawler = $client->request('GET', 'http://www.oschina.net/'); //点击链接
$link = $crawler->selectLink('Plugins')->link();
$crawler = $client->click($link); //提交表单
$form = $crawler->selectButton('sign in')->form();
$crawler = $client->submit($form, array('signin[username]' => 'fabien', 'signin[password]' => 'xxxxxx')); //提取数据
$nodes = $crawler->filter('.error_list');
if ($nodes->count())
{
die(sprintf("Authentication error: %s\n", $nodes->text()));
} printf("Nb tasks: %d\n", $crawler->filter('#nb_tasks')->text());

11、PHP 邮件发送包 PHPMailer

PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:

  • 在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址
  • 支持多种邮件编码包括:8bit,base64,binary和quoted-printable
  • 支持SMTP验证
  • 支持冗余SMTP服务器
  • 支持带附件的邮件和Html格式的邮件
  • 自定义邮件头
  • 支持在邮件中嵌入图片
  • 调试灵活
  • 经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等
  • 可运行在任何平台之上

12、PHP 图表制作 pChart

pChart是一个基于GD library(图形处理函数库)开发的PHP图表制作开源项目。支持多种图表类型包括:

  • Line chart

  • Cubic curve chart

  • Plot chart

  • Bar chart

  • Filled line chart

  • Filled cubic curve chart

  • Pie chart

  • Radars chart

  • Limits chart

13、PHP 快速开发类库 Eden

Eden是一个开源且免费的PHP快速开发类库。它包含很多组件用来自动加载、事件驱动、文档系统、缓存、模板、国际化、数据库、web服务、支付网关、装载和云服务技术。

14、PHP 生成 PDF 的类 FPDF

FPDF这个PHP Class允许你采用纯PHP(更确切地说就是不需要使用PDFlib)来生成PDF文件。

它所具有的特点包括:

  • 可选择的unit大小,页面格式和页边 距;
  • 页眉和页脚管理;
  • 自动分页;
  • 自动换行与文本自动对齐;
  • 支持JPEG与PNG图片格式;
  • 支持着色和文件超链接;
  • 支持TrueType,Type1与 encoding;
  • 支持页面压缩。

示例代码:

//Determine a temporary file name in the current directory
$file = basename(tempnam('.', 'tmp'));
rename($file, $file.'.pdf');
$file .= '.pdf';
//Save PDF to file
$pdf->Output($file, 'F');
//Redirect
header('Location: '.$file);

15、PHP Error

PHP Error 是一个开源的 PHP 库,用于转换标准的 PHP 错误信息,主要用于开发过程中的调试。PHP Error 紧密集成到 PHP 环境中,显示带语法高亮的错误提示。

16、PHP 单元测试框架 SimpleTest

SimpleTest 是一个为PHP程序提供的单元测试的框架,包含一个内嵌的web浏览器用来测试PHP的Web网站。

示例代码:

 <?php
require_once('simpletest/unit_tester.php');
require_once('simpletest/reporter.php');
require_once('../classes/log.php'); class TestOfLogging extends UnitTestCase { function testCreatingNewFile() {
@unlink('/temp/test.log');
$log = new Log('/temp/test.log');
$this->assertFalse(file_exists('/temp/test.log'));
$log->message('Should write this to a file');
$this->assertTrue(file_exists('/temp/test.log'));
}
} $test = &new TestOfLogging();
$test->run(new HtmlReporter());
?>

17、PHP 的 WebSockets 开发包 PHP Ratchet

Ratchet 是一个松耦合的 PHP 库,提供了用于创建实时、双向客户端服务器 WebSockets 应用的支持。

示例代码:

<?php
namespace MyApp;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface; class Chat implements MessageComponentInterface {
public function onOpen(ConnectionInterface $conn) {
} public function onMessage(ConnectionInterface $from, $msg) {
} public function onClose(ConnectionInterface $conn) {
} public function onError(ConnectionInterface $conn, \Exception $e) {
}
}

18、模块化 PHP 库集合 Hoa

Hoa 是模块化,可扩展和结构化的 PHP 库集合。Hoa 的目标是搭建工业和研究之间的桥梁。

可以通过组合和扩展来 Hoa 创建自己的应用和库。

各种实用的 PHP 开源库推荐【转】的更多相关文章

  1. Github 上 36 个最实用的 Vue 开源库

    任何一个开发者,都是十分喜欢使用开源软件包的.因为它使开发工作变得更快速.高效.容易.如果没有开源软件包,开发工作将变得疲惫不堪,不断的重复造轮子! 下面整理了 Github 上 36 个实用的 Vu ...

  2. 27个提升效率的iOS开源库推荐

    DZNEmptyDataSet(UI,空表格视图解算器) PDTSimpleCalendar(UI,drop-in日历组件) MagicalRecord(实施活跃记录模式的Core Data助手) C ...

  3. 开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐!

    作者:编辑部的故事   <  开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐!   > 开源巨献:年度最佳 JavaScript 和 CSS 开源库推荐! Tutoria ...

  4. 【开源库推荐】#3 Android EventBus的使用

    原文地址:[开源库推荐]#3 Android EventBus的使用 | Stars-One的杂货小窝 EventBus的Github Event bus for Android and Java t ...

  5. Java下好用的开源库推荐

    作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文想介绍下自己在Java下做开发使用到的一些开源的优秀编程库,会不定 ...

  6. 快快快!27个提升效率的iOS开源库推荐

    文章来源:http://www.csdn.net/article/2015-07-21/2825264-27-ios-open-source-libraries/1 我热爱开源,更喜爱那些花费宝贵的业 ...

  7. 快快快!27个提升效率的iOS开源库推荐(转)

    CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用.开发工具.移动游戏及引擎.智能硬件.物联网等方方面面.如果您想投稿.参与内容翻译工作,或寻求近匠报道,请发送 ...

  8. ios开发--27个提升效率的iOS开源库推荐

    超长慎入列表: DZNEmptyDataSet(UI,空表格视图解算器) PDTSimpleCalendar(UI,drop-in日历组件) MagicalRecord(实施活跃记录模式的Core D ...

  9. GitHub上那些值得一试的JAVA开源库--转

    原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...

随机推荐

  1. Generator 函数和for...of循环,实现斐波那契数列

    function* fib () { let [prev, cur] = [0,1] for (;;) { yield cur [prev, cur] = [cur, cur+prev] } } fo ...

  2. modbus系列文章—汇总

    请移步我博客园的网站 基本上是自己的原创,不是网上抄来抄去的,有很多干货,希望一边整理,一边修改-有不对的地方多多指教. https://www.cnblogs.com/CodeWorkerLiMin ...

  3. springboot(三)

    SpringBoot 整合JdbcTemplate 1.创建一个springboot_jdbc项目  2.导入依赖 <dependency> <groupId>org.spri ...

  4. oracle 按每天,每周,每月,每季度,每年查询统计数据

    oracle 按每天,每周,每月,每季度,每年查询统计数据 //按天统计 select count(dataid) as 每天操作数量, sum() from tablename group by t ...

  5. Mysql注入绕过安全狗

    转载请加原文链接:https://www.cnblogs.com/Yang34/p/12055052.html 微信公众号:信Yang安全.同步更新,欢迎关注.文末有二维码. 正好最近在搞注入,昨天现 ...

  6. 基于Kafka的实时计算引擎如何选择?(转载)

    1.前言 目前实时计算的业务场景越来越多,实时计算引擎技术及生态也越来越成熟.以Flink和Spark为首的实时计算引擎,成为实时计算场景的重点考虑对象.那么,今天就来聊一聊基于Kafka的实时计算引 ...

  7. 为啥用DTO

    0.部分参数对于开发前端的人来说是无意义的,因为传递也没有效果.所以不应该暴露给前端使用. 1.依据现有的类代码,即可方便的构造出DTO对象,而无需重新进行分析. 2.减少请求次数,大大提高效率. 3 ...

  8. learning scala akka tell pattern(二)

    package com.example import akka.actor._ object Tutorial_02_Tell_Pattern extends App { println(" ...

  9. 2-移远GSM/GPRS M26 模块 Mini板 开发板(M26入门)

    https://www.cnblogs.com/yangfengwu/p/11214553.html 资料获取,首先说一下....很多东西需要自己悟,没有QQ群,没有微信群,论坛也寥寥无几!!!! 估 ...

  10. Linux 重启 PHP-FPM 命令

    1. 停止命令 pkill php-fpm 2.重启或启动命令 php-fpm -R