The bulk of the code in Flexy's core class is really about
a) set up the options.
b) does the template exist (in any of the source folders)
c) doing some tweaking on the object prior to outputting..
... and while I may be mistaken, it looks to me that a missing (d) is "calling the compiler class to compile the template."
In real life, the Compiler class is never included (as you dont change the template after you have installed the application ususally).
Based on the most recent relase, not CVS,
CVS has all the Savant changes. - This shows what was required in the core class to do it.
http://cvs.php.net/diff.php/pear/HTML_Template_Flexy/Flexy.php?r1=1.70&r2=1.80&ty=h&num=10
it appears to me that the compiler class is necessary to the normal operation of Flexy; as such, if we're comparing line counts (which might not be the best way to do this) we should include the compiler class line count as well -- and it looks like Compiler.php also calls a number of sub-classes. Unless I am mistaken due to my ignorance of the subtleties of Flexy, the line count appears to increase dramatically for Flexy when one includes the compiler that is apparently the main strength of Flexy. Please correct me as you see fit, Alan, I'm not up on all of the code.
The Compiler & it's dependants are Huge - over 10,000 lines maybe.. - but it's rarely loaded in real life.. - so it's academic to count..
I'm not sure line counts are the best thing to compare on this kind of issue, even if it does turn out that Flexy has more (or less, even). My point is that Flexy has an idea about its normal mode, and Savant has an idea about *its* normal mode; I don't think the two really merge, and I think Flexy expects a bit more from the developer-user than Savant does. But that's just me.
Do have a look - The merge is pretty much done, The tests link I sent yesterday illustrates the the changes to the end user API is pretty minor. you could even write full Savant emulator API wrapper for flexy in < 30 lines now ... :)
The only things pending on impleementing savant in flexy is
a) working out how to do the filters stuff.. - my major preference is to use the existing regex backend and pass the results back thru it'self.. - just need to come up with something resembling a sensible API..
Can you have a look at the plugin architecture - It's been refactored a little. - It doesnt do any static calls anymore, and there's no need for a base plugin Class (although it could be done.)
Regards
Alan