Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/html1/bbp/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/html1/bbp/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Soap.php

<?php

namespace Drupal\migrate_plus\Plugin\migrate_plus\data_parser;

use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\migrate\Exception\RequirementsException;
use Drupal\migrate\MigrateException;
use Drupal\migrate_plus\DataParserPluginBase;

/**
 * Obtain SOAP data for migration.
 *
 * @DataParser(
 *   id = "soap",
 *   title = @Translation("SOAP")
 * )
 */
class Soap extends DataParserPluginBase implements ContainerFactoryPluginInterface {

  /**
   * Iterator over the SOAP data.
   *
   * @var \Iterator
   */
  protected $iterator;

  /**
   * Method to call on the SOAP service.
   *
   * @var string
   */
  protected $function;

  /**
   * Parameters to pass to the SOAP service function.
   *
   * @var array
   */
  protected $parameters;

  /**
   * Form of the function response - 'xml', 'object', or 'array'.
   *
   * @var string
   */
  protected $responseType;

  /**
   * {@inheritdoc}
   *
   * @throws \Drupal\migrate\Exception\RequirementsException
   *   If PHP SOAP extension is not installed.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    if (!class_exists('\SoapClient')) {
      throw new RequirementsException('The PHP SOAP extension is not installed');
    }
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->function = $configuration['function'];
    $this->parameters = $configuration['parameters'];
    $this->responseType = $configuration['response_type'];
  }

  /**
   * {@inheritdoc}
   *
   * @throws \SoapFault
   *   If there's an error in a SOAP call.
   * @throws \Drupal\migrate\MigrateException
   *   If we can't resolve the SOAP function or its response property.
   */
  protected function openSourceUrl($url) {
    // Will throw SoapFault if there's an error in a SOAP call.
    $client = new \SoapClient($url);
    // Determine the response property name.
    $function_found = FALSE;
    foreach ($client->__getFunctions() as $function_signature) {
      // E.g., "GetWeatherResponse GetWeather(GetWeather $parameters)".
      $response_type = strtok($function_signature, ' ');
      $function_name = strtok('(');
      if (strcasecmp($function_name, $this->function) === 0) {
        $function_found = TRUE;
        foreach ($client->__getTypes() as $type_info) {
          // E.g., "struct GetWeatherResponse {\n string GetWeatherResult;\n}".
          if (preg_match('|struct (.*?) {\s*[a-z]+ (.*?);|is', $type_info, $matches)) {
            if ($matches[1] == $response_type) {
              $response_property = $matches[2];
            }
          }
        }
        break;
      }
    }
    if (!$function_found) {
      throw new MigrateException("SOAP function {$this->function} not found.");
    }
    elseif (!isset($response_property)) {
      throw new MigrateException("Response property not found for SOAP function {$this->function}.");
    }
    $response = $client->{$this->function}($this->parameters);
    $response_value = $response->$response_property;
    switch ($this->responseType) {
      case 'xml':
        $xml = simplexml_load_string($response_value);
        $this->iterator = new \ArrayIterator($xml->xpath($this->itemSelector));
        break;

      case 'object':
        $this->iterator = new \ArrayIterator($response_value->{$this->itemSelector});
        break;

      case 'array':
        $this->iterator = new \ArrayIterator($response_value[$this->itemSelector]);
        break;

    }
    return TRUE;
  }

  /**
   * {@inheritdoc}
   */
  protected function fetchNextRow() {
    $current = $this->iterator->current();
    if ($current) {
      foreach ($this->fieldSelectors() as $field_name => $selector) {
        $this->currentItem[$field_name] = $current->$selector;
      }
      $this->iterator->next();
    }
  }

}

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net