Object Oriented WP plugin structure

Better wordpress extensions with an object oriented approach.

2008-07-18

Bookmark and Share

Wordpress

prev

When searching the web for WordPress plugin tutorials and introductions the vast majority utilizes procedural programming. However having recently discovered Object Oriented programming in PHP 5 i decided to take another approach to both plugins and themes.

When encapsulating plugins or parts of your themes in classes, you create a container for variable, constant and function names thus avoiding name clashes with the core or with other plugins. You can also encapsulate your class in a statement checking if the class already exists to ensure that in the rare case of a name collision your plugin will not initialize and crash the WordPress installation.

Here is a simple example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< ?php
// Plugin Name: Text Barking Dog 
 
if (!class_exists('OurWpPluginDog')) {
	class OurWpPluginDog {
		function __construct() {
			$this->text = "wuff wuff";
		}
		function bark() {
			echo '<!--' . $this->text . '-->';
		}
	}
	$dog = new OurWpPluginDog;
	add_action('wp_footer', array(&$dog, 'bark'));
}

This plugin will insert “wuff wuff” as an html comment at the hook wp_footer. The __construct function runs when the class is constructed you can also place your actions and filters here, if you do you simply reference array(&$this … instead.

Object oriented programming encourages DRY - it simply makes it more convenient to reuse your code. As your plugin grows you will also find it easier to get an overview of the code.

#

One Comment

Bookmarks about Wp

[...] - bookmarked by 3 members originally found by freetoffee on 2008-08-25 Object Oriented WP plugin structure http://accidentdesigns.com/web/wordpress-web/oo-wp-plugin-structure/ - bookmarked by 3 members [...]

#

Leave a Reply

Strange Attractors

Strange Attractor