| 
<?php/**
 * This file is part of Soloproyectos common library.
 *
 * @author  Gonzalo Chumillas <gchumillas@email.com>
 * @license https://github.com/soloproyectos/php.common-libs/blob/master/LICENSE BSD 2-Clause License
 * @link    https://github.com/soloproyectos/php.common-libs
 */
 namespace com\soloproyectos\common\debug;
 use \Exception;
 
 trait DebugCapable
 {
 /**
 * Is the class in 'debug-mode'?
 * @var boolean
 */
 private $_isDebugMode = false;
 
 /**
 * Debug handler.
 *
 * @param mixed $object Object to debug
 *
 * @return void
 */
 abstract protected function debugger($object);
 
 /**
 * Debugs an object.
 *
 * @param mixed $object Object to debug
 *
 * @return void
 */
 protected function debug($object)
 {
 if ($this->_isDebugMode) {
 $this->debugger($object);
 }
 }
 
 /**
 * Is the class in 'debug-mode'?
 *
 * @return boolean
 */
 public function isDebugMode()
 {
 return $this->_isDebugMode;
 }
 
 /**
 * Sets the 'debug-mode' property.
 *
 * @param boolean $value Value
 *
 * @return void
 */
 public function setDebugMode($value)
 {
 $this->_isDebugMode = $value;
 }
 }
 
 |