IT[X] fork, round 2
| From: | Alexey Borzov | Date: | Wed, 12 Feb 2003 09:01:06 +0000 |
| Subject: | IT[X] fork, round 2 | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-13160@lists.php.net to get a copy of this message | ||
Greetings!
Okay, here is my summary for the first round of discussion and some answers
and clarifications.
1) I did NOT rewrite IT from scratch. It was mostly refactoring/PEARifying.
IT was written before PEAR, so it did not strictly conform to standards.
Yet, when you rename most of private functions and variables the patch
against current sources becomes impractical.
Public API stays the same, except for some changes described in the
readme file!
2) I cannot prove that my sources are _always_ BC, it is ridiculous
(especially when we have neither specification nor regression tests).
That's why I posted my sources for review in the first place. Test 'em
and tell me the results:
http://158.250.10.119/pear/IT.phps
http://158.250.10.119/pear/ITX.phps
http://158.250.10.119/pear/IT[X]-fork.tar.gz
3) <!-- INCLUDE --> is in my fork now. Yet it does not mix with caching,
just like callback functions. This is still somewhat a hack.
It _can_ be redone in a much cleaner way that will allow caching of
INCLUDE'd files as well, but this will take a non-insignificant amount
of time to do.
Christian, can you please test my classes now?
4) There were no other _concrete_ mentions of incompatibility. Here is one
to whet your appetite:
template:
Bugwards compatibility test
<!-- BEGIN outer_block -->
{outer}
<!-- BEGIN inner_block -->
{outer}: {inner}
<!-- END inner_block -->
<!-- END outer_block -->
code:
$tpl->setVariable(array(
'inner' => 'Inner block variable',
'outer' => 'Outer block variable'
));
$tpl->show();
Stock IT outputs
Bugwards compatibility test
Outer block variable
: Inner block variable
My version
Bugwards compatibility test
Outer block variable
Outer block variable: Inner block variable
Which one is broken is, of course, open for discussion...