deep-web-solutions/wp-framework-foundations

A set of related foundational classes to kick-start WordPress plugin development.


README

Contributors: Antonius Hegyes, Deep Web Solutions GmbH
Requires at least: 5.5
Tested up to: 5.8
Requires PHP: 7.4
Stable tag: 1.7.0
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html

Description

GPLv3 License PHP Syntax Errors WordPress Coding Standards Codeception Tests Maintainability

A set of related foundational classes to kick-start WordPress plugin development. This package contains many abstractions useful for building a WordPress plugin.

Documentation

Documentation for this module and the rest of the DWS WP Framework can be found here.

Installation

The package is designed to be installed via Composer. It may work as a stand-alone but that is not officially supported. The package's name is deep-web-solutions/wp-framework-foundations.

If the package will be used outside a composer-based installation, e.g. inside a regular WP plugin, you should install using the --ignore-platform-reqs option. If you don't do that, the bundled DWS WordPress Framework - Bootstrapper package will only be able to perform checks for the WordPress version because composer will throw an error in case of an incompatible PHP version.

Contributing

Contributions both in the form of bug-reports and pull requests are more than welcome!

Frequently Asked Questions

  • Will you support earlier versions of WordPress and PHP?

Unfortunately not. PHP 7.3 is close to EOL (March 2021), and we consider 7.4 to provide a few features that are absolutely amazing. Moreover, WP 5.5 introduced a few new features that we really want to use as well, and we consider it to be one of the first versions of WordPress to have packed a more-or-less mature version of Gutenberg.

If you're using older versions of either one, you should really consider upgrading at least for security reasons.

  • Is this bug-free?

Hopefully yes, probably not. If you found any problems, please raise an issue on Github!

Changelog

1.7.0 (January 13th, 2022)

  • Updated hooks to conform to new format in the rest of the framework.

1.6.0 (November 23rd, 2021)

  • The AbstractPlugin class now requires the plugin slug to be passed on in the constructor.

1.5.4 (November 2nd, 2021)

  • Fixed regression: logging service not setting the plugin instance on plugin-aware handlers.

1.5.0, 1.5.1, 1.5.2, 1.5.3 (October 28th, October 29th, October 30th, 2021)

  • Plugin component abstractions are now at the namespace root.
  • Utilities sub-namespace was removed.
  • More use of helpers from the Helpers module.
  • More use of PHP7.4 features.
  • Removed recursiveness from the logging service.
  • Hooks and Assets helpers definition is now compatible with those from the Helpers module.
  • Added a new MultiContainerAwareInterface and trait to go with it.
  • Simplified MultiStoreAwareTrait.

1.4.1, 1.4.2, 1.4.3, 1.4.4 (April 11th, April 23rd, August 19th, September 29th, 2021)

  • Compatibility with Helpers 1.2.
  • Consolidated changelog.
  • Documentation updates.
  • Migrated from Travis CI to Github Actions.
  • Changed the joining separator for hooks tags.
  • ChildTrait is now consistent with ParentTrait when checking for relations.

1.3.1, 1.3.2, 1.4.0 (April 10th, 2021)

  • Fixed a bug that caused only a maximum of 1 status extension trait to be executed.
  • Updated composer.json to support any version of the PSR packages.
  • Some action extension traits are now integration traits.

1.3.0 (April 9th, 2021)

  • Updated development tools.
  • Renamed the StoreableInterface to StorableInterface.
  • Renamed all instances of 'storeable' with 'storable'.

1.2.1 (April 3rd, 2021)

  • Added a conditional children setup trait.

1.2.0 (April 3rd, 2021)

  • Enhanced the Actions traits with the piping functionality from the Core module.

1.1.1 (April 2nd, 2021)

  • Updated version constant.

1.1.0 (April 2nd, 2021)

  • Renamed some traits for consistency with the rest of the modules.
  • Updated Helpers module.
  • Added a new initialization extension trait for hierarchical objects that use a DI container.

1.0.0 (April 1st, 2021)

  • First official release.