各類實用的 PHP 開源庫推薦【轉】

 

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

 

PHP 是一種通用開源腳本語言。語法吸取了 C 語言、Java 和 Perl 的特色,利於學習,使用普遍,主要適用於 Web 開發領域,是大多數後端開發者的首選。PHP 做爲最受歡迎的編程語言之一,常常出如今各大語言之戰中,但到底誰是最好的編程語言呢?這不是文章要討論的內容:)css

本文從衆多 PHP 開源庫中選出了幾款實用有趣的工具,但願對你的學習工做有幫助。html

一、PHP 日誌工具 Monolog

Monolog 是一種支持 PHP 5.3+ 以上的日誌記錄工具。併爲 Symfony2 默認支持。node

示例代碼:git

<?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');

二、Excel 操做庫 PHPExcel

PHPExcel 是一個用來讀寫 Excel 2007 (OpenXML) 文件的 PHP 庫。github

示例代碼:web

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);

三、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'

四、PHP 的 OAuth 庫 Opauth

Opauth 是一個開源的 PHP 庫,提供了 OAuth 認證的支持,讓你無需關注不一樣 Provider 之間的差異,提供統一標準的訪問方法。目前支持 Google、Twitter 和 Facebook,其餘的 Provider 支持也將陸續提供。同時也支持處理任何 OAuth 認證提供方。編程

Opauth diagram

五、PHP 調試庫 Whoops

Whoops 適用於PHP環境的錯誤捕獲與調試PHP庫; whoops很是容易使用,它提供stack-based錯誤捕獲及超美觀的錯誤查看。

六、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 } ?>

七、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();

八、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>

九、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'));

十、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());

 

十一、PHP 郵件發送包 PHPMailer

PHPMailer是一個用於發送電子郵件的PHP函數包。它提供的功能包括:

  • 在發送郵時指定多個收件人,抄送地址,暗送地址和回覆地址
  • 支持多種郵件編碼包括:8bit,base64,binary和quoted-printable
  • 支持SMTP驗證
  • 支持冗餘SMTP服務器
  • 支持帶附件的郵件和Html格式的郵件
  • 自定義郵件頭
  • 支持在郵件中嵌入圖片
  • 調試靈活
  • 經測試兼容的SMTP服務器包括:Sendmail,qmail,Postfix,Imail,Exchange等
  • 可運行在任何平臺之上

十二、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

1三、PHP 快速開發類庫 Eden 

Eden是一個開源且免費的PHP快速開發類庫。它包含不少組件用來自動加載、事件驅動、文檔系統、緩存、模板、國際化、數據庫、web服務、支付網關、裝載和雲服務技術。

eden-php-library

1四、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);

1五、PHP Error

PHP Error 是一個開源的 PHP 庫,用於轉換標準的 PHP 錯誤信息,主要用於開發過程當中的調試。PHP Error 緊密集成到 PHP 環境中,顯示帶語法高亮的錯誤提示。

php-error

1六、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()); ?>

1七、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) { } }

1八、模塊化 PHP 庫集合 Hoa

Hoa 是模塊化,可擴展和結構化的 PHP 庫集合。Hoa 的目標是搭建工業和研究之間的橋樑。 

能夠經過組合和擴展來 Hoa 建立本身的應用和庫。

 

 

 

相關文章
相關標籤/搜索