我已经创建了我的第一个 Composer 包,它具有 MySQL 和 MongoDB 的功能,但是,它不需要两者兼而有之。我意识到有人可能只想将该包与两个数据库之一一起使用,目前我有:
"require": {
"mongodb/mongodb": "^1.2",
}
Run Code Online (Sandbox Code Playgroud)
我想弄清楚,有没有办法使包成为可选的,如果存在,可以自动加载某些文件?或者我最好在代码中做一些事情,例如:
if (class_exists('PDO')) {
// Load MySQL code
}
if (class_exists('MongoClient')) {
// Load MongoDB code
}
Run Code Online (Sandbox Code Playgroud)
还有其他我想不到的解决方案吗?
“可选”包将自身表现为“建议” 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"
}
Run Code Online (Sandbox Code Playgroud)
由于这些是可选的,仅仅是建议,因此您的代码需要注意将可选路径包装在适当的条件中。这可能是对 PDO 类的测试、对所需类型的连接对象的测试等。
| 归档时间: |
|
| 查看次数: |
1440 次 |
| 最近记录: |