我有一组用于数据存储的类。它目前有一个用于 Google Drive、Dropbox、Box、FTP 和本地连接的工作连接器。我设计它是为了构建一个文件管理器,客户端可以在其中管理多个数据存储源。
我的问题来了。目前,我对该addConnection()
方法的实现如下:
// addConnection - adds a storage connection to the storage manager
public function addConnection($service, $credentials) {
if (!empty($service) && !empty($credentials)) {
if (in_array($service, [Connectors\Box, Connectors\Dropbox, Connectors\FTP, Connectors\GoogleDrive, Connectors\Local], true)) {
// rest goes here...
}
}
}
我将常量放在一个单独的命名空间中,如下所示:
namespace Services\Storage\Connectors {
const Box = "Box";
const Dropbox = "Dropbox";
const FTP = "FTP";
const GoogleDrive = "GoogleDrive";
const Local = "Local";
}
有没有办法让我为给定的命名空间获取所有定义的常量?这样,我可以构造一个函数来获取所有定义的常量并编写更优雅的东西,例如in_array($service, getConstants($this->getNamespace()), true)
.
你能给我一个提示吗?