* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\DataCollector; /** * DataCollector. * * Children of this class must store the collected data in the data property. * * @author Fabien Potencier */ abstract class DataCollector implements DataCollectorInterface, \Serializable { protected $data; public function serialize() { return serialize($this->data); } public function unserialize($data) { $this->data = unserialize($data); } /** * Converts a PHP variable to a string. * * @param mixed $var A PHP variable * * @return string The string representation of the variable */ protected function varToString($var) { if (is_object($var)) { return sprintf('Object(%s)', get_class($var)); } if ($var instanceof \__PHP_Incomplete_Class) { return sprintf('__PHP_Incomplete_Class(%s)', $this->getClassNameFromIncomplete($var)); } if (is_array($var)) { $a = array(); foreach ($var as $k => $v) { $a[] = sprintf('%s => %s', $k, $this->varToString($v)); } return sprintf('Array(%s)', implode(', ', $a)); } if (is_resource($var)) { return sprintf('Resource(%s#%d)', get_resource_type($var), $var); } if (null === $var) { return 'null'; } if (false === $var) { return 'false'; } if (true === $var) { return 'true'; } return (string) $var; } private function getClassNameFromIncomplete(\__PHP_Incomplete_Class $var) { $array = new \ArrayObject($var); return $array['__PHP_Incomplete_Class_Name']; } }