PHPer 进击学习之路:各种实用的 PHP 开源库推荐(一)
来源:互联网 发布:优化发展环境方面 编辑:程序博客网 时间:2024/05/16 06:04
PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域,是大多数后端开发者的首选。PHP 作为最受欢迎的编程语言之一,经常出现在各大语言之战中,但到底谁是最好的编程语言呢?这不是文章要讨论的内容:)
本文从众多 PHP 开源库中选出了几款实用有趣的工具,希望对你的学习工作有帮助。
1、PHP 日志工具 Monolog
Monolog 是一种支持 PHP 5.3+ 以上的日志记录工具。并为 Symfony2 默认支持。
示例代码:
<?phpuse 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>// Renderingrequire_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());
责任编辑:开源中国 - 达尔文
转自开源中国
原文:https://my.oschina.net/editorial-story/blog/882780
- PHPer 进击学习之路:各种实用的 PHP 开源库推荐(一)
- PHPer 进击学习之路:实用的 PHP 开源库推荐(一)
- 【总结】深度学习打造精准推荐系统,细说国美互联网AI发展的进击之路
- kafka进击之路(一) —— 入门
- flume ng进击之路 (一)—— 入门
- 进击的大神之路
- 架构师进击之路一--启航
- LAMP转帖 php职业分析(如何成为一名优秀的phper)
- PHPer 发展之路
- PHPer之路
- phper成长之路
- phper初学objective-c之读书笔记(一)
- 进击的数据结构一之线性表的顺序结构
- 初级phper的学习历程
- JavaScript进击之路(1)
- JavaScript进击之路(2)
- 一个phper的easyUI使用笔记(一)
- 超实用的自我规划模型 | 进击
- Android自定义View的方法
- 解决mysql插入中文乱码问题
- Swagger UI教程 API 文档神器
- vmware虚拟机克隆CentOS7 出现的网络问题与解决办法
- cat、tail、head、grep、sed查看文件任意几行的数据
- PHPer 进击学习之路:各种实用的 PHP 开源库推荐(一)
- 小程序第三方平台初体验(上)|微专辑
- 矩阵意义-摘自知乎
- dp,px,pt,sp 的区别 以及dp 和 px 互转
- 二维数组 记录
- ImageJ的安装与简单使用
- 异常Calling startActivity() from outside of an Activity的解决方法
- ISP相关术语
- Deep Learning(深度学习)学习笔记整理系列之(一)