| Zend_Notification |
<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
Zend_Notification is a component based on Cocoa's NSNotification idea.Zend Framework: Zend_Notification Component Proposal
Proposed Component Name
Zend_Notification
Developer Notes
http://framework.zend.com/wiki/display/ZFDEV/Zend_Notification
Proposers
Jurriën Stutterheim
Revision
1.2 - 3 January 2008: Added some use cases, operation description and updated skeletons
1.1 - 30 December 2007: Refactoring and renaming
1.0 - 29 December 2007: Setting up first draft (wiki revision: 23)Table of Contents
1. Overview
It's an observer pattern implementation for system wide event notification.
For a detailed explanation, please see the documentation in the references section.2. References
3. Component Requirements, Constraints, and Acceptance Criteria
- This component must provide a clean, non-intrusive way to handle event notification
- Must not require existing classes to implement interfaces or extend classes for it to work
4. Dependencies on Other Framework Components
- Zend_Exception
5. Theory of Operation
The operation is very simple, but also very powerful. You can attach an object to a notification by calling the Notification_Center's addObserver() method.
This method takes the observer and the name of the notification as argument. More than one object can register to the same notification.
When a notification is sent, all objects that subscribed to that notification will be notified in order of subscription.
By default the observer's notify() method will be called. You can also register another method when registering the observering at the notification center.
The Notification constructor takes three arguments (of which the last is optional). The first is the name of the notification. The second is (usually) the object than sent the notification.
The last argument is an array that allows for extra data to be sent along with the notification.
When attaching an observer to an event you can either use a string to attach it to just one event, or provide an array with multiple event names. (See usecase UC-02)
When you attach an observer to an event with an asterisk in the name, the asterisk will be used as wildcard. See usecase UC-03 for an example.
For a detailed description behind the notification idea, please see the NSNotification documentation.
6. Milestones / Tasks
- Milestone 1: [DONE] finish this proposal
- Milestone 2: collect and process comments
- Milestone 3: write documentation
- Milestone 4: write unit tests
- Milestone 5: get approval and move the component to incubator
- Milestone 6: finish component and move it to core
7. Class Index
- Zend_Notification
- Zend_Notification_Center
- Zend_Notification_Exception