php事件驱动

1. [文件] class.Dispatcher.php ~ 967B 下载(9)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

<?php

session_start();

require_once('class.Handler_Event.php');

header("Content-type:text/html; charset=utf-8");

classDispatcher{

private$handle;

function__construct($event_handle){

$this->handle=$event_handle;

}

functionhandle_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

functionhandle(){

$event=$_POST['event'];

$do=newDispatcher($event);

$do->handle_the_event();

}

$_SESSION['name']="Wangzy";

if(isset($_POST['event'])) handle();

?>

2. [文件] class.Handler_Event.php ~ 1KB 下载(6)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

<?php

//Event parent

abstractclassEvent_Handler{

functiondbconn(){

$link_id=mysql_connect("localhost","root","root");

mysql_select_db("mytest",$link_id);

mysql_query("set names utf8",$link_id);

return$link_id;

}

abstractfunctionhandled_event();

abstractfunctionsecure_handler();

}

//View Event

classHandler_ViewextendsEvent_Handler{

private$handle;

function__construct($event_handle){

$this->handle=$event_handle;

}

functionhandled_event(){

echo"The event,$this->handle, is now handled.<br>

It is ,I promise!<br><br>

Your records areasfollows:<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>";

}

}

functionsecure_handler(){

if($_SESSION['name']=="Wangzy"){

$this->handled_event();

}else{

echo"Sorry {$_SESSION['name']} you are not authorized!";

}

}

}

//Edit Event

classHandler_EditextendsEvent_Handler{

private$handle;

function__construct($event_handle){

$this->handle=$event_handle;

}

functionhandled_event(){

echo"This is event $this->handle, which is now handled -no kidding!<br>";

}

functionsecure_handler(){

$this->handled_event();

}

}