To understand better your point view. If plugins were to be stored in a subfolder "plugins/" but worked exactly how I suggested, i.e. executed in the same order as if all models where in the same models/ folder, would this be ok?
Massimo On Oct 24, 9:40 am, Yarko Tymciurak <resultsinsoftw...@gmail.com> wrote: > On Fri, Oct 23, 2009 at 11:09 PM, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > It seems to me this would move us completely in the wrong direction. > > First, since you are not writing in context, I will guess you are talking > about the concept that suiato presented of all [model, view, controller] in > on class. > > This concept as is, is simply not workable, as you can see from simple > "units" analysis - models and controllers are Python code; views are / > consist of html/template code (different base). > > I agree with massimo that it makes no sense to organize this particular way. > > However, a plugin_controllers class, and plugin_models class might have more > merit for discussion - but has the problem of consistency: what would the > "matching" idiom be for plugin_views (well, it could be just an anolog in > directory structure). > > This leaves on the table the discussion: is directory structure or class > structure a better way to incapsulate (Massimo: you will note, please, that > I am still very firmly of the stance that mixing in code with files called > plugin_[plugin_name].py is not an acceptable idea - not acceptable for me, > because of all the issues I see down the road with it; I have seen NO data > which even slightly moves me from that position, so I will not consider that > structure as a viable option). > > It would create a lot of structure one would need to remember. It > > > creates a new programming paradigm where for plugin models/view/ > > controllers are no longer separated in files but stored together in > > the same file. > > I think the statement of models/view/controller as separated, similar to the > rest of the app is clear. There is no reason to think that this kind of > structure would be of any benefit / use. > > > I like the idea of a web2py online conference. I could actually > > organize one in Chicago at no cost (except for flight, lodging and > > food) but would be people be available to fly here? Online may be a > > better option. > > Online: there are several options, including IRC. > > A good topic would be review of design of web2py, and workshops to identify > problem areas (coupling) where attention would reap the biggest benefits. > Plugins (and specifying them) would be a good topic, but for this to > produce useful results, the participants would have to be senior engineers / > computer scientists (novices will have many ideas, and can help with > specification, but structure - architecture and design discussions - will > require more seasoned participants for satisfactory results). > > - Yarko > > > > > Massimo > > > On Oct 22, 11:10 pm, suiato <homm...@gmail.com> wrote: > > > hi all, > > > > although i'm a mere user who may not have full understanding of web2py > > > mechanisms, i'm interested in how the web2py plugin system is > > > developed thru these discussions. because it will affect the evolution > > > path of this software, and probably decide if or how i am going to use > > > this system in the future. complex/commercial/enterprise applications > > > like CMS or e-commerce would benefit from smart and easy plugin (or > > > add-on or extension) systems. > > > > 2009/10/23 Yarko Tymciurak <resultsinsoftw...@gmail.com> > > > > > Or what about one plugin file, where each plugin is a class - perhaps > > one for controller, one for model - no views allowed (only app or gluon > > facilities; could worry about separate view plugins as that is different > > enough).... > > > > i am interested in the idea, too. expressed use of classes in [web2py: > > > 32128]. > > > a class-based MVC? like > > > in plugins/myPlugin.py, > > > class MyPlugin(Plugin): > > > def model(...): > > > ... > > > def cotroller(...): > > > ... > > > def view(...): > > > ... > > > > an application uses it as, e.g., > > > in models/mydb.py, > > > myP = Plugin.MyPlugin() > > > ... do something useful with myP.model(...) ... > > > in controllers/mycntl.py > > > ... do something useful with myP.cotroller(...) ... > > > in views/mycntl.html, > > > ... do something useful with myP.view(...) ... > > > > * note myP.view() is not to output to browser but to input to views/ > > > mycntl.html. > > > * the plugins directgory can be anywhere in the path and imported. > > > * as long as used/executed in non gpl applications, plugins need not > > > be gpl licensed if gpl codes are not used/imported. > > > * system plugins are in web2py/plugins (gpl) > > > * application-shared plugins are in web2py/applications/plugins (gpl > > > or non gpl) > > > * application-specific plugins are in web2py/applications/myApp/ > > > plugins (follow myApp's license) > > > * plugins codes are copied and managed thru appadmin. > > > * appadmin may not modify plugin codes. > > > > * all the above can be done without changing web2py or breaking its > > > backward compatibility. > > > * forgive me it's just contemplation, not implementation. > > > > recently, trying to meet the needs of a customer, i looked for a CMS > > > with simple shop functionalities and found ezPublish(http://ez.no) > > > interesting. learned that it's a quite elaborate accumulation of lots > > > of work over 10 years by volunteers and companies. their site showed > > > celebrating its 10th anniversary in a conference with over 250 people > > > (http://www.youtube.com/watch?v=je6CqRWjwfo). its codes are based on > > > components (http://ezcomponents.org), and structured with libraries, > > > extensions, packages, etc. its slogan is "share your information". i > > > think its framework's elaborate structuring of codes helped it to > > > evolve to include lots of developers/users/companies. its learning > > > curve is still rather steep for me, and i'm sure they'd do better if > > > they have another chance to restructure. with the passion/power/ > > > prowess (and with Python) in this community, web2py has a good > > > opportunity to do better than others. > > > > it's nice to dream attending a web2py conference, whether online of > > > offline, in some years, to share information and celebrate the > > > accomplishment by web2py developers/users. > > > > cheers, > > > Teru > > > > > On Thu, Oct 22, 2009 at 2:58 PM, mr.freeze <nat...@freezable.com> > > wrote: > > > > >> I see how it would be a performance hit to enumerate all of the files > > > >> in those folders. What about a compromise where all plugins live in > > > >> one subfolder so we get the separation. Thinking out loud: > > > > >> applications > > > >> --myapp > > > >> ----plugins > > > >> ------models > > > >> --------plugin1.py > > > >> --------plugin2.py > > > >> ------views > > > >> --------plugin1_index.html > > > >> --------plugin2_index.html > > > >> ------controllers > > > >> --------plugin1.py > > > >> --------plugin2.py > > > >> etc... > > > > >> Do you think plugins should be accessible by URL outside of their > > > >> parent app or just take parameters and render html? Also, is/should > > > >> there be a mechanism to apply auth to a plugin? > > > > >> On Oct 22, 1:48 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > >> > One issue is models: > > > > >> > Let's say we have a normal model > > > >> > models/db.py > > > >> > and two plugin models in > > > >> > plugins/p1/models/a.py > > > >> > plugins/p1/models/x.py > > > >> > plugins/p2/models/e.py > > > > >> > In which order should they be executed? whatever order we use we > > would > > > >> > have to merge the results of multiple listdir and then sort them. > > > >> > Takes some extra time. Now that everything is one folder things are > > > >> > straightforward. > > > > >> > Another issue is controllers? What would be the url for a function > > > >> > index in the controller below? > > > > >> > plugins/p3/controllers/default.py > > > > >> > Mind that we cannot break backward compatibility! > > > > >> > Massimo > > > > >> > On Oct 22, 1:38 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > >> > > That's not as limiting as I thought at least. Did you already try > > the > > > >> > > sub-app approach and hit obstacles or is it something that might > > be > > > >> > > worth prototyping so we can compare > > performance/benefits/drawbacks? > > > > >> > > On Oct 21, 7:20 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > >> > > > Yes you would be limited to one model file, one controller file > > but as > > > >> > > > many views as you have actions and as many modules and static > > files as > > > >> > > > you need. > > > > >> > > > On Oct 21, 6:08 pm, "mr.freeze" <nat...@freezable.com> wrote: > > > > >> > > > > Man oh man! I've been at a SharePoint conference all day (hey, > > I have > > > >> > > > > to make money!) so I'm still sifting through all of the > > discussion but > > > >> > > > > I have another question: With the current implementation > > plugins would > > > >> > > > > be limited to one view, one controller, one model, etc., > > because of > > > >> > > > > the naming convention, correct? If so, do you think this will > > be too > > > >> > > > > constraining? > > > > >> > > > > On Oct 21, 11:39 am, mdipierro <mdipie...@cs.depaul.edu> > > wrote: > > > > >> > > > > > Physically plugins are not in the own folder because it > > would make > > > >> > > > > > web2py very clunky, it would have to search for plugins in > > the folder > > > >> > > > > > structure. > > > > >> > > > > > Logically the are listed as separate. > > > > >> > > > > > On Oct 21, 11:16 am, "mr.freeze" <nat...@freezable.com> > > wrote: > > > > >> > > > > > > I like how the plugin system is shaping up but have one > > question about > > > >> > > > > > > the folder structure. It seems more manageable to > > structure it like > > > >> > > > > > > this: > > > > >> > > > > > > applications > > > >> > > > > > > -- my app > > > >> > > > > > > ---- models > > > >> > > > > > > ---- views > > > >> > > > > > > ---- controllers > > > >> > > > > > > ---- plugins > > > >> > > > > > > ------ myplugin > > > >> > > > > > > -------- models > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---