Login   Register  
PHP Classes
elePHPant
Icontem

File: README

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Jo Giraerts  >  cjEvents  >  README  >  Download  
File: README
Role: Documentation
Content type: text/plain
Description: Some info
Class: cjEvents
Handle browser events in PHP
Author: By
Last change:
Date: 3 years ago
Size: 1,980 bytes
 

Contents

Class file image Download
cjEvents by Jo Giraerts <jo.giraerts@gmail.com>
========

With this library you can do event-based programming in PHP and Javascript.
The base-class is cjEventHandler in event.php. This class implements a singleton observer pattern.

Primary methods:
.   $handler->singleton($handle_directly): get an instance of this class. The parameter is a boolean which determines if events should be handled immediately after they are raised or if you want to call the handle()-method yourself.
.   $handler->attach: Link a callback-function or method to a self-named event.
.   $handler->raise : Raise an event. If you set $handle_directly to 'true' when instantiating this object, it will also be handled. This function accepts unlimited amount of parameters which will be given to the callback in 1 array.
.   $handler->handle: Handle all the raised events. Calls all the callbacks you defined.

For some examples on how you can use this class, check test_purephp.php.


The real strength comes when you start mixing it up with JQuery or Prototype. With this package it's easy to send events between PHP and Javascript.
Just check the test_jquery.html and test_prototype.html for some examples.





Todo:
-----
. websocket integration
. making the API cleaner to use
. wrapping the JS into it's own namespace and make it load automatically



Caveats:
--------

1. When sending events from javascript to PHP, the arguments you send along, will all arrive to the callback in 1 array.
<script>
raisePHPEvent('some event', 'arg1', 'arg2', 'arg3');
</script>

The correct callback for this event would be something like this:

<?php
    $handler = cjEventHandler::singleton();
    $handler->attach('some event', 'get_vars_from_js');

    function get_vars_from_js($params)
    {
        echo $params[0]; // 'some event'
        echo $params[1]; // 'arg1'
        echo $params[2]; // 'arg2'
        echo $params[3]; // 'arg3'
        echo $params[4]; // '' because it does not exist
    }
?>