build a plugin system with php build a plugin system with php php php

build a plugin system with php


  1. Define the functionality you want the plugins to plug into (ie, what will they do and over what)
  2. Define a class hierarchy on which plugins fit, like, all article mangling plugins should inherit from ArticleMangler
  3. Define a physical location for plugins, like /plugins
  4. Import all plugins present in the location
  5. Use either Decorator or Observer patterns to inject the plugin's behavior or to notify the plugins of events occurence. Strategy might be applicable in some cases as well.

PHP makes this fairly easy at a potential cost of making a mess if you're not careful. I like the Observer method where plugins register themselves to a plugin manager which notify them of what happened and wait for their action to happen.

If you don't trust plugins then you'd have to put add controls over which events you are going to allow any plugin to register for.