getProvider(); switch ($provider) { case 'kdniao': return new KdniaoExpressProvider(); case 'expressbird': return new ExpressBirdProvider(); case 'aliyun': default: return new AliyunExpressProvider(); } } public static function query($waybillNo, $phone = '', $expressCode = '', $provider = null) { /** @var ProviderInterface $instance */ $instance = self::resolve($provider); return $instance->query($waybillNo, $phone, $expressCode); } }