Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History
Zend_Notification
Under Construction
This proposal is under construction and is not ready for review.

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

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.0 - 29 December 2007: Setting up first draft (wiki revision: 3)

Table of Contents

1. Overview

Zend_Notification is a component based on Apple's NSNotification idea.
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 section will be updated in the near future

4. Dependencies on Other Framework Components

  • Zend_Exception

5. Theory of Operation

The component is instantiated with a mind-link that ...

6. Milestones / Tasks

  • Milestone 1: 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_Observer_Interface
  • Zend_Notification_Exception

8. Use Cases

UC-01

class CoffeeShop_Customer implements Mentis_Notification_Observer_Interface
{
public function __construct()

Unknown macro: { $notificationCenter = Mentis_Notification_Center}

public function notify(Mentis_Notification $notification)
{
$userInfo = $notification->getUserInfo();
$sender = $notification->getObject();

switch ($notification->getName())

Unknown macro: { case 'pieIsReady'; $pie = $userInfo['pie']; $pie->eat(); break; case 'coffeeIsReady'}

if ($sender instanceof CoffeeShop)

Unknown macro: { $sender->recommendToFriends(); }

}
}

class CoffeeShop
{
protected $_notificationCenter;

public function __construct()

Unknown macro: { $this->_notificationCenter = Mentis_Notification_Center}

public function bakePie()
{
$pie = new Pie();

while (!$pie->isDone())

Unknown macro: { $pie->bake(); }

$this->_notificationCenter->postNotification('pieIsReady', $this, array('pie' => $pie));
}

public function makeCoffee()

Unknown macro: { $coffee = new Coffee(); $this->_notificationCenter->postNotification('coffeeIsReady', $this, array('coffee' => $coffee)); }

}

9. Class Skeletons

]]></ac:plain-text-body></ac:macro>

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.