On Oct 21, 3:01 pm, Yarko Tymciurak <[email protected]> wrote: > On Wed, Oct 21, 2009 at 2:50 PM, mdipierro <[email protected]> wrote: > > > As far as I am concerned think there are the only rules we need to > > follow: > > > 1) a naming convention: > > > models/plugin_[name].py > > controllers/plugin_[name].py > > */plugin_[name]/* > > This convention is spaghetti source - it is crap; I do not like it in the > least, and see absolutely no reason to even consider it. > > It will only lead to confusion, and novices learning to have to manage all > sorts of code they should not be looking at, knowing about the internal > details (modularity - remember?!) - and if this is a teaching system, even > the more. > > I want to see you just DROP this convention. > I'll repeat. It is crap. > > As Thadeus points out (and I only vaguely remember - it may need more > discussion) - Mr. Freeze proposes something more appropriately structured. > > Look at it again, more seriously.
I did. Over and over. Let me explain why it is not crap. Think of a matrix where the columns are models, views and controllers and the rows are functional components like plugins. Now we need to represent this structure in a filesystem which has a tree like structure. Again: we are trying to represent a matrix as a tree. You want to do it by row (one folder for each plugin and models/views/controllers subfolders for each plugin). I want to represent it by column (top level models/views/controllers and files of subfolders for each plugin within each top level folder). Why I like the second better? Because web2py already has that structure and in fact we have that already without changing one line in web2py. In order to take the other approach (the one you suggest) you would have to represent some parts of the matrix by column (those that do not belong to plugins) and some by row (those that belong to plugin) and this would result in real spagetti code in the implementation and it would constitue a major web2py rewrite. In which order should the folders be looked up? In which order should models be executed? >From a logical point of view plugins can be managed as subfolders and that is what admin already does. > > 2) models/plugin_[name].py can assume ONLY db, auth, crud, T > > auth, crud, T are gluon defined; that's ok. > > db is an application level variable, so that seems potentially problematic, > an assumption - this either needs to be NOT shared, or a way for the > application to configure it for plugins is needed. > > > 3) models/plugin_[name].py should define only one global object > > > plugin_[name]=dict() > > Ugh! > > Well, this is ONE way to do plugin registration so the system know what is > there. It's uglly, and brut force. I don't even want to critique it > because, as I've said before, the IMPORTANT point is: > > - The running app needs a way to discover what plugins are available, and > there must be a way for the plugin to somehow registrer it's presence. > > Now: WHAT are the important things an app / web2py instance must know > about the plugin? > > - version? > - name? > - is it using / expecting app db connection? > - is it creating own db connecntion? > > We should make a big list, and narrow it down to reasonable things later. > > This has not been done, and is one reason why discovery (and associated > problems because of that) doesnt' yet exist. This is true but at this point I am just interested in making sure people can experiment with LOAD and make sure one plugin does not interfere with another. What plugins should share is another story and I am not sure I want to dictate that. I can think for example of two different web2py CMSes that may want to use distinct sets of incompatible plugins and I do not see a problem with that. I define "component" a LOADable action of a "plugin". Massimo --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. 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/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

