Common abstract class for plugins

Unfortunately there is no system in WordPress to handle dependencies and sharing components between extensions is a challenge.

The possible solutions roughly are:

  • make shared part a plugin and require each plugin to require it (and possibly auto install/activate)
  • implement loader that will take care of processing versioning for shared part and take care of loading latest version available (see scbFramework for one example of such)

If extensions are for private use (as opposed to being separately and publicly available) you can manage them as part of whole site stack – in version control or Composer (which I hope will get more traction for WP projects).