public function ComponentGenerateForm::writeNew in Module Builder 8.3
Submit callback to write only new module files.
File
- src/
Form/ ComponentGenerateForm.php, line 246
Class
- ComponentGenerateForm
- Form showing generated component code.
Namespace
Drupal\module_builder\FormCode
public function writeNew(array $form, FormStateInterface $form_state) {
$values = $form_state
->getValues();
$drupal_relative_module_dir = \Drupal::service('module_builder.module_file_writer')
->getRelativeModuleFolder($this->entity
->id());
\Drupal::service('file_system')
->prepareDirectory($path, FileSystemInterface::CREATE_DIRECTORY);
$count_written = 0;
foreach (array_keys($values['file_code']) as $module_relative_filepath) {
if (file_exists($drupal_relative_module_dir . '/' . $module_relative_filepath)) {
continue;
}
$file_contents = $form_state
->get([
'files',
$module_relative_filepath,
]);
$result = \Drupal::service('module_builder.module_file_writer')
->writeSingleFile($drupal_relative_module_dir, $module_relative_filepath, $file_contents);
if ($result) {
$count_written++;
}
else {
$this
->messenger()
->addError(t("Problem writing file @file", [
'@file' => $module_relative_filepath,
]));
}
}
if ($count_written) {
$this
->messenger()
->addStatus(t("Written @count files to folder @folder.", [
'@count' => $count_written,
'@folder' => $drupal_relative_module_dir,
]));
}
}