In the OOPS-WP workflow, a basic plugin would have the following components:
A main plugin bootstrap file: some-plugin-file.php
A namespaced src/ directory with a main plugin file in root, e.g., src/SomePlugin.php
Subdirectories for the various components of the plugin. For example, the plugin might register some post types and taxonomies, and may have a service to register those types under src/Content.
Following this structure, the abstract plugin would, in fact, be an extension of the ServiceRegistrar class, but we could additionally define an interface for that plugin class and, in the future, determine some methods that we think every plugin would require.
To satisfy completion of this task, a PR should include an abstract Plugin class and an interface for that class that defines a contract for a WordPress plugin.
In the OOPS-WP workflow, a basic plugin would have the following components:
some-plugin-file.php
src/
directory with a main plugin file in root, e.g.,src/SomePlugin.php
src/Content
.Following this structure, the abstract plugin would, in fact, be an extension of the
ServiceRegistrar
class, but we could additionally define an interface for that plugin class and, in the future, determine some methods that we think every plugin would require.To satisfy completion of this task, a PR should include an abstract Plugin class and an interface for that class that defines a contract for a WordPress plugin.