Php 建议采用什么方法来检测“是否”;建议的;软件包实际上是通过composer.phar安装的?

Php 建议采用什么方法来检测“是否”;建议的;软件包实际上是通过composer.phar安装的?,php,composer-php,Php,Composer Php,我目前正在构建一个小型控制台(symfony2.1)应用程序(处理语义版本号),如果gitlib可用,它可以选择性地分析给定的git存储库。理想情况下,我更喜欢composer提供的某种机制来检测lib是否可用(类似于提供的自动加载),但据我所知,我必须检查自己 我在解析composer.lock(看起来更干净)和尝试从库中实例化类(独立于composer,但滥用流控制的异常)之间左右为难。后者感觉特别糟糕,因为即使我根本不打算使用实例,我也必须这样做,以配置应用程序(特别是:决定是否在应用程序

我目前正在构建一个小型控制台(symfony2.1)应用程序(处理语义版本号),如果gitlib可用,它可以选择性地分析给定的git存储库。理想情况下,我更喜欢composer提供的某种机制来检测lib是否可用(类似于提供的自动加载),但据我所知,我必须检查自己

我在解析composer.lock(看起来更干净)和尝试从库中实例化类(独立于composer,但滥用流控制的异常)之间左右为难。后者感觉特别糟糕,因为即使我根本不打算使用实例,我也必须这样做,以配置应用程序(特别是:决定是否在应用程序中注册命令)


有什么建议吗?

PHP为您提供了
class\u exists()
用于此目的。检查类是否加载了它-默认情况下它将调用autoloader,因此不需要预先用try/catch块实例化它

如果您试图通过以下方式测试扩展,您也可以使用
extension\u loaded()
function\u exists()

facepalm我从未使用过class\u exists,但没有$autoload=false,因为在构建自动加载程序时总是这样。。。我只是假设例外情况会出现。谢谢:-)