| <?php |
| require_once 'tutorial_autoload.php'; |
| |
| class Data |
| { |
| private $signals = null; |
| |
| public function signals() |
| { |
| if ( $this->signals == null ) $this->signals = new ezcSignalCollection(); |
| return $this->signals; |
| } |
| |
| public function manipulate() |
| { |
| // change the data here |
| $this->signals()->emit( "dataChanged", "calendar" ); |
| } |
| } |
| |
| class Cache |
| { |
| public function deleteCache( $type ) |
| { |
| echo "Deleting cache for ID: {$type}\n"; |
| } |
| } |
| |
| class CacheGenerator |
| { |
| public function generateCache( $identifier ) |
| { |
| echo "Generating cache for ID: {$identifier}\n"; |
| } |
| } |
| |
| $cache = new Cache(); |
| $cacheGenerator = new CacheGenerator(); |
| |
| $data = new Data(); |
| $data->signals()->connect( "dataChanged", array( $cacheGenerator, "generateCache" ), 20 ); |
| $data->signals()->connect( "dataChanged", array( $cache, "deleteCache" ), 10 ); |
| |
| $data->manipulate(); |
| ?> |