[dev] [commits] Horde branch refactor-Notification updated. 3b590095a4312f85639071510adc42d5dc9090fc

Jan Schneider jan at horde.org
Wed Nov 4 23:30:16 UTC 2009


Zitat von Gunnar Wrobel <p at rdus.de>:

> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Gunnar Wrobel <p at rdus.de>:
>>
>>> Hi,
>>>
>>> as I need to use the Horde_Notification package in stand-alone  
>>> mode  I  was forced to refactor it a bit. The main problem was  
>>> that the  module  is firmly embedded into the global Horde context  
>>> and  contains a number  of calls to services such as  
>>> Horde_Registry,  Horde_Auth, Horde_Nls,  Horde::logMessage().  
>>> These service are of  course missing if the  package is used on  
>>> its own.
>>>
>>> I pushed the necessary refactorings into the   
>>> "refactor-Notification"  branch. It would be nice if I could get   
>>> some feedback on the changes.  Do they work or are there  
>>> conflicts?  Does the structure look okay? Can  I merge the branch?
>>>
>>> The main changes were two new components: The    
>>> Horde_Notification_Storage and the Horde_Notification_Handler    
>>> interfaces. The storage part allows to exchange the underlying   
>>> storage  mechanism (for Horde this is the session by default). And  
>>>  the handler  part moves the references to global scope that were   
>>> present in  Horde_Notification into separate decorators. This way   
>>> they can be  avoided when using the Horde_Notification for itself.
>>
>> Looks good so far. Beside the small fixes that I already committed,
>
> I understood why you removed the "array" type hint for the  
> parameters.  Why is it required to use Horde_String though?

Because the strtolower/strtoupper/ucfirst family of functions is  
locale-dependent. The result is not the same in all languages.

>> alarm snoozing doesn't work anymore though. It looks like the  
>> alarms  are being cached in the session somehow, but I didn't have  
>> to track  this down yet. That should be fixed before the merge.
>
> Yes, the message stacks were not cleared anymore. I implemented   
> ArrayAccess for the storage handler and that was aparently a bad  
> idea  as these functions do not pass the values by reference. I will  
> remove  that tomorrow morning and merge the branch then.

Great!

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the dev mailing list