composerize-drupal: Unable to geenrate composer file
Hei,
When I run the command, I simply get the error below and it deletes my core and some other files in my docroot:
PHP Fatal error: Class 'Symfony\Component\Yaml\Yaml' not found in /Users/.../.composer/vendor/grasmash/composerize-drupal/src/Utility/DrupalInspector.php on line 28
Fatal error: Class 'Symfony\Component\Yaml\Yaml' not found in /Users/.../.composer/vendor/grasmash/composerize-drupal/src/Utility/DrupalInspector.php on line 28
I have tried setting symfony/yaml as required and re-updating the composerize project to no avail.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 21
Is there a way to change the title of this issue to include “due to unresloved YAML dependency” (and to correct the spelling of “generate”)?
Here it is with the stack trace, if that helps:
I was having the same issue, what helped me was to run the command outside the repository root. The reason for this is that I had symfony/yaml installed in my site and it was using this instead of the global one, and it was an old version that didn’t have the
Yaml::parseFile()method.I was not able to solve this. I did work around it though. It’s ugly but it works:
Go to
/home/cap/.composer/vendor/grasmash/composerize-drupal/src/Composerand addat the top after
public function execute(InputInterface $input, OutputInterface $output) {replacing /home/cap with your global composer directory.I was getting the same message. I think it fails on the very last step of the process - which is updating Drupal core.
I found this still works if you ignore the symfony error message and proceed as follows:
Delete your existing vendor directory,
composer update drupal/core --with-dependenciescomposer require drupal/coreThis did the update to Drupal 8.5.1Then run drush updb to update the database.
This also doesn’t add your modules into your composer.json file - you’ll need to run composer require statements for them if you want them tracked. IE:
composer require drupal/module_name