欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP 事件驱动程序

程序员文章站 2022-03-31 11:29:50
...
1.class.Dispatcher.php
<?php
session_start();
require_once('class.Handler_Event.php');
header("Content-type:text/html; charset=utf-8");
 
class Dispatcher{
    private $handle;
     
    function __construct($event_handle){
        $this->handle=$event_handle;
    }
     
    function handle_the_event(){
        $name="handler_$this->handle";
        if(class_exists("$name")){
            $handler_obj=new $name($this->handle);
            $response=$handler_obj->secure_handler();
            return $response;
        }else{
            echo "I can't handle this!";
        }
    }
}
?>
<html>
<head><title>Secure,Event Driven Record Viewer!</title></head>
 
<body>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
   <input type="submit" name="event" value="View">
   <input type="submit" name="event" value="Edit">
</form>
</body>
</html>
<?php
function handle(){
    $event=$_POST['event'];
    $do=new Dispatcher($event);
    $do->handle_the_event();
}
 
$_SESSION['name']="Wangzy";
 
if(isset($_POST['event'])) handle();
?>

2.class.Handler_Event.php

<?php
//Event parent
abstract class Event_Handler{
    function dbconn(){
        $link_id=mysql_connect("localhost","root","root");
        mysql_select_db("mytest",$link_id);
        mysql_query("set names utf8",$link_id);
        return $link_id;
    }
     
    abstract function handled_event();
    abstract function secure_handler();
}
 
//View Event
class Handler_View extends Event_Handler{
    private $handle;
     
    function __construct($event_handle){
        $this->handle=$event_handle;
    }
     
    function handled_event(){
        echo "The event, $this->handle, is now handled.<br>
        It is ,I promise!<br><br>
        Your records are as follows:<br><br>";
         
        $id=parent::dbconn();
        $result=mysql_query("select * from table01",$id);
        while($row=mysql_fetch_array($result)){
            echo "Numbers:".$row['number']."\tName:".$row['name']."<br>";
        }
    }
     
    function secure_handler(){
        if($_SESSION['name']=="Wangzy"){
            $this->handled_event();
        }else{
            echo "Sorry {$_SESSION['name']} you are not authorized!";
        }
    }
}
 
//Edit Event
class Handler_Edit extends Event_Handler{
    private $handle;
     
    function __construct($event_handle){
        $this->handle=$event_handle;
    }
     
    function handled_event(){
        echo "This is event $this->handle, which is now handled -no kidding!<br>";
    }
     
    function secure_handler(){
        $this->handled_event();
    }
}