Simplifying development with built-in modules
As we discussed in the previous section, the quality of a framework depends on its core modules. The more quality you have in the core, the better it will be for developing quality and maintainable applications. It's surprising to see the availability of a number of WordPress modules directly related to web development, even though it was meant to create websites.
Let's get a brief introduction about the WordPress core modules to see how they fit into web application development:
- User module: The built-in user management module is quite advanced, catering to the most common requirements of any web application. Its user roles and capability handling makes it much easier to control the access to specific areas of your application. Most full stack frameworks don't have a built-in user module and hence this can be considered as an advantage of using WordPress.
- File management: File uploading and managing is a common and time-consuming task in web applications. Media Uploader, which comes built-in with WordPress, can be effectively used to automate the file-related tasks without writing much source code. This super-simple interface makes it so easy for application users to handle file-related tasks.
- Template management: WordPress offers a simple template management system for its themes. It is not as complex or fully featured as a typical templating engine, but it does offer a wide range of capabilities from the CMS development perspective, which we can extend to suit web applications.
- Database management: In most scenarios, we will be using the existing database table structure for our application development. WordPress database management functionalities offer a quick and easy way of working with existing tables with their own style of functions. Unlike other frameworks, WordPress provides a built-in database structure and hence most of the functionalities can be used to directly work with these tables without writing custom SQL queries.
- Routing: Comprehensive support for routing is provided through plugins. WordPress makes it simple to change the existing routing and choose your own routing, in order to build search engine friendly URLs.
- XMR-RPC API: Building an API is essential for allowing third-party access to our application. WordPress provides a built-in API for accessing CMS-related functionality through its XML-RPC interface. Also developers are allowed to create custom API functions through plugins, making it highly flexible for complex applications.
- Caching: Caching in WordPress can be categorized into two sections; persistent and nonpersistent cache. Nonpersistent caching is provided by the WordPress cache object, while persistent caching is provided through its transient API. Caching techniques in WordPress is a simple comrade to other frameworks, but it's powerful enough to cater for complex web applications.
- Scheduling: As developers, you might have worked with cron jobs for executing certain tasks at specified intervals. WordPress offers the same scheduling functionality through built-in functions, similar to a cron job. Typically, it's used for scheduling future posts. But it can be extended to cater to complex scheduling functionality.
- Plugins and widgets: The power of WordPress comes with its plugin mechanism, which allows us to dynamically add or remove functionality without interrupting other parts of the application. Widgets can be considered as a part of the plugin architecture and will be discussed in detail in the remainder of this chapter.
An overall collection of modules and features provided by WordPress can be effectively used to match the core functionalities provided by full stack PHP frameworks.