You are here

public function Message::getText in Drupal 9

Same name and namespace in other branches
  1. 8 composer/Plugin/ProjectMessage/Message.php \Drupal\Composer\Plugin\ProjectMessage\Message::getText()

File

composer/Plugin/ProjectMessage/Message.php, line 48

Class

Message
Determine configuration.

Namespace

Drupal\Composer\Plugin\ProjectMessage

Code

public function getText() {
  if ($this->messageText) {
    return $this->messageText;
  }
  $package_config = $this->rootPackage
    ->getExtra();
  $file = $this->eventName . '-message.txt';
  if ($config_file = $package_config['drupal-core-project-message'][$this->eventName . '-file'] ?? FALSE) {
    $file = $config_file;
  }
  $message = $package_config['drupal-core-project-message'][$this->eventName . '-message'] ?? [];
  if ($message) {
    $this->messageText = $message;
  }
  else {
    $this->messageText = $this
      ->getMessageFromFile($file);
  }

  // Include structured support info from composer.json.
  if ($config_keys = $package_config['drupal-core-project-message']['include-keys'] ?? FALSE) {
    foreach ($config_keys as $config_key) {
      switch ($config_key) {
        case 'name':
          if ($homepage = $this->rootPackage
            ->getName()) {
            $this->messageText[] = '  * Name: ' . $homepage;
          }
          break;
        case 'description':
          if ($homepage = $this->rootPackage
            ->getDescription()) {
            $this->messageText[] = '  * Description: ' . $homepage;
          }
          break;
        case 'homepage':
          if ($homepage = $this->rootPackage
            ->getHomepage()) {
            $this->messageText[] = '  * Homepage: ' . $homepage;
          }
          break;
        case 'support':
          if ($support = $this->rootPackage
            ->getSupport()) {
            $this->messageText[] = '  * Support:';
            foreach ($support as $support_key => $support_value) {
              $this->messageText[] = '    * ' . $support_key . ': ' . $support_value;
            }
          }
          break;
      }
    }
  }
  return $this->messageText;
}