Meta.php
00001 <?php
00009 class Dsao_Log_Writer_Meta extends Zend_Log_Writer_Abstract
00010 {
00014 const NAMESPACE = '::errors';
00015
00019 protected $_events = array();
00020
00021 public function __construct()
00022 {
00023
00024 parent::addFilter(3);
00025 }
00026
00033 protected function _write($event)
00034 {
00035
00036 if (!isset($this->_events[self::NAMESPACE]))
00037 {
00038 $this->_events[self::NAMESPACE] = 0;
00039 }
00040
00041 $this->_events[self::NAMESPACE]++;
00042
00043
00044 if (!isset($event['namespace'])
00045 || null === $event['namespace'])
00046 {
00047 return;
00048 }
00049
00050
00051 $namespace = explode('::', $event['namespace'], 2);
00052
00053
00054 if (!isset($this->_events[$namespace[0]]))
00055 {
00056 $this->_events[$namespace[0]] = array();
00057 $this->_events[$namespace[0]][self::NAMESPACE] = 0;
00058 }
00059
00060 $this->_events[$namespace[0]][self::NAMESPACE]++;
00061
00062
00063 if (isset($namespace[1]) && $namespace[1])
00064 {
00065
00066 if (!isset($this->_events[$namespace[0]][$namespace[1]]))
00067 {
00068 $this->_events[$namespace[0]][$namespace[1]] = 0;
00069 }
00070
00071 $this->_events[$namespace[0]][$namespace[1]]++;
00072 }
00073 }
00074
00082 public function addFilter($filter)
00083 {
00084 return;
00085 }
00086
00094 public function hasError($namespace = null)
00095 {
00096
00097
00098 if (null === $namespace)
00099 {
00100 return (isset($this->_events[self::NAMESPACE]) ?
00101 $this->_events[self::NAMESPACE] : 0);
00102 }
00103
00104 $namespace = explode('::', $namespace, 2);
00105
00106
00107 $subspace = (isset($namespace[1]) ? $namespace[1] : self::NAMESPACE);
00108
00109 return (isset($this->_events[$namespace[0]][$subspace]) ?
00110 $this->_events[$namespace[0]][$subspace] : 0);
00111 }
00112 }