[dev] [commits] Horde branch develop updated. fa956a4d83a7227e2a5d47bfe87185854e151fbc
Michael J Rubinsky
mrubinsk at horde.org
Mon Feb 13 15:07:03 UTC 2012
Quoting Michael M Slusarz <slusarz at horde.org>:
> Quoting Jan Schneider <jan at horde.org>:
>
>>> This is currently broken though, because Kronolith::initialize()
>>> is where we determine what shares (and other, non-share based
>>> calendars) are available. I just tested this, and in fact the
>>> sidebar does not contain the calendar list when viewing the horde
>>> portal.
>>>
>>>> _init() is for bootstrapping only. You can't call
>>>> registry/horde-wide things in there due to the chicken/egg
>>>> problem. _init() is not designed to set up the full application
>>>> environment.
>>
>> But we have been using it for exactly that since Horde 4. We cannot
>> simply change the semantics of an API method because it doesn't
>> work anymore after some refactoring in Horde or Horde_Core.
>> _init() has always been the place to set up the app environment
>> since we dropped base.php.
>
> Except this is *exactly* how we've been using it. And it is exactly
> what the API says it should be used for:
>
> Does any necessary init needed to setup the full environment for the
> application.
>
> Full environment meaning enough to load the application. Not to
> load **EVERYTHING** the application may eventually need to possibly
> use on a page. See, e.g., IMP which does nothing in _init() except
> load the basic environment.
Well, I would argue that determining what calendars are available for
use in Kronolith is a pretty fundamental requirement of any kronolith
action, so even if we buy in to what you say in the above paragraph,
this still belongs in _init().
> (As mentioned in the previous post, Kronolith breaks a bunch of
> stuff in 3.0 because it is doing things like overwriting Horde
> global variables in _init(). Not good.)
>
>>>> So that does mean that the timezone stuff needs to go someplace
>>>> else. Maybe Kronolith::initialize()? But it can't be done in
>>>> _init().
>>>
>>> Ok, so then the solution is to refactor again to remove
>>> Kronolith::initialize() from _init(). It was nice to have it done
>>> in one central place, but I'm seeing that this is not going to be
>>> possible with the current way apps are initialized.
>>>
>>>> The linkTags() can stay as-is for now - it is only used if
>>>> Kronolith is the current active application.
>>>>
>>>> All of this came to light a few weeks ago when doing some
>>>> xdebugging. In so many words: the SAPO folks were not very happy
>>>> at all to see that a large portion of a page access for things
>>>> like viewing a message were being spent in kronolith (or, more
>>>> broadly, any application), even if NOTHING on the page ever
>>>> directly accessed those applications. I agree. The two culprits
>>>> were application notification handling and alarm checking.
>>>
>>> Agreed, though don't the changes in Core border on a BC break
>>> since updating Core without updating Kronolith would lead to
>>> broken RPC usage, including SyncML and ActiveSync?
>>
>> Agreed.
>
> How so? Horde Core reverts back to the old behavior for checking on
> every pageload for notification and alarm checking if the
> applications haven't been update to use the newer version of Horde
> Core.
The whole reason I discovered the problem is because of the change in
Core breaking the existing behavior of Kronolith.
--
mike
The Horde Project (www.horde.org)
mrubinsk at horde.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6096 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.horde.org/archives/dev/attachments/20120213/0c1b971b/attachment.bin>
More information about the dev
mailing list