Currently when a plugin is active Habari simply stores the file name
in the active_plugins option. This causes a problem:

There is no correlation between the file and and the class name, thus
in order to obtain the class name for said file we must use a rather
large array_filter of _every_ single defined class to obtain only
those which are children of the Plugin class. Then, we must loop
through that array of plugin classes and, using reflection, determine
which class belongs to which file. This array_filtering (of a 200+
element array) and reflection adds an absurd amount of overhead to
habari's initial loading, simply to instantiate plugins and register
their filter/actions.

On a default install querying the home page, with only one plugin
active (Core Dash Modules), loading plugins takes about 5% of the
total load time for habari. That might not seem like a lot, but
remember that's 5% of total load time simply to instantiate and
register the filters/actions of _one_ plugin (the value increases with
number of active plugins), and the plugin hasn't even executed
anything yet. Eliminating above mentioned loops, will drop it to about
1.4%.

The other major culprit is using reflection to obtain the filter_ and
action_ methods, but i can live with that if we eliminate the above :)

So I propose we do one of two things:

1) Require that the plugin file name MUST be of the form
classname.plugin.php, where "classname" is the actual value of the
plugin's class name.

OR

2) Store the active plugins in the form: array( 'classname' =>
'/user/plugins/foo/filename.plugin.php');


I am +1 for option 2, to maintain the current way of naming the file
and class "separately".

-- 
Matt Read
http://mattread.com

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/habari-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to