【问题标题】:What is the recommended way to detect whether "suggested" packages are in fact installed via composer.phar?检测“建议”软件包是否实际上是通过 composer.phar 安装的推荐方法是什么?
【发布时间】:2012-09-26 18:45:24
【问题描述】:

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

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

有什么建议/建议吗?

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    PHP 为您提供class_exists() 就是为了这个目的。检查类是否已加载 - 默认情况下它将调用自动加载器,因此无需事先使用 try/catch 块对其进行实例化。

    如果您尝试通过您也可以使用extension_loaded()function_exists() 的方式测试扩展。

    【讨论】:

    • facepalm 我从来没有在没有 $autoload = false 的情况下使用过 class_exists,因为它总是在构建 autloaders 时......我只是假设异常会冒泡。谢谢:-)
    猜你喜欢
    • 2023-03-06
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多