Modular design

The DWS WP Framework has a modular design and thus consists of multiple so-called modules. Currently, there's 7 different modules that more-or-less build on top of each other. In relative order, they are:

  1. Bootstrapper Modulearrow-up-right -- validates that appropriate versions of PHP and WordPress are running or displays a user-friendly error if not.

  2. Helpers Modulearrow-up-right -- a collection of small, helpful, static snippets that can be reused across various projects.

  3. Foundations Modulearrow-up-right -- a collection of abstractions useful for building semantically-rich plugins; technically, simple plugins can already be built at this level.

  4. Utilities Modulearrow-up-right -- a collection of services for working with template files, value validation, admin notices, dependencies, hooks etc.

  5. Core Modulearrow-up-right -- an opinionated collection of abstractions for building plugins; relies on the abstractions defined by the Foundations Module and some services from the Utilities Module but its usage is optional.

  6. Settings Modulearrow-up-right -- provides a unified way for interacting with various settings APIs like ACFarrow-up-right, MetaBoxarrow-up-right, and WordPressarrow-up-right itself.

  7. WooCommerce Modulearrow-up-right -- a bridge between the DWS Framework and the WooCommerce API.

The reasoning is simple. If you're building a plugin that's meant to be an extension for WooCommercearrow-up-right, then you probably want to include the WooCommerce module. If not, why would you want that code in your plugin? Similarly, you might want a very simple plugin that doesn't require any settings, so no settings module either. And so on...

Last updated