Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
enzolutions committed Apr 23, 2019
2 parents dd50f22 + f463c75 commit 741e0ee
Show file tree
Hide file tree
Showing 145 changed files with 4,098 additions and 1,200 deletions.
7 changes: 3 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,20 @@
},
"require": {
"php": "^5.5.9 || ^7.0",
"alchemy/zippy": "0.4.3",
"alchemy/zippy": "^0.4.3",
"composer/installers": "~1.0",
"doctrine/annotations": "^1.2",
"doctrine/collections": "^1.3",
"drupal/console-core": "1.8.0",
"drupal/console-extend-plugin": "~0",
"guzzlehttp/guzzle": "~6.1",
"psy/psysh": "0.6.* || ~0.8",
"symfony/css-selector": "~2.8|~3.0",
"symfony/dom-crawler": "~2.8|~3.0",
"symfony/http-foundation": "~2.8|~3.0"
},
"suggest": {
"symfony/thanks": "Thank your favorite PHP projects on Github using the CLI!",
"vlucas/phpdotenv": "Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically."
"symfony/thanks": "Thank your favorite PHP projects on GitHub using the CLI",
"vlucas/phpdotenv": "Loads environment variables from .env to getenv(), $_ENV and $_SERVER automagically"
},
"bin": ["bin/drupal"],
"config": {
Expand Down
7 changes: 6 additions & 1 deletion config/services/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,14 @@ services:
- { name: drupal.command }
console.config_export_content_type:
class: Drupal\Console\Command\Config\ExportContentTypeCommand
arguments: ['@entity_type.manager', '@config.storage', '@console.extension_manager', '@console.validator']
arguments: ['@console.extension_manager', '@entity_type.manager', '@console.validator', '@console.chain_queue']
tags:
- { name: drupal.command }
console.config_export_entity:
class: Drupal\Console\Command\Config\ExportEntityCommand
arguments: ['@entity_type.manager', '@config.storage', '@console.extension_manager', '@console.validator', '@entity_type.repository']
tags:
- { name: drupal.command }
console.config_export_single:
class: Drupal\Console\Command\Config\ExportSingleCommand
arguments: ['@entity_type.manager', '@config.storage', '@console.extension_manager','@language_manager', '@console.validator']
Expand Down
1 change: 0 additions & 1 deletion config/services/database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ services:
- { name: drupal.command }
console.database_drop:
class: Drupal\Console\Command\Database\DropCommand
arguments: ['@database']
tags:
- { name: drupal.command }
console.database_dump:
Expand Down
5 changes: 5 additions & 0 deletions config/services/debug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,3 +147,8 @@ services:
arguments: ['@console.drupal_api']
tags:
- { name: drupal.command }
console.hook_debug:
class: Drupal\Console\Command\Debug\HookCommand
arguments: ['@console.extension_manager', '@module_handler']
tags:
- { name: drupal.command }
30 changes: 29 additions & 1 deletion config/services/generate.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
services:
console.generate_module:
class: Drupal\Console\Command\Generate\ModuleCommand
arguments: ['@console.module_generator', '@console.validator', '@app.root', '@console.string_converter', '@console.drupal_api']
arguments: ['@console.module_generator', '@console.validator', '@app.root', '@console.string_converter', '@console.drupal_api', '@console.chain_queue']
tags:
- { name: drupal.command }
console.generate_modulefile:
Expand Down Expand Up @@ -114,6 +114,11 @@ services:
arguments: [ '@console.plugin_migrate_process_generator', '@console.chain_queue', '@console.extension_manager', '@console.string_converter', '@console.validator']
tags:
- { name: drupal.command }
console.generate_plugin_migrate_data_parser:
class: Drupal\Console\Command\Generate\PluginMigrateDataParserCommand
arguments: [ '@console.plugin_migrate_data_parser_generator', '@console.chain_queue', '@console.extension_manager', '@console.string_converter', '@console.validator']
tags:
- { name: drupal.command }
console.generate_plugin_rest_resource:
class: Drupal\Console\Command\Generate\PluginRestResourceCommand
arguments: ['@console.extension_manager', '@console.plugin_rest_resource_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
Expand All @@ -124,6 +129,14 @@ services:
arguments: ['@console.extension_manager', '@console.plugin_rules_action_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
tags:
- { name: drupal.command }
console.generate_plugin_rules_condition:
class: Drupal\Console\Command\Generate\PluginRulesConditionCommand
arguments: ['@console.extension_manager', '@console.plugin_rules_condition_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
console.generate_plugin_rules_dataprocessor:
class: Drupal\Console\Command\Generate\PluginRulesDataprocessorCommand
arguments: ['@console.extension_manager', '@console.plugin_rules_dataprocessor_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
tags:
- { name: drupal.command }
console.generate_plugin_skeleton:
class: Drupal\Console\Command\Generate\PluginSkeletonCommand
arguments: ['@console.extension_manager', '@console.plugin_skeleton_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
Expand All @@ -139,6 +152,11 @@ services:
arguments: ['@console.extension_manager', '@console.plugin_views_field_generator', '@console.site','@console.string_converter', '@console.validator', '@console.chain_queue']
tags:
- { name: drupal.command }
console.generate_plugin_queue:
class: Drupal\Console\Command\Generate\PluginQueueWorkerCommand
arguments: ['@console.plugin_queue_generator','@console.validator','@console.string_converter','@console.chain_queue']
tags:
- { name: drupal.command }
console.generate_post_update:
class: Drupal\Console\Command\Generate\PostUpdateCommand
arguments: ['@console.extension_manager', '@console.post_update_generator', '@console.site', '@console.validator','@console.chain_queue']
Expand Down Expand Up @@ -214,3 +232,13 @@ services:
arguments: ['@console.extension_manager', '@console.js_test_generator', '@console.validator']
tags:
- { name: drupal.command }
console.generate_composer:
class: Drupal\Console\Command\Generate\ComposerCommand
arguments: ['@console.composer_generator', '@console.extension_manager', '@console.validator']
tags:
- { name: drupal.command }
console.generate_plugin_validation_constraint:
class: Drupal\Console\Command\Generate\PluginValidationConstraintCommand
arguments: ['@console.extension_manager', '@console.validation_constraint_generator','@console.string_converter', '@console.validator', '@console.chain_queue']
tags:
- { name: drupal.command }
30 changes: 30 additions & 0 deletions config/services/generator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ services:
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_migrate_data_parser_generator:
class: Drupal\Console\Generator\PluginMigrateDataParserGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_rest_resource_generator:
class: Drupal\Console\Generator\PluginRestResourceGenerator
arguments: ['@console.extension_manager']
Expand All @@ -121,6 +126,16 @@ services:
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_rules_condition_generator:
class: Drupal\Console\Generator\PluginRulesConditionGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_rules_dataprocessor_generator:
class: Drupal\Console\Generator\PluginRulesDataprocessorGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_skeleton_generator:
class: Drupal\Console\Generator\PluginSkeletonGenerator
arguments: ['@console.extension_manager']
Expand All @@ -141,6 +156,11 @@ services:
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.plugin_queue_generator:
class: Drupal\Console\Generator\PluginQueueWorkerGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.route_subscriber_generator:
class: Drupal\Console\Generator\RouteSubscriberGenerator
arguments: ['@console.extension_manager']
Expand Down Expand Up @@ -211,3 +231,13 @@ services:
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.composer_generator:
class: Drupal\Console\Generator\ComposerGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
console.validation_constraint_generator:
class: Drupal\Console\Generator\PluginValidationConstraintGenerator
arguments: ['@console.extension_manager']
tags:
- { name: drupal.generator }
6 changes: 4 additions & 2 deletions src/Command/Config/ExportCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ protected function execute(InputInterface $input, OutputInterface $output)
}

// Remove previous yaml files before creating new ones
array_map('unlink', glob($directory . '/*'));
foreach (glob($directory . '/*') as $item) {
$fileSystem->remove($item);
}

if ($tar) {
$dateTime = new \DateTime();
Expand Down Expand Up @@ -143,7 +145,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
$collection_storage = $this->storage->createCollection($collection);
$collection_path = str_replace('.', '/', $collection);
if (!$tar) {
mkdir("$directory/$collection_path", 0755, true);
$fileSystem->mkdir("$directory/$collection_path", 0755);
}
foreach ($collection_storage->listAll() as $name) {
$configName = "$collection_path/$name.yml";
Expand Down
128 changes: 28 additions & 100 deletions src/Command/Config/ExportContentTypeCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,62 +9,56 @@

use Drupal\Console\Command\Shared\ModuleTrait;
use Drupal\Console\Utils\Validator;
use Symfony\Component\Console\Exception\InvalidOptionException;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Drupal\Console\Core\Command\Command;
use Drupal\Core\Config\CachedStorage;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Console\Command\Shared\ExportTrait;
use Drupal\Console\Core\Utils\ChainQueue;
use Drupal\Console\Extension\Manager;

class ExportContentTypeCommand extends Command
{
use ModuleTrait;
use ExportTrait;

/**
* @var EntityTypeManagerInterface
* @var Manager
*/
protected $entityTypeManager;
protected $extensionManager;

/**
* @var CachedStorage
* @var EntityTypeManagerInterface
*/
protected $configStorage;
protected $entityTypeManager;

/**
* @var Manager
* @var Validator
*/
protected $extensionManager;

protected $configExport;
protected $validator;

/**
* @var Validator
* @var ChainQueue
*/
protected $validator;
protected $chainQueue;

/**
* ExportContentTypeCommand constructor.
*
* @param EntityTypeManagerInterface $entityTypeManager
* @param CachedStorage $configStorage
* @param Manager $extensionManager
* @param Validator $validator
* @param Validator $validator
* @param ChainQueue $chainQueue
*/
public function __construct(
EntityTypeManagerInterface $entityTypeManager,
CachedStorage $configStorage,
Manager $extensionManager,
Validator $validator
EntityTypeManagerInterface $entityTypeManager,
Validator $validator,
ChainQueue $chainQueue
) {
$this->entityTypeManager = $entityTypeManager;
$this->configStorage = $configStorage;
$this->extensionManager = $extensionManager;
$this->entityTypeManager = $entityTypeManager;
$this->validator = $validator;
$this->chainQueue = $chainQueue;
parent::__construct();
}

Expand All @@ -84,7 +78,7 @@ protected function configure()
)->addOption(
'optional-config',
null,
InputOption::VALUE_OPTIONAL,
InputOption::VALUE_NONE,
$this->trans('commands.config.export.content.type.options.optional-config')
)->addOption(
'remove-uuid',
Expand Down Expand Up @@ -114,7 +108,6 @@ protected function interact(InputInterface $input, OutputInterface $output)
$contentType = $input->getArgument('content-type');
if (!$contentType) {
$bundles_entities = $this->entityTypeManager->getStorage('node_type')->loadMultiple();
$bundles = [];
foreach ($bundles_entities as $entity) {
$bundles[$entity->id()] = $entity->label();
}
Expand All @@ -135,7 +128,6 @@ protected function interact(InputInterface $input, OutputInterface $output)
}
$input->setOption('optional-config', $optionalConfig);


if (!$input->getOption('remove-uuid')) {
$removeUuid = $this->getIo()->confirm(
$this->trans('commands.config.export.content.type.questions.remove-uuid'),
Expand All @@ -157,85 +149,21 @@ protected function interact(InputInterface $input, OutputInterface $output)
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
$module = $input->getOption('module');
$module = $this->validateModule($input->getOption('module'));
$contentType = $input->getArgument('content-type');
$optionalConfig = $input->getOption('optional-config');
$removeUuid = $input->getOption('remove-uuid');
$removeHash = $input->getOption('remove-config-hash');

$contentTypeDefinition = $this->entityTypeManager->getDefinition('node_type');
$contentTypeName = $contentTypeDefinition->getConfigPrefix() . '.' . $contentType;

$contentTypeNameConfig = $this->getConfiguration($contentTypeName, $removeUuid, $removeHash);

if (empty($contentTypeNameConfig)) {
throw new InvalidOptionException(sprintf('The content type %s does not exist.', $contentType));
}

$this->configExport[$contentTypeName] = ['data' => $contentTypeNameConfig, 'optional' => $optionalConfig];

$this->getFields($contentType, $optionalConfig, $removeUuid, $removeHash);

$this->getFormDisplays($contentType, $optionalConfig, $removeUuid, $removeHash);

$this->getViewDisplays($contentType, $optionalConfig, $removeUuid, $removeHash);

$this->exportConfigToModule($module, $this->trans('commands.config.export.content.type.messages.content-type-exported'));
}

protected function getFields($contentType, $optional = false, $removeUuid = false, $removeHash = false)
{
$fields_definition = $this->entityTypeManager->getDefinition('field_config');

$fields_storage = $this->entityTypeManager->getStorage('field_config');
foreach ($fields_storage->loadMultiple() as $field) {
$field_name = $fields_definition->getConfigPrefix() . '.' . $field->id();
$field_name_config = $this->getConfiguration($field_name, $removeUuid, $removeHash);

// Only select fields related with content type
if ($field_name_config['bundle'] == $contentType) {
$this->configExport[$field_name] = ['data' => $field_name_config, 'optional' => $optional];
// Include dependencies in export files
if ($dependencies = $this->fetchDependencies($field_name_config, 'config')) {
$this->resolveDependencies($dependencies, $optional);
}
}
}
}

protected function getFormDisplays($contentType, $optional = false, $removeUuid = false, $removeHash = false)
{
$form_display_definition = $this->entityTypeManager->getDefinition('entity_form_display');
$form_display_storage = $this->entityTypeManager->getStorage('entity_form_display');
foreach ($form_display_storage->loadMultiple() as $form_display) {
$form_display_name = $form_display_definition->getConfigPrefix() . '.' . $form_display->id();
$form_display_name_config = $this->getConfiguration($form_display_name, $removeUuid, $removeHash);
// Only select fields related with content type
if ($form_display_name_config['bundle'] == $contentType) {
$this->configExport[$form_display_name] = ['data' => $form_display_name_config, 'optional' => $optional];
// Include dependencies in export files
if ($dependencies = $this->fetchDependencies($form_display_name_config, 'config')) {
$this->resolveDependencies($dependencies, $optional);
}
}
}
}

protected function getViewDisplays($contentType, $optional = false, $removeUuid = false, $removeHash = false)
{
$view_display_definition = $this->entityTypeManager->getDefinition('entity_view_display');
$view_display_storage = $this->entityTypeManager->getStorage('entity_view_display');
foreach ($view_display_storage->loadMultiple() as $view_display) {
$view_display_name = $view_display_definition->getConfigPrefix() . '.' . $view_display->id();
$view_display_name_config = $this->getConfiguration($view_display_name, $removeUuid, $removeHash);
// Only select fields related with content type
if ($view_display_name_config['bundle'] == $contentType) {
$this->configExport[$view_display_name] = ['data' => $view_display_name_config, 'optional' => $optional];
// Include dependencies in export files
if ($dependencies = $this->fetchDependencies($view_display_name_config, 'config')) {
$this->resolveDependencies($dependencies, $optional);
}
}
}
$this->chainQueue->addCommand(
'config:export:entity', [
'entity-type' => 'node_type',
'bundle' => $contentType,
'--module' => $module,
'--optional-config' => $optionalConfig,
'--remove-uuid' => $removeUuid,
'--remove-config-hash' => $removeHash
]
);
}
}
Loading

0 comments on commit 741e0ee

Please sign in to comment.