我已经创建了我的第一个作曲家软件包,该软件包具有MySQL和MongoDB的功能,但是,这两者都不需要。我意识到某人可能只想将包装与两个数据库之一一起使用,目前我有:
"require": {
"mongodb/mongodb": "^1.2",
}
我试图弄清楚,有没有办法使软件包可选,如果存在,则可以自动加载某些文件?或者我最好在我的代码中做一些事情:
if (class_exists('PDO')) {
// Load MySQL code
}
if (class_exists('MongoClient')) {
// Load MongoDB code
}
有其他我想不出的解决方案吗?
"可选"软件包在 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类的测试,对所需类型的连接对象的测试等。