From: Paul L. <pa...@sq...> - 2005-12-20 18:52:34
|
On 12/20/05, Marc Groot Koerkamp <ma...@sq...> wrote: > On Tue, December 20, 2005 7:14 pm, Thijs Kinkhorst wrote: > > On Tue, 2005-12-20 at 10:03 -0800, Paul Lesneiwski wrote: > > > >> On 12/20/05, Thijs Kinkhorst <ki...@sq...> wrote: > >> > >>> On Tue, 2005-12-20 at 18:42 +0100, Marc Groot Koerkamp wrote: > >>> > >>>> We also need to fix the amount of require_once calls we do in each > >>>> file. Most of them can be removed if we replace them by > >>>> include_once() (or include(), sm_init should be included once > >>>> anyway) in sm_init. > >>> > >>> Thanks for your feedback, my idea is that eventually files under > >>> functions/ include nothing at all, files under src/ include sm_init, > >>> and perhaps files under src/ might include some more specific piecies > >>> in files from functions/ and include/. > >> > >> Although I generally agree with this approach since I like the idea of > >> keeping our code stripped down so it includes only what is needed, I > >> would only caution that we cannot always predict what library function= s > >> will be needed by a page request, particularly if any plugins are > >> involved. So there will definitely have to be a minimum of functions > >> that get included with every page request, probably very similar to wh= at > >> is already in global.php and/or strings.php > > > > That's exactly the idea, only this is going to be in a way that is a lo= t > > more structured and doesn't depend on files including files including f= iles > > etc. I'll put a proposal up soon, but am working on these more general > > cleanups first. > > > > > > It's getting better and better ;) > > Maybe part of the sollution is creating a dependency tree by documenting > the dependencies for each file. When that's done you can put the > dependencies in an array and create a function to auto include only the > minimum set of required files. > See also > (http://cvs.sourceforge.net/viewcvs.py/squirrelmail/sm2/lib/classes.php?r= ev=3D1.5&view=3Dmarkup > > There you can find a utility function i once made to auto include a set o= f > class files. Instead of doing an include for every file where a class > depends on i did a single call to sm_include() end the rest of the > includes happened automaticly. Maybe you can use it as example code. Yes - very nice idea, Marc. Jimmy implemented some working code that does something similar, although I'm not sure if it actually keeps a documented/manageable array of dependecies. It was posted at least once on one of the lists (this one likely) more than a year ago.=20 Jimmy might also have the patch still. Tomas also did something nice in doc/Development/plugin.txt where he documented the include hierarchy for validate.php..... if only as a developer, I would love to have this kind of thing for any page request in SM. :) |