Better wordpress extensions with an object oriented approach.
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.
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 [...]