PHPackages                             eabay/oow - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. eabay/oow

ActiveLibrary[Framework](/categories/framework)

eabay/oow
=========

Object-Oriented approach to WordPress plugin development

1.4.0(10y ago)213523[1 issues](https://github.com/eabay/oow/issues)1MITPHPPHP &gt;=5.3.2

Since Jul 22Pushed 10y ago4 watchersCompare

[ Source](https://github.com/eabay/oow)[ Packagist](https://packagist.org/packages/eabay/oow)[ Docs](https://github.com/eabay/oow)[ RSS](/packages/eabay-oow/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (5)Dependencies (2)Versions (7)Used By (1)

What is Oow?
============

[](#what-is-oow)

Oow is a library that contains components to ease [WordPress](http://wordpress.org/) plugin development.

Design
------

[](#design)

If you are familiar with how Doctrine2 works, there is just a little to explain. There is a `PluginManager` to handle your standalone plugin classes by reading annotations. Don't worry if this doesn't make any sense to you. Continue to read. :)

### PluginManager

[](#pluginmanager)

`PluginManager` is at the heart of the library and all classes is registered to WordPress hooks with it.

### Plugins

[](#plugins)

Plugins are just standalone PHP classes. They don't have to extend any base class and don't have to follow any naming conventions. Annotations in docblocks are used to handle classes.

Requirements
------------

[](#requirements)

- PHP 5.3.2 and up
- [Doctrine Annotations](http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/annotations.html) library to process annotations

Installation
------------

[](#installation)

### with [Composer](http://getcomposer.org/)

[](#with-composer)

Add `eabay/oow` as a dependency in your `composer.json` file.

Usage
-----

[](#usage)

First create a plugin class:

```
