mrkrstphr
10/31/2013 - 3:08 AM

Plugins

Plugins

{
    "name": "vendor/plugin-name",
    "description": "",
    "keywords": [],
    "homepage": "http://internet.org",
    "require-php": {
        "vendor/package": "dev-version"
    },
    "require-plugin": {
        "vendor/plugin": "dev-version"
    },
    "require-js": {
        "library": "version"
    },
    "assets-js": [
        "directory"
    ],
    "assets-css": [
        "directory"
    ],
    "assets-images": [
        "directory"
    ]
}

Martha Plugins

Essentially, we need a plugin system that:

  1. Allows third-party developers to extend the functionality
  2. Allows users to easily find, install, update, and configure plugins through the application
  3. Allows developers to include images and css that are made available in the public folder
  4. Allows developers to denote PHP library dependencies for their Plugins
  5. Allows developers to denote Plugins that their Plugin depends on
  6. Allows for the organization, procuring, and proper versioning of all the third party resources

In other words, if I am a developer, I should be able to write a plugin, specify which third-party libraries I need, specify any other plugins I depend on, specify any JavaScript libraries I depend on, and finally, declare which CSS and image resources I have.

As a user, I would expect the system to be able to show me available plugins, let me install those plugins, and take care of everything the plugin needs to operate.