PHP开发者应了解的24个库(1)
作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库。下面是我曾经遇到过最酷的24个库。你最喜欢的库没有在这个列表里面?那就在评论中分享吧!
1. Dispatch – 微框架
Dispatch是一个PHP小框架。它并没有给你完整的MVC设置,但你可以定义URL规则和方法,以便更好组织应用程序。这对API、简单的站点或原型来说是完美的。
- //包含库
- include 'dispatch.php';
- // 定义你的路由
- get('/greet', function () {
- //渲染视图
- render('greet-form');
- });
- //post处理
- post('/greet', function () {
- $name = from($_POST, 'name');
- // render a view while passing some locals
- render('greet-show', array('name' => $name));
- });
- // serve your site
- dispatch();
你可以匹配特定类型的HTTP请求和路径,渲染视图或做更多事情。如果你合并Dispatch和其他框架,那你就可以拥有一个相当强大并且轻量级的程序!
2. Klein – PHP快如闪电的路由
Klein是另一款针对PHP5.3+版本的轻量级路由库。虽然它有一些比Dispatch冗长的语法,但它相当快。这有一个例子:
- respond('/[:name]', function ($request) {
- echo 'Hello ' . $request->name;
- });
你也可以定制来指定HTTP方法和使用正则表达式作为路径。
- 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) {
- // do something
- }
- });
对于小型项目来说这是很棒的,但当你把一个像这样的库用于大型应用时,你不得不遵守规矩,因为你的代码可能很快就变得不可维护。所以你最好搭配一个像Laravel或者CodeIgniter这样完全成熟的框架。
3. Ham – 带缓存的路由库
Ham也是一款轻量级的路由框架,但是它利用缓存甚至获得了更快的速度。它通过把任何I/O相关的东西缓存进XCache/APC。下面是一个例子:
- require '../ham/ham.php';
- $app = new Ham('example');
- $app->config_from_file('settings.php');
- $app->route('/pork', function($app) {
- return "Delicious pork.";
- });
- $hello = function($app, $name='world') {
- return $app->render('hello.html', array(
- 'name' => $name
- ));
- };
- $app->route('/hello/<string>', $hello);
- $app->route('/', $hello);
- $app->run();
这个库要求你至少安装了XCache和APC其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。但是如果你拥有一个安装它们其一的主机,或者你可以操控你的web服务器,你应该尝试这款最快的框架。
4. Assetic – 资源管理
Assetic是一个PHP的资源管理框架,用于合并和减小了CSS/JS资源。下面是例子。
- use Assetic\Asset\AssetCollection;
- use Assetic\Asset\FileAsset;
- use Assetic\Asset\GlobAsset;
- $js = new AssetCollection(array(
- new GlobAsset('/path/to/js/*'),
- new FileAsset('/path/to/another.js'),
- ));
- //当资源被输出时,代码会被合并
- echo $js->dump();
以这种方式合并资源是一个好主意,因为它可以加速站点。不仅仅总下载量减小了,也消除了大量不必要的HTTP请求(这是最影响页面加载时间的两件事)
PHP之友评论