[TYPO3-dev] Linkvalidator needs you
Dmitry Dulepov
dmitry.dulepov at typo3.org
Wed Dec 22 11:00:17 CET 2010
Hi!
Steffen Kamper wrote:
> Am 22.12.2010 07:48, schrieb Georg Ringer:
>> Am 21.12.2010 19:00, schrieb Steffen Kamper:
>>> i agree realurl should be included. We had simulatestatics in old days,
>>> and realurl would be the perfect substitution.
>>
>> the question is: should there be a rewrite of it for that
>>
>
> there are some issues that prevent it at the moment:
>
> * realurl is well meaintained by Dmitry. If it would be integrated, all
> core devs have to learn how it works to be able to maintain as well
> * some parts should better cooperate with core. That means it has to be
> refactored - missing volunteers and manpower
>
> My agree for integration was from principle, and it only can happen if
> there are enough devs volunteer for this.
I should spot some more light on this...
Yes, I prefer that the *current* RealURL is not touched by anybody else. I
am not selfish at all here and therefore I want to give my reasons :)
Firsts, you all need to know the history of RealURL. Martin Poelstra (is
that the right name?) made a great but a very dirty hack ages ago to use
speaking URLs with TYPO3. It was an extremely dirty hack because Martin did
not have large enough knowledge about the core (nobody except Kasper did at
that moment I think). But again, he was brilliant with the idea.
Next, Kasper realized the potential of the feature and rewrote RealURL from
scratch. It was times when "clean coding" and "object oriented" approaches
virtually did not exist. Thus it was all a big piece of code with no
comments, lots of hidden knowledge between functions and stuff like
returning '__ERROR' instead of array to indicate the error.
When Kasper decided to step out, RealURL was essentially abandoned. It
somewhat worked but most of you remember "not a postVar" 404 error, don't
you? So I stepped in and took RealURL. Truly speaking it was more than
complete mess at that point because it was patch over patch with methods of
hundreds lines of code doing cryptic stuff (assuming X because the function
in other file did X, so it all broke when the function did X+1).
So I started small refactorings and fixes. Thanks to Netcreators where I
worked, they gave me tons of time to understand RealURL and fix it. I can
only say thanks and thanks to them all the time (Ben, Sander, Willem,
thanks!!!).
The code is much better now but the code base is too old. People often
provide patches that fix bugs. This is a good side. The bad side is that I
usually have to fix patches :) While fixing one bug, patches usually
introduce another one. This happens in more than 50% of cases. It happens
even in patches of core devs or other devs, which we all know.
So it is extremely dangerous to give RealURL commit access to other people.
Imagine 3-5 patches like this and the effect they will have. So the only
way I see now is that I check all patches before they are applied.
Now your idea could be a core-like list. Sorry, not going to work because I
am not made from rubber and I can't expand myself to do both daily work and
check patches at real time :) I can only work in "rounds". A "round" is
when I dedicate a week or two to the extension and work on that all the
time. So I take all submitted patches, look at them, see what they can
break, apply and test. This is how it works and it works well until now. I
can see any other process that will keep RealURL stable. Also I do not see
a single dev who can provide patches without side effects. So, you got the
idea.
A better way would be to create a "RealURL 2.0". I have that in mind for
1.5 years now. This project is huge and it needs:
- implementation of the router directly into the TYPO3 core (speaking URLs
by default)
- rewrite of tslib_cObj::typoLink and t3lib_tstemplate::linkData to use the
router but stay compatible with all previous hooks
The router has to do a lot of stuff and it has to be based on different
principles. Current RealURL does it all wrong and at the wrong time (all
those multiple caches, etc).
Time, project, budget, people? Well, possible I think. May be should plan that.
Now you know it all. Sorry for the long text. As you see, I can guarantee
proper work of RealURL only if I am the only one who commits changes.
--
Dmitry Dulepov
TYPO3 core&security team member
Twitter: http://twitter.com/dmitryd
Read more @ http://dmitry-dulepov.com/
More information about the TYPO3-dev
mailing list