Re: How to implement a plugin system?
| From: | Hamza Saglam | Date: | Mon, 06 Aug 2007 20:03:29 +0000 |
| Subject: | Re: How to implement a plugin system? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-260245@lists.php.net to get a copy of this message | ||
Hello Boro,
Thanks for your response. However I am looking for something a bit more
comprehensive :)
I could do it as you suggested if I had only a few plugins. As I am going to
add loads of plugins over the time, rather than adding all the plugins one
by one, could something like a 'loader' class be implemented? What I mean by
that is, it will take the requested plugin names (with their own parameters
necessary) and load/initialise them.
In semi-psuedo-code, it would be something like:
foreach plugin suplied as the argument
include the plugin
initialise it
end
Perhaps I should change the question to: "Do you think something like this
would be efficient and useable? If not what sort of pattern would you
follow?"
Warm regards,
Hamza.
"Borokov Smith" <borokov@gmail.com> wrote in message
news:46B77B4B.9020600@gmail.com...
> Hey Hamza,
>
> require_once($chosenPlugin . '.class.php');
>
> $obj = new $chosenPlugin();
> return $obj;
>
> And you can start from there.
>
> hth,
>
> boro
>
>
>
> Hamza Saglam schreef:
>> Hello all,
>>
>> I am working on a project which needs to have some sort of plugins
>> architecture and I am kinda stuck. Basically I want to give a list of
>> items to the user, and according to his/her selection, I want to load
>> relevant functionality into my application.
>>
>>
>> I was thinking of having an abstract plugin class, and have the
>> plugins implement that but then how would I actually load the plugins?
>> Say for instance I want to load plugins X,Y,Z (and lets say i
>> implemented them as [X|Y|Z].class.php) , should I just 'include' (or
>> require) them? Or should I initialize all possible plugins and just
>> pick the ones user has chosen (which sounds a bit pointless as it
>> would load unnecessary stuff)?
>>
>>
>> How would you go about doing something like this?
>>
>>
>> Thanks.
>>
>>