"); //-->
今天扣丁学堂给大家整理一下关于PHP培训之24个库详解,首先作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。那么下面我们一起来看一下吧。

1、Dispatch:微框架
Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。
Php代码
//包含库
include'dispatch.php';
//定义你的路由
get('/greet',function(){
//渲染视图
render('greet-form');
});
//post处理
post('/greet',function(){
$name=from($_POST,'name');
//renderaviewwhilepassingsomelocals
render('greet-show',array('name'=>$name));
});
//serveyoursite
dispatch();
你可以匹配特定类型的HTTP请求和路径,渲染视图或做更多事情。如果你合并Dispatch和其他框架,那你就可以拥有一个相当强大并且轻量级的程序!
2、Klein:PHP快如闪电的路由
Klein是另一款针对PHP5.3+版本的轻量级路由库。虽然它有一些比Dispatch冗长的语法,但它相当快。这有一个例子:
Php代码
respond('/[:name]',function($request){
echo'Hello'.$request->name;
});
你也可以定制来指定HTTP方法和使用正则表达式作为路径。
Php代码
respond('GET','/posts',$callback);
respond('POST','/posts/create',$callback);
respond('PUT','/posts/[i:id]',$callback);
respond('DELETE','/posts/[i:id]',$callback);
//匹配多种请求方法:
respond(array('POST','GET'),$route,$callback);
//你或许也想在相同的地方处理请求
respond('/posts/[create|edit:action]/[i:id]',function($request,$response){
switch($request->action){
//dosomething
}
});
对于小型项目来说这是很棒的,但当你把一个像这样的库用于大型应用时,你不得不遵守规矩,因为你的代码可能很快就变得不可维护。所以你最好搭配一个像Laravel或者CodeIgniter这样完全成熟的框架。
3、Ham:带缓存的路由库
Ham也是一款轻量级的路由框架,但是它利用缓存甚至获得了更快的速度。它通过把任何I/O相关的东西缓存进XCache/APC。下面是一个例子:
Php代码
require'../ham/ham.php';
$app=newHam('example');
$app->config_from_file('settings.php');
$app->route('/pork',function($app){
return"Deliciouspork.";
});
$hello=function($app,$name='world'){
return$app->render('hello.html',array(
'name'=>$name
));
};
$app->route('/hello/',$hello);
$app->route('/',$hello);
$app->run();
这个库要求你至少安装了XCache和APC其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。但是如果你拥有一个安装它们其一的主机,或者你可以操控你的web服务器,你应该尝试这款最快的框架。
4、Assetic:资源管理
Assetic是一个PHP的资源管理框架,用于合并和减小了CSS/JS资源。下面是例子。
Php代码
useAssetic\Asset\AssetCollection;
useAssetic\Asset\FileAsset;
useAssetic\Asset\GlobAsset;
$js=newAssetCollection(array(
newGlobAsset('/path/to/js/*'),
newFileAsset('/path/to/another.js'),
));
//当资源被输出时,代码会被合并
echo$js->dump();
以这种方式合并资源是一个好主意,因为它可以加速站点。不仅仅总下载量减小了,也消除了大量不必要的HTTP请求(这是最影响页面加载时间的两件事)
5.ImageWorkshop:带层的图片处理
ImageWorkshop是一个让你操控带层图片的开源库。借助它你可以重定义尺寸、裁剪、制作缩略图、打水印或做更多事情。下面是一个例子:
Php代码
//从norway.jpg图片初始化norway层
$norwayLayer=ImageWorkshop::initFromPath('/path/to/images/norway.jpg');
//从watermark.png图片初始化watermark层(水印层)
$watermarkLayer=ImageWorkshop::initFromPath('/path/to/images/watermark.png');
$image=$norwayLayer->getResult();//这是生成的图片!
header('Content-type:image/jpeg');
imagejpeg($image,null,95);//WechoosetoshowaJPGwithaqualityof95%
exit;
ImageWorkshop被开发用于使一些PHP中最通用的处理图片的案例简化,如果你需要一些更强大的东西,你应该看下Imaginelibrary!
6、Snappy:快照/PDF库
Snappy是一个PHP5库,可以生成快照、URL、HTML、PDF。它依赖于wkhtmltopdfbinary(在Linux,Windows和OSX上都可用)。你可以像这样使用它们:
Php代码
require_once'/path/to/snappy/src/autoload.php';
useKnp\Snappy\Pdf;
//通过wkhtmltopdfbinary路径初始化库
$snappy=newPdf('/usr/local/bin/wkhtmltopdf');
//通过把Content-type头设置为pdf来在浏览器中展示pdf
header('Content-Type:application/pdf');
header('Content-Disposition:attachment;filename="file.pdf"');
echo$snappy->getOutput('http://www.github.com');
要记得,你的主机提供商可能不允许调用外部二进制程序。
7、Idiorm:轻量级ORM库
它是一款轻量级的ORM库,一个建立在PDO之上的PHP5查询构造器。借助它,你可以忘记如何书写乏味的SQL:
Php代码
$user=ORM::for_table('user')
->where_equal('username','j4mie')
->find_one();
$user->first_name='Jamie';
$user->save();
$tweets=ORM::for_table('tweet')
->select('tweet.*')
->join('user',array(
'user.id','=','tweet.user_id'
))
->where_equal('user.username','j4mie')
->find_many();
foreach($tweetsas$tweet){
echo$tweet->text;
}
Idiorm有一个姊妹库叫Paris,Paris是一个基于Idiorm的ActiveRecord实现。
8、Underscore:PHP的工具腰带
Underscore是原始Underscore.js的一个接口–Javascript应用的工具腰带。PHP版本没有让人失望,而且支持了几乎所有原生功能。下面是一些例子:
Php代码
__::each(array(1,2,3),function($num){echo$num.',';});//1,2,3,
$multiplier=2;
__::each(array(1,2,3),function($num,$index)use($multiplier){
echo$index.'='.($num*$multiplier).',';
});
//prints:0=2,1=4,2=6,
__::reduce(array(1,2,3),function($memo,$num){return$memo+$num;},0);//6
__::find(array(1,2,3,4),function($num){return$num%2===0;});//2
__::filter(array(1,2,3,4),function($num){return$num%2===0;});//array(2,4)
这个库也支持链式语法,这使得它更为强大。
9、Requests:简单HTTP请求
Requests是一个简化HTTP请求的库:
Php代码
$headers=array('Accept'=>'application/json');
$options=array('auth'=>array('user','pass'));
$request=Requests::get('https://api.github.com/gists',$headers,$options);
var_dump($request->status_code);
//int(200)
var_dump($request->headers['content-type']);
//string(31)"application/json;charset=utf-8"
var_dump($request->body);
//string(26891)"[…]"
借助这个库,你可以发送HEAD、GET、POST、PUT、DELTE和PATCHHTTP请求,你可以通过数组添加文件和参数,并且可以访问所有相应数据。
10、Buzz:简单的HTTP请求库
Buzz是另一个完成HTTP请求的库。下面是一个例子:
Php代码
$request=newBuzz\Message\Request('HEAD','/','http://google.com');
$response=newBuzz\Message\Response();
$client=newBuzz\Client\FileGetContents();
$client->send($request,$response);
echo$request;
echo$response;
因为它缺乏文档,所以你不得不阅读源码来获知它支持的所有参数。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
求助 Linux系统用GoAhead作WebServer
三重差分双绞线对驱动器EL4543
为满足英伟达需求,三星、SK海力士被曝抢在测试完成前量产HBM4
时钟域交叉与同步器(第一部分):亚稳态建模
Alphabet旗下Waymo拟募资160亿美元,估值达1100亿美元
驱动器_比较器 MAX9967
模拟电子技术 第二十二讲
电风扇多功能控制电路(AX5206)
AMD在CES 2026发布新款锐龙处理器、Ryzen AI及AMD ROCm
电风扇风速程控器
各位大虾HAPPY NEW YEAR!发现一个新网站,大家快来看看!
删除注释的软件
屏幕录像专家软件
电风扇睡眠风控电路
存储价格现波动 全球存储厂商2月迎接新挑战
模拟电子技术 第二十讲
恩智浦研发新技术,抵御软件定义汽车面临的网络攻击
通过系统级仿真建模提升电动车动力系统性能
模拟电子技术 第二十四讲
电风扇程控电路(KDF1)
AI,白银和存储,同日三重暴跌左右全球经济未来
各位大虾HAPPY NEW YEAR!发现一个新网站,大家快来看看!
模拟电子技术 第二十一讲
小弟出来贵宝地,请各位大哥多多关照,谢谢
六缓冲器CD4010C
[求助]编写44b0x上的LCD实验程序,有没有什么特别注意的地方?已经郁闷了个把月了。
晶圆制造+设计IP 晶圆代工模式再度转型
设计使用开源工具的芯片:Silicluster 的发展
电风扇多功能控制器(一)
模拟电子技术 第二十三讲