I am new to plugin development. So please correct me, wherever I get it wrong.
I have a website which needs a players plugin with the following needs:-
- An administrator controllable form for player registration, with some details of them.
- A listing page where all the registered players are to be shown.
- Registered players can be deleted & compared with each other.
- Showing some registered players (10 random players) in the WordPress theme in the front-end.
I have completed the activation of the plugin, along with database table creation and administrator menu options for this plugin. I have also completed the player registration interface, but without the database insertion code. But all of these have been done using normal procedural way.
I now have two headaches in completing the development of this plugin:-
- Develop this plugin in the OOP format, for support to future versions of WordPress.
- Complete the other requirements of this plugin.
How to proceed with the following (even with a little knowledge sharing)?
- Creating a WordPress plugin from scratch using the OOP way.
- Calling a web form (like, for player registration) using OOP.
- Submitting all these player information into the database using OOP.
- Showing a listing page (like, for registered players and positioning them) using OOP.
- Showing some players in the front-end of the WordPress theme, using either Template Tags or directly with the help of the plugin.
I have searched Google, tried to find some information in the Internet about these, but I haven't succeeded much with the OOP thing.
EDIT:- It will be very helpful and nice for all of us (new to WordPress OOP plugin development) to have some code snippet highlighting its use. If possible, you can also provide some article links which will properly describe how to write such OOP plugins.
Articles, like what "gulbrandr" provided, was helpful, and I also would like to thank "kovshenin" for sharing / mentioning links of some OOP plugins; but it will be very great if some more articles or any code snippet can be provided, describing the proper steps of developing the OOP plugins.
I'm not a guru, but I've been working with WordPress for several years now and have quite a few plugins behind my back. Your first mistake I can point out is
This is wrong. You don't create tables when you work with WordPress, the default schema is flexible enough to fit anything you have in mind. Even complicated plugins such as WP-eCommerce is being rewritten (or already, don't know) to fit the standard WordPress schema. Especially since WordPress 3.0 is already out. This has been mentioned on WordCamp earlier this year.
You can easily fit your players into the Users table. Their attributes could be stored in the Users Meta table, plus you could give them special roles and/or privileges.
Now, if you're really into OOP, you should download some cool plugins out there and read through the code to see how other people do it. As an example I could mention one of my own plugins called Twitter Friendly Links - it's not the best OOP around, but it's definitely a start ;)
You can kick it over to W3 Total Cache afterwards, where you'll see some very impressive stuff and code organization (thanks to Frederick Townes).
Also, some parts of the Codex now show examples in OOP style - the Widget API for instance. I hope to see more soon and hurray for OOP in WordPress! It's a good thing that people ask such questions, it is what motivates the core developers :)
I found a recent post (August 2010) about how to write an Object Oriented WordPress Plugin: http://w3prodigy.com/behind-wordpress/object-oriented-wordpress-plugin/.
Hope this help.
Steps on how to getting started with plugin developement
Step 1 – Create your file and let it be known as a plugin
Step 2 – Create the objects of your plugin
Step 3 – Adding your actions and filters
Step 4 – Adding settings/options to your plugin
Finish up your code
Reference: Writing a WordPress Plugin Using Classes
Try to use WP's builtin custom post types and custom fields/taxonomies API. If it is not enough for your task - you can try to add some ORM like, say, Doctrine for backend. Also recently, I have developed a simple framework that provides some core functionality to add MVC approach to WP (basic request routing, html generation api, and "model" based on the wordpress' posts and custom fields). It is not perfect - but I can share the code and may be it will help you.