Summary
We are closing this chapter after covering a lot of different topics that have to do with working with files in Drupal.
We started with a couple of introductory sections in which we outlined some general concepts, such as the various filesystems (storages) that Drupal uses, as well as how stream wrappers come into play for working with them. We also introduced the different ways to work with files: managed versus unmanaged.
Next, we dove into working with managed files and created an image field on our Product entity type so that we could import images into it. The other example of working with managed files had us create a new Product importer based on a CSV file of data, and we also saw how to upload, read, and process such a file, as well as manually track its usage. As a parenthesis, we introduced a very powerful feature of Drupal that allows us to hook into the entity CRUD operations and perform actions whenever these are fired. This is a majorly important technique...