Recently I have been learning PHP and Drupal for work and it has been quite a change from what I have been used to. Its taken a little bit to get used to. Drupal is not a MVC framework, it is a PAC framework.
The bad parts:
- No Foreign keys in core tables, although efforts are being made to allow for foreign keys in contrib modules.
- No way to duplicate a project without having a database dump, although efforts are being made to recreate a project purely from config files.
- Strange mixture of .include, .module and .yml files.
- The package manager installs packages into the project instead of a vendor folder, after which the contrib packages needed to be enabled via the admin.
The good parts:
- 1st order support for external Entities. The data storage source no longer needs to be some kind of database. Instead we can create entities that pull data from JSON blobs that comes from external sites.
- Serialisation + Rest Resources