作者:jiangyu740
项目:notificatio
/**
* @param mixed $var
*/
function appendLog($var)
{
static $handler = null;
if ($handler === null) {
$logDir = LOG_DIR;
assert(is_dir($logDir), 'log dir "' . $logDir . '" must be a dir');
$logDir .= '/' . date('Ymd');
if (!is_dir($logDir)) {
$success = mkdir($logDir);
assert($success, 'log dir create failed: ' . $logDir . ': ' . json_encode(error_get_last()));
}
$logFile = $logDir . '/' . GAME_VERSION;
$cloner = new VarCloner();
$dumper = new CliDumper($logFile);
$handler = function ($var) use($cloner, $dumper) {
$dumper->dump($cloner->cloneVar($var));
};
}
$origHandler = VarDumper::setHandler($handler);
VarDumper::dump(date('c'));
foreach (func_get_args() as $var) {
VarDumper::dump($var);
}
VarDumper::setHandler($origHandler);
}
作者:ycerut
项目:symfon
public function testCloneVarStringWithScheme()
{
$c = new CloneVarDataCollector('scheme://foo');
$c->collect(new Request(), new Response());
$cloner = new VarCloner();
$this->assertEquals($cloner->cloneVar('scheme://foo'), $c->getData());
}
作者:ayoa
项目:symfon
public function testCollect()
{
$c = new RequestDataCollector();
$c->collect($request = $this->createRequest(), $this->createResponse());
$cloner = new VarCloner();
$attributes = $c->getRequestAttributes();
$this->assertSame('request', $c->getName());
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\HeaderBag', $c->getRequestHeaders());
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\ParameterBag', $c->getRequestServer());
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\ParameterBag', $c->getRequestCookies());
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\ParameterBag', $attributes);
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\ParameterBag', $c->getRequestRequest());
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\ParameterBag', $c->getRequestQuery());
$this->assertSame('html', $c->getFormat());
$this->assertEquals('foobar', $c->getRoute());
$this->assertEquals($cloner->cloneVar(array('name' => 'foo')), $c->getRouteParams());
$this->assertSame(array(), $c->getSessionAttributes());
$this->assertSame('en', $c->getLocale());
$this->assertEquals($cloner->cloneVar($request->attributes->get('resource')), $attributes->get('resource'));
$this->assertEquals($cloner->cloneVar($request->attributes->get('object')), $attributes->get('object'));
$this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\HeaderBag', $c->getResponseHeaders());
$this->assertSame('OK', $c->getStatusText());
$this->assertSame(200, $c->getStatusCode());
$this->assertSame('application/json', $c->getContentType());
}
作者:bol
项目:bol
/**
* {@inheritdoc}
*/
public function register(Application $app)
{
$app['dump'] = $app->protect(function ($var) use($app) {
if (!$app['debug']) {
return;
}
$app['dumper']->dump($app['dumper.cloner']->cloneVar($var));
});
VarDumper::setHandler(function ($var) use($app) {
/*
* Referencing $app['dump'] in anonymous function
* so the closure can be replaced in $app without
* breaking the reference here.
*/
return $app['dump']($var);
});
$app['dumper'] = $app->share(function ($app) {
return PHP_SAPI === 'cli' ? $app['dumper.cli'] : $app['dumper.html'];
});
$app['dumper.cli'] = $app->share(function () {
return new CliDumper();
});
$app['dumper.html'] = $app->share(function () {
return new HtmlDumper();
});
$app['dumper.cloner'] = $app->share(function () {
$cloner = new VarCloner();
$cloner->addCasters(Caster\FilesystemCasters::getCasters());
return $cloner;
});
}
作者:view-component
项目:view-component
/**
* Renders data.
*
* @return string
*/
public function render()
{
$cloner = new VarCloner();
$dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
$output = fopen('php://memory', 'r+b');
$dumper->dump($cloner->cloneVar($this->getData()), $output);
return stream_get_contents($output, -1, 0);
}
作者:groove
项目:framewor
public function boot(Application $app)
{
VarDumper::setHandler(function ($var) {
$cloner = new VarCloner();
$dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
$dumper->dump($cloner->cloneVar($var));
});
}
作者:ninsu
项目:GenyBundl
public function geny_dump($data)
{
$stream = fopen('php://memory', 'r+b');
$dumper = new HtmlDumper($stream);
$cloner = new VarCloner();
$dumper->dump($cloner->cloneVar($data));
rewind($stream);
return stream_get_contents($stream);
}
作者:vomasmi
项目:symfon
public static function dump($var)
{
if (null === self::$handler) {
$cloner = new VarCloner();
$dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
self::$handler = function ($var) use($cloner, $dumper) {
$dumper->dump($cloner->cloneVar($var));
};
}
return call_user_func(self::$handler, $var);
}
作者:EnmanuelCod
项目:backend-larave
private function getVarDumperDump($data)
{
$h = fopen('php://memory', 'r+b');
$cloner = new VarCloner();
$dumper = new CliDumper($h);
$dumper->setColors(false);
$dumper->dump($cloner->cloneVar($data)->withRefHandles(false));
$data = stream_get_contents($h, -1, 0);
fclose($h);
return rtrim($data);
}
作者:gloob
项目:debug-bundl
/**
* {@inheritdoc}
*/
public function format($response)
{
$temp = tmpfile();
$cloner = new VarCloner();
$dumper = new CliDumper($temp);
$dumper->dump($cloner->cloneVar($response));
fseek($temp, 0);
$response = stream_get_contents($temp);
fclose($temp);
return $response;
}
作者:xiaoguizhida
项目:EasyAdminBundl
/**
* It dumps the contents of the given variable. It tries several dumpers in
* turn (VarDumper component, Yaml::dump, etc.) and if none is available, it
* falls back to PHP's var_export().
*
* @param mixed $variable
*
* @return string
*/
public function dump($variable)
{
if (class_exists('Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper')) {
$cloner = new VarCloner();
$dumper = new HtmlDumper();
return $dumper->dump($cloner->cloneVar($variable));
} elseif (class_exists('Symfony\\Component\\Yaml\\Yaml')) {
return sprintf('<pre class="sf-dump">%s</pre>', Yaml::dump((array) $variable, 1024));
} else {
return sprintf('<pre class="sf-dump">%s</pre>', var_export($variable, true));
}
}
作者:k1lo
项目:exceptio
public static function dumper($obj)
{
ob_start();
$cloner = new VarCloner();
$dumper = new HtmlDumper();
self::$handler = function ($obj) use($cloner, $dumper) {
$dumper->dump($cloner->cloneVar($obj));
};
call_user_func(self::$handler, $obj);
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}
作者:Ener-Getic
项目:symfon
protected function getDump($data)
{
$flags = getenv('DUMP_LIGHT_ARRAY') ? CliDumper::DUMP_LIGHT_ARRAY : 0;
$flags |= getenv('DUMP_STRING_LENGTH') ? CliDumper::DUMP_STRING_LENGTH : 0;
$h = fopen('php://memory', 'r+b');
$cloner = new VarCloner();
$cloner->setMaxItems(-1);
$dumper = new CliDumper($h, null, $flags);
$dumper->setColors(false);
$dumper->dump($cloner->cloneVar($data)->withRefHandles(false));
$data = stream_get_contents($h, -1, 0);
fclose($h);
return rtrim($data);
}
作者:symfon
项目:symfon
public function testCollect()
{
$cloner = new VarCloner();
$collectedMessages = array(array('id' => 'foo', 'translation' => 'foo (en)', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_DEFINED, 'parameters' => array(), 'transChoiceNumber' => null), array('id' => 'bar', 'translation' => 'bar (fr)', 'locale' => 'fr', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK, 'parameters' => array(), 'transChoiceNumber' => null), array('id' => 'choice', 'translation' => 'choice', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_MISSING, 'parameters' => array('%count%' => 3), 'transChoiceNumber' => 3), array('id' => 'choice', 'translation' => 'choice', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_MISSING, 'parameters' => array('%count%' => 3), 'transChoiceNumber' => 3), array('id' => 'choice', 'translation' => 'choice', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_MISSING, 'parameters' => array('%count%' => 4, '%foo%' => 'bar'), 'transChoiceNumber' => 4));
$expectedMessages = array(array('id' => 'foo', 'translation' => 'foo (en)', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_DEFINED, 'count' => 1, 'parameters' => array(), 'transChoiceNumber' => null), array('id' => 'bar', 'translation' => 'bar (fr)', 'locale' => 'fr', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK, 'count' => 1, 'parameters' => array(), 'transChoiceNumber' => null), array('id' => 'choice', 'translation' => 'choice', 'locale' => 'en', 'domain' => 'messages', 'state' => DataCollectorTranslator::MESSAGE_MISSING, 'count' => 3, 'parameters' => array($cloner->cloneVar(array('%count%' => 3)), $cloner->cloneVar(array('%count%' => 3)), $cloner->cloneVar(array('%count%' => 4, '%foo%' => 'bar'))), 'transChoiceNumber' => 3));
$translator = $this->getTranslator();
$translator->expects($this->any())->method('getCollectedMessages')->will($this->returnValue($collectedMessages));
$dataCollector = new TranslationDataCollector($translator);
$dataCollector->lateCollect();
$this->assertEquals(1, $dataCollector->getCountMissings());
$this->assertEquals(1, $dataCollector->getCountFallbacks());
$this->assertEquals(1, $dataCollector->getCountDefines());
$this->assertEquals($expectedMessages, array_values($dataCollector->getMessages()));
}
作者:ayoa
项目:symfon
protected function getDump($data, $key = null)
{
$flags = getenv('DUMP_LIGHT_ARRAY') ? CliDumper::DUMP_LIGHT_ARRAY : 0;
$flags |= getenv('DUMP_STRING_LENGTH') ? CliDumper::DUMP_STRING_LENGTH : 0;
$cloner = new VarCloner();
$cloner->setMaxItems(-1);
$dumper = new CliDumper(null, null, $flags);
$dumper->setColors(false);
$data = $cloner->cloneVar($data)->withRefHandles(false);
if (null !== $key && null === ($data = $data->seek($key))) {
return;
}
return rtrim($dumper->dump($data, true));
}
作者:SMFlori
项目:EasyAdminBundl
/**
* It dumps the contents of the given variable. It tries several dumpers in
* turn (VarDumper component, Yaml::dump, etc.) and if none is available, it
* falls back to PHP's var_export().
*
* @param mixed $variable
*
* @return string
*/
public function dump($variable)
{
$dumpedData = '';
if (class_exists('Symfony\\Component\\VarDumper\\Dumper\\HtmlDumper')) {
$cloner = new VarCloner();
$dumper = new HtmlDumper();
$dumper->dump($cloner->cloneVar($variable), $output = fopen('php://memory', 'r+b'));
$dumpedData = stream_get_contents($output, -1, 0);
} elseif (class_exists('Symfony\\Component\\Yaml\\Yaml')) {
$dumpedData = sprintf('<pre class="sf-dump">%s</pre>', Yaml::dump((array) $variable, 1024));
} else {
$dumpedData = sprintf('<pre class="sf-dump">%s</pre>', var_export($variable, true));
}
return $dumpedData;
}
作者:jeremycherfa
项目:grav-blo
/**
* Format the given value into a human readable string.
*
* @param mixed $value
* @return string
*/
public function dump($value)
{
if (class_exists('Symfony\\Component\\VarDumper\\Cloner\\VarCloner')) {
static $dumper = null;
// re-use the same var-dumper instance, so it won't re-render the global styles/scripts on each dump.
if (!$dumper) {
$dumper = new HtmlDumper();
$styles = array('default' => '', 'num' => '', 'const' => '', 'str' => '', 'note' => '', 'ref' => '', 'public' => '', 'protected' => '', 'private' => '', 'meta' => '', 'key' => '', 'index' => '');
$dumper->setStyles($styles);
}
$cloner = new VarCloner();
return $dumper->dump($cloner->cloneVar($value));
}
return print_r($value, true);
}
作者:d-m
项目:bol
/**
* {@inheritdoc}
*/
public function register(Application $app)
{
$app['dump'] = $app->protect(function ($var) use($app) {
$app['dumper']->dump($app['dumper.cloner']->cloneVar($var));
});
VarDumper::setHandler($app['dump']);
$app['dumper'] = $app->share(function ($app) {
return PHP_SAPI === 'cli' ? $app['dumper.cli'] : $app['dumper.html'];
});
$app['dumper.cli'] = $app->share(function () {
return new CliDumper();
});
$app['dumper.html'] = $app->share(function () {
return new HtmlDumper();
});
$app['dumper.cloner'] = $app->share(function () {
$cloner = new VarCloner();
$cloner->addCasters(Caster\FilesystemCasters::getCasters());
return $cloner;
});
}
作者:jeromemacia
项目:silex-debu
public function register(Container $app)
{
$app['var_dumper.cloner'] = function ($app) {
$cloner = new VarCloner();
if (isset($app['debug.max_items'])) {
$cloner->setMaxItems($app['debug.max_items']);
}
if (isset($app['debug.max_string_length'])) {
$cloner->setMaxString($app['debug.max_string_length']);
}
return $cloner;
};
$app['data_collector.templates'] = $app->extend('data_collector.templates', function ($templates) {
$templates[] = array('dump', '@Debug/Profiler/dump.html.twig');
return $templates;
});
$app['data_collector.dump'] = function ($app) {
return new DumpDataCollector($app['stopwatch'], $app['code.file_link_format']);
};
$app->extend('data_collectors', function ($collectors, $app) {
$collectors['dump'] = function ($app) {
return $app['data_collector.dump'];
};
return $collectors;
});
$app->extend('twig', function ($twig, $app) {
if (class_exists('\\Symfony\\Bridge\\Twig\\Extension\\DumpExtension')) {
$twig->addExtension(new DumpExtension($app['var_dumper.cloner']));
}
return $twig;
});
$app->extend('twig.loader.filesystem', function ($loader, $app) {
$loader->addPath($app['debug.templates_path'], 'Debug');
return $loader;
});
$app['debug.templates_path'] = function () {
$r = new \ReflectionClass('Symfony\\Bundle\\DebugBundle\\DependencyInjection\\Configuration');
return dirname(dirname($r->getFileName())) . '/Resources/views';
};
}
作者:paradajozse
项目:symfon
/**
* Converts the variable into a serializable Data instance.
*
* @param mixed $var
*
* @return Data
*/
private function cloneVar($var)
{
if (null === $this->cloner) {
$this->cloner = new VarCloner();
$this->cloner->addCasters(array(Stub::class => function (Stub $v, array $a, Stub $s, $isNested) {
return $isNested ? $a : StubCaster::castStub($v, $a, $s, true);
}, \Exception::class => function (\Exception $e, array $a, Stub $s) {
if (isset($a[$k = "Exceptionprevious"])) {
unset($a[$k]);
++$s->cut;
}
return $a;
}, FormInterface::class => function (FormInterface $f, array $a) {
return array(Caster::PREFIX_VIRTUAL . 'name' => $f->getName(), Caster::PREFIX_VIRTUAL . 'type_class' => new ClassStub(get_class($f->getConfig()->getType()->getInnerType())));
}, ConstraintViolationInterface::class => function (ConstraintViolationInterface $v, array $a) {
return array(Caster::PREFIX_VIRTUAL . 'root' => $v->getRoot(), Caster::PREFIX_VIRTUAL . 'path' => $v->getPropertyPath(), Caster::PREFIX_VIRTUAL . 'value' => $v->getInvalidValue());
}));
}
return $this->cloner->cloneVar($var);
}