DWS WP Framework
  • Welcome
  • Primary goals
    • Modular design
    • No 3rd-party dependencies
  • Key concepts and dev tools
    • PHP and WP requirements
    • Object-Oriented Programming
    • Semantic Versioning
    • Version Control (git / GitHub)
    • Dependency Management (Composer)
    • Automated Testing (Codeception + Github Actions)
    • Dependency Injection (PHP-DI)
    • Coding Standards (PHPCS and PHPMD)
    • Dependencies Scoping (PHP-Scoper)
    • TypeScript and Sass
    • Task Runners (Grunt)
  • Setting up your dev environment
    • Windows
  • Your first plugin
    • Multiple plugins using the framework on the same site
  • Frequently Asked Questions
  • Bootstrapper Module
    • Motivation
    • How it works
    • How to use
    • White Labeling
  • Helpers Module
    • Motivation
    • How to use
  • Foundations Module
    • Motivation and How to use
    • Actions
      • Local action traits
      • Extension action traits
      • Integration action traits
    • States
    • Utilities
      • Stores
      • Handlers and Services
        • Logging Service
  • Plugin
    • Main Plugin Instance
    • Plugin Components
  • Hierarchies
  • Helpers
  • Utilities Module
    • Motivation and How to use
    • Hooks Service
      • Scoped Handler
    • Shortcodes Service
    • Templating Service
    • Assets Service
      • Scripts Handler
      • Styles Handler
    • CRON Events Service
      • Action Scheduler Handler
    • Admin Notices Service
    • Dependencies Service
    • Validation Service
  • Core Module
    • Motivation and How to use
    • Plugin Tree
      • Plugin Root
      • Plugin Functionality
    • Plugin Components
      • Internationalization
      • Installation / Upgrade / Uninstallation
  • Settings Module
    • Motivation and How to use
    • Settings Service
      • WordPress Handler
      • MetaBox Handler
      • ACF Handler
    • Validated Settings
  • WooCommerce Module
    • Motivation and How to use
    • Extended WC Logger
    • WC Settings Handler
Powered by GitBook
On this page

Was this helpful?

  1. Primary goals

Modular design

PreviousPrimary goalsNextNo 3rd-party dependencies

Last updated 4 years ago

Was this helpful?

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. -- validates that appropriate versions of PHP and WordPress are running or displays a user-friendly error if not.

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

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

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

  5. -- 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. -- provides a unified way for interacting with various settings APIs like , , and itself.

  7. -- 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 , 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...

Bootstrapper Module
Helpers Module
Foundations Module
Utilities Module
Core Module
Settings Module
ACF
MetaBox
WordPress
WooCommerce Module
WooCommerce