Clone wiki

WordPress Plugin Foundation / Home

WordPress Plugin Foundation

The WordPress Plugin Foundation is a library for rapid WordPress plugin development. It uses PHP 5.3+ features such as namespaces. It provides a sensible structure that should meet the needs of most plugins and exposes WordPress APIs in a sensible, declarative manner.

Goals

  • A stable, declarative, human-readable syntax (YAML) for describing common changes to the backend of WordPress
  • Implementation handled by smart code that does The Right Thing, all the time
  • Excepting major version jumps with syntax revisions, updating the plugin foundation should never break plugins that rely on it. Behavior and appearance, however, may be altered (hopefully for the better)
  • The same plugin foundation code can be shared between multiple plugins without any problems

Roadmap

The plugin grew in a very ad hoc fashion. Features were added as needed in order to complete various web projects.

Features and revisions that are in the pipeline include:

  • More robust and granular permissions management, including the addition of a permissions manifest
  • Plugin activation actions
    • ~Run-once code (such as modifying permissions, which now is wastefully done every time...)~
    • Caching of YAML output
  • An import-scheme that allows re-use and recombination of YAML manifests
  • Exposing additional WordPess APIs, including internal, undocumented features
  • Adopting a consistent style guide for the codebase. This may or may not be the WordPress style guide
  • ~Adding an autoloading system for use in the foundation and plugins that utilize the foundation~ Now is PSR-4 compliant.
  • ~Infinite nesting of compound fields (currently able to nest, but not infinitely without problems). This will require actually designing for that feature; the current system is crude and bolted on~
  • Unit testing (currently there is none at all)
  • A validation class

License

WordPress asserts that plugins and themes inherit the GPL license, as derivative works that share memory and other such resources when the code is run on the server.

Updated