[TYPO3-core] Strategy for deprecation log
lolli at schwarzbu.ch
Tue Apr 2 01:36:29 CEST 2013
On 04/01/2013 03:57 PM, Markus Klein wrote:
>> 2) optionally checks for duplicates using the sys_registry
>>>> IMHO a NO GO. Please don't use any database stuff in deprecation handling.
> 1.) Because I don't think it's a good idea to mix concepts of different "abstraction levels". Database access and handling is a far higher concept than the rather lowlevel deprecation handling. This shouldn't be mixed.
> It MIGHT lead to serious troubles in the (unknown) future, especially when it comes to database functions being deprecated. Somewhat a chicken - egg problem.
Mmmh. I think this is not such a strong argument anymore: db connection
is established after LocalConfiguration & AdditionalConfiguration was
read. There is not much code delivered by extensions that could trigger
a deprecation before (except AdditionalConfiguration ...). Core itself
must be clean anyway in this regard. So, it would be probably possible
to log deprecations to db.
I'm only unsure about two points:
* It might happen that the overcomplicated errorHandler might throw
deprecations at an earlier point (unsure).
* The eid scripts might be a problem, since they don't initiate db
connection by default, but could very well throw deprecations. To solve
that, we could just initiate db connection in eid by default too (that
would also simplify this area in bootstrap a lot). I also think that not
creating db conn in eid is a flaw anyway, because you always need it if
you're doing anything useful. Objections?
> 2.) Accessing the DB is probably even slower than reading the small plain file.
Not necessarily. If we hash the message and create a key on the hash
like Steffen suggested, it won't cost much. Especially, if then only a
little number of inserts / updates are done (imho there should be a
timestamp when the last deprecation of that type was thrown). If we
manage to move the insert / update code to shutdown(), we could gather
the deprecations and commit to persistence with little overhead I guess.
More information about the TYPO3-team-core