3 ms·
This actually seems like a pretty bad use case for WordPress, TBH. To be fair to WordPress, you can set up custom tables and permissions to do this, but you wil
by kmeisthax 5y ago
This actually seems like a pretty bad use case for WordPress, TBH. To be fair to WordPress, you can set up custom tables and permissions to do this, but you will be writing a lot of code to render overviews, validate forms, and so on. A lot of WordPress's admin UI isn't reusable in a way that works for a CRUD app, or it's only reusable in one specific way (e.g. the default overview you get if you ask for it in your custom post type definition).
Slim and Laravel are both proper application frameworks specifically designed for your use case. That's why they properly document all of the CRUD use cases. However, they don't do CMS stuff at all.
If you absolutely need a working CRUD app to live inside of a CMS, then your best bet would actually be a Drupal module with a custom entity type. However, that requires you to actually know the ins and outs of Drupal's Entity and Field APIs, which are rather overengineered[0]. On the other hand, if you do manage to figure all that out, permissions are relatively easy to hook up, forms are just filling out an array, and you get Views support basically for free.
[0] In Drupal's defense, they're a CMS, so they need to support use cases like letting users define custom node types and custom fields on those types. This makes the interface for interacting with Entities way more complicated than an ordinary CRUD app needs.
- KronisLV 5y ago> This actually seems like a pretty bad use case for WordPress, TBH. To be fair to WordPress, you can set up custom tables and permissions to do this, but you will be writing a lot of code to render overviews, validate forms, and so on. This was also a sneaking suspicion of mine after diving into some plugins and seeing how they work, e.g. things that definitely aren't pages/posts beings stored in those tables in the database regardless, hinting that maybe the base functionality needs to be stretched out a bit for custom use cases.