config_packager-8.x-1.x-dev/src/ConfigPackagerGeneratorInterface.php

src/ConfigPackagerGeneratorInterface.php
<?php

/**
 * @file
 * Contains \Drupal\config_packager\ConfigPackagerGeneratorInterface
 */

namespace Drupal\config_packager;

use Drupal\Core\Form\FormStateInterface;

/**
 * Common interface for configuration packager generation services.
 *
 * The configuration packaging API is based on two major concepts:
 * - Packages: modules into which configuration is packaged.
 * - Package generation methods: responsible for `determining
 *   which package to assign a given piece of configuration to.
 * Generation methods are customizable.
 *
 * Configuration Packager defines several package generation methods, which are
 * simple plugin classes that implement a particular logic to assign pieces of
 * configuration to a given package (module).
 *
 * Modules can define additional package generation methods by simply providing
 * the related plugins, and alter existing methods through
 * hook_config_packager_generation_method_info_alter(). Here is an example
 * snippet:
 * @code
 * function mymodule_config_packager_generation_method_info_alter(&$generation_info) {
 *   // Replace the original plugin with our own implementation.
 *   $method_id = \Drupal\config_packager\Plugin\ConfigPackagerGeneration\PackageGenerationArchive::METHOD_ID;
 *   $generation_info[$method_id]['class'] = 'Drupal\my_module\Plugin\ConfigPackagerGeneration\MyPackageGenerationArchive';
 * }
 *
 * class MyPackageGenerationArchive extends PackageGenerationArchive {
 *   public function assignPackages() {
 *     // Insert customization here.
 *   }
 * }
 * ?>
 * @endcode
 *
 * For more information, see
 * @link http://drupal.org/node/2404473 Developing for Configuration Packager @endlink
 */
interface ConfigPackagerGeneratorInterface {

  /**
   * The package generation method id for the package generator itself.
   */
  const METHOD_ID = 'generator-default';

  /**
   * Resets the assigned packages and the method instances.
   */
  public function reset();

  /**
   * Apply a given package generation method.
   *
   *
   * @param string $method_id
   *   The string identifier of the package generation method to use to package
   *   configuration.
   * @param boolean $add_profile
   *   Whether to add an install profile. Defaults to FALSE.
   * @param array $packages
   *   Array of package data.
   *
   * @return array
   *   Array of results for profile and/or packages, each result including the
   *   following keys:
   *   - 'success': boolean TRUE or FALSE for successful writing.
   *   - 'display': boolean TRUE if the message should be displayed to the
   *     user, otherwise FALSE.
   *   - 'message': a message about the result of the operation.
   *   - 'variables': an array of substitutions to be used in the message.
   */
  public function applyGenerationMethod($method_id, $add_profile = FALSE, array $packages = array());

  /**
   * Responds to the submission of
   * \Drupal\config_packager\Form\ConfigPackagerExportForm.
   */
  public function applyExportFormSubmit($method_id, &$form, FormStateInterface $form_state);

  /**
   * Returns the enabled package generation methods.
   *
   * @return array
   *   An array of package generation method definitions keyed by method id.
   */
  public function getGenerationMethods();

  /**
   * Generates file representations of configuration packages.
   *
   * @param string $method_id
   *   The ID of the generation method to use.
   * @param array $package_names
   *   Array of names of packages to be generated. If none are specified, all
   *   available packages will be added.
   * @param boolean $short_names
   *   Boolean TRUE is any package names given in the $package_names argument
   *   are in the short machine name format, FALSE if they are not.
   */
  public function generatePackages($method_id, array $package_names = array(), $short_names = TRUE);

  /**
   * Generates file representations of an install profile and configuration
   * packages.
   *
   * @param string $method_id
   *   The ID of the generation method to use.
   * @param array $package_names
   *   Array of names of packages to be generated. If none are specified, all
   *   available packages will be added.
   * @param boolean $short_names
   *   Boolean TRUE is any package names given in the $package_names argument
   *   are in the short machine name format, FALSE if they are not.
   */
  public function generateProfile($method_id, array $package_names = array(), $short_names = FALSE);

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc