*/
abstract public function log($action, $data = null);
+ /** Check validity of the logger.
+ *
+ * @param $uid the uid of the current session.
+ * @return TRUE if the logger can still be used.
+ */
+ abstract public function isValid($uid);
+
/** Build a logger.
*/
public static function get($uid, $suid = 0)
return new DummyLogger($uid, $suid);
}
}
+
+ /** Return a dummy logger.
+ */
+ public static function dummy($uid, $suid = 0) {
+ return new DummyLogger($uid, $suid);
+ }
}
class DummyLogger extends PlLogger
{
+ private $uid;
+
public function __construct($uid, $suid = 0)
{
+ $this->uid = $uid;
}
public function log($action, $data = null)
{
}
+
+ public function isValid($uid)
+ {
+ return $uid == $this->uid;
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
public static function logger($uid = null)
{
- if (!S::has('log')) {
+ $uid = S::i('uid', $uid);
+ if (!S::has('log') || !S::v('log')->isValid($uid)) {
if (S::has('suid')) {
$suid = S::v('suid');
- S::set('log', PlLogger::get(S::v('uid', $uid), $suid['uid']));
+ S::set('log', PlLogger::get(S::i('uid', $uid), $suid['uid']));
} else if (S::has('uid') || $uid) {
- S::set('log', PlLogger::get(S::v('uid', $uid)));
+ S::set('log', PlLogger::get(S::i('uid', $uid)));
+ } else {
+ S::set('log', PlLogger::dummy($uid));
}
}
return S::v('log');