データストレージ用のクラスのセットがあります。現在、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)
ます。
ヒントを教えてください。