note 49108 added to ref.overload
| From: | evert at rooftopsolutions dot nl | Date: | Mon, 17 Jan 2005 05:46:33 +0000 |
| Subject: | note 49108 added to ref.overload | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-83475@lists.php.net to get a copy of this message | ||
I use the overloader to perform a method-level permission check for objects
<?
class MyClass {
function method1() {
// .... //
}
function method2() {
// .... //
}
}
class ObjectProtector {
var $obj;
function ObjectProtector(&$object) {
$this->obj =& $object;
}
function __call($m,$a,&$r) {
if (myPermissionChecker(...)) {
$r = call_user_func_array(array($this->obj,$m),$a);
return true;
} else return false;
}
}
overload('ObjectProtector');
// Create your object
$myObj = new MyClass;
// Prodect your object
$myProtectedObj = new ObjectProtector($myObj);
//call your methods trough $myProtectedObj
$myProtectedObj->method1();
$myProtectedObj->method2('arguments');
?>
I'm not sure this is bad practice, but the engine allows it and it seems right.
----
Manual Page -- http://www.php.net/manual/en/ref.overload.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+49108
Delete -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+49108&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+49108&report=yes
Search -- http://master.php.net/manage/user-notes.php