+
+ /**
+ * @param array $extensions
+ * @param string $type
+ * @return array
+ */
+ public function checkExtensions(array $extensions, $type = 'module')
+ {
+ $checkextensions = [
+ 'local_extensions' => [],
+ 'drupal_extensions' => [],
+ 'no_extensions' => [],
+ ];
+
+ $local_extensions = $this->discoverExtension($type)
+ ->showInstalled()
+ ->showUninstalled()
+ ->showCore()
+ ->showNoCore()
+ ->getList(true);
+
+ foreach ($extensions as $extension) {
+ if (in_array($extension, $local_extensions)) {
+ $checkextensions['local_extensions'][] = $extension;
+ } else {
+ try {
+ $response = $this->httpClient->head('https://www.drupal.org/project/' . $extension);
+ $header_link = explode(';', $response->getHeader('link'));
+ if (empty($header_link[0])) {
+ $checkextensions['no_extensions'][] = $extension;
+ } else {
+ $checkextensions['drupal_extensions'][] = $extension;
+ }
+ } catch (ClientException $e) {
+ $checkextensions['no_extensions'][] = $extension;
+ }
+ }
+ }
+
+ return $checkextensions;
+ }