Question

I've created an installation profile for Drupal 8, which creates content types, taxonomies, blocks and stuff I need for new projects via yml files. Now I also want to create some default nodes.

I could use hook_install() or the module "default content" to create some nodes, but I'd like to know, if there is a better way for it.

Since we can create content types, taxonomies, blocks, etc. with yml files, I was wondering if it is possible to also create nodes with it.

So my questions are:

  • Is there a way to create nodes via yml files?
  • What would be the best practice for it?
Was it helpful?

Solution

That's exactly what the Default content module was built for:

Default content gives your module and install profile a way to ship default content as well as configuration.

I'm not sure it supports YAML, but definitely JSON and others, so it's basically the same thing.

The docs can be found here.

OTHER TIPS

I think this info's correct:

  1. YAML Encoder with Content Serialization: uses Drupal/Symfony serialization framework
  2. YAML Content: doesn't use serialization framework, doesn't support export
  3. Demo Content: doesn't use serialization framework, doesn't support export

Regarding best practice it might be worth pointing out that after doing a core or contrib update, my understanding is you should update all exported entities, both config and content.

Licensed under: CC-BY-SA with attribution
Not affiliated with drupal.stackexchange
scroll top