Re: Plugin systems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marcus Bointon wrote:
I'm looking to build a plugin system for my web application. I'm going to need to handle multiple types of plugin. I know that many of them exist already, but I'm wanting something that's very object- clean and PHP5-aware. I was thinking about using multiple interface implementations, so that I could have a plugin that provides a particular kind of database access, provides a user interface for admin purposes, and a simple display unit perhaps for connection status. In this case I'd define a class like:

class mynewplugin extends pluginbase implements database, admin,  display {
  //...
}

seems like alot of spreadout functionality to be putting it in a single
class (maybe I'm not seeing your example in the proper light).


I would then be able to introspect (using class_implements etc) to find, for example, all plugins that implement database access. I could easily add more plugin types by adding more interface types. The overall benefit being that all kind of plugin are handled through a single mechanism.

Does this sound like a solid structure and mechanism?

it sounds like lots of work, with the possibility that it will become
overengineered... which has the affect of:

1. making code slow (introspection and reflection are not the speediest parts of the engine!)
2. make seemingly simple things difficult because of all the hoops you
have created for yourself.

but then there is nothing to suggest that you can't make it work
- the kind of thing you suggest doing is a good way of utilizing
the advantages of the object model.

I doubt it will be easy to write it well... but hey thats half the fun right?! :-)
by all means hit the list with all your tricky little php5 problems,
I for one will be on the look out for them :-)

btw: you may want to ask yourself (in order to help define scope etc):

1. what is the objective you wish to accomplish with such a 'system'?
2. do you have a very strict definition of 'plugin'? (I have always found the
word rather woolly/inexact)

rgds,
Jochem


Marcus

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux