创建条件编写器要求

时间:2017-12-12 20:37:23

标签: php composer-php

我已经创建了我的第一个编写器包,它具有MySQL和MongoDB的功能,但是,它不需要两者。我意识到有人可能只想用两个数据库中的一个来使用这个包,目前我有:

"require": {
    "mongodb/mongodb": "^1.2",
}

我想弄清楚,有没有办法让软件包可选,如果存在,自动加载某些文件?或者我最好在我的代码中做一些事情,比如:

if (class_exists('PDO')) {
    // Load MySQL code
}
if (class_exists('MongoClient')) {
    // Load MongoDB code
}

还有其他我无法想到的解决方案吗?

1 个答案:

答案 0 :(得分:3)

"可选"包裹表现为"建议"在composer.json

"suggest": {
    "mongodb/mongodb":"Required to use this package with Mongo DB",
    "ext-pdo": "Required to use this package with MySQL",
    "ext-pdo_mysql": "Required to use this package with MySQL"
}

由于这些是可选的,仅仅是建议,因此您的代码需要注意在适当的条件中包装可选路径。这可能是对PDO类的测试,对所需类型的连接对象的测试等等。