/** * @param string $name * @param ProviderInterface $provider * @param null|FeatureInterface $default * @return null|FeatureInterface */ public function getFeatureFromProvider($name, ProviderInterface $provider, FeatureInterface $default = null) { if ($default === null) { $default = new NullFeature($name, null, $provider); } return $this->getFeatureFromProviderName($name, $provider->getName(), $default); }
/** * Validates that the response from the provider is a set of features * * @param FeatureInterface[]|mixed $features Could be mixed type, validating. Don't type hint this parameter. * @param \Pheat\Provider\ProviderInterface $provider * @return FeatureInterface[] */ protected function validateFeatureArray($features, ProviderInterface $provider) { if (!is_array($features)) { $this->logger->error('Feature provider {provider} did not provide an array of features', ['provider' => $provider->getName()]); return []; } return $features; }