PHP Composer:为Laravel(或其他框架)选择合适的包


PHP Composer: choosing the right package for Laravel (or other framework)

这可能看起来是一个微不足道的问题,但它不是。

作为composer的新手,我发现自己很想知道如何在它的主要repo打包器上为一个常见的功能选择一个合适的包。

说我正在使用Laravel 4最近的一个项目,并希望添加mongodb支持文档存储和索引。在packagist上简单搜索mongodb会得到8页结果,搜索mongodb laravel会得到24页结果。

但是这里有我的问题:大多数包都有它们的目标框架,我应该选择那些不太受欢迎但为Laravel设计的,还是我应该使用流行的包,希望将来能够维护?

我的假设是:composer,以及PHP-FIG标准,正试图减少跨框架的共同特性的重复开发。因此,最终可能只有少数流行的软件包能够用于某些常见的任务。

但是现在,如何在packagist上为框架X选择正确的包?我们应该在github上搜索吗?

(我应该注意到Laravel已经在核心中使用了一些Symfony/doctrine包,但是不能保证doctrine/mongodb也可以在Laravel中工作而不进行修改,对吗?)

当我在Packagist上搜索时,我尽量避免依赖于Laravel或Symphony以外的框架的包。当然,没有框架依赖关系是可以的。

当L4还在alpha时,我想玩一下图像处理。经过一番调查,我选择了sybio/image-workshop。当时,还没有软件包可以完美地与Laravel接口。在创建了服务提供者和facade之后,一切都很好。

在packagist.org上,尝试搜索"mongodb AND laravel",不加引号。在本例中,这将搜索范围缩小到一个页面。

Chris Fidao (@fideloper)在5月2日发布了关于以下MongoDB的Laravel包。它看起来很有趣,因为它使用了Eloquent。

https://github.com/jenssegers/Laravel-MongoDB

有关laravel框架的特定包,请查看packalyst。Packalyst是一个用于Laravel项目的包目录,它从Packagist中提取带有"Laravel"标签的包名(在composer.json中的关键字数组中有"Laravel"的composer包)。