本文整理匯總了PHP中Nette\PhpGenerator\Helpers::dump方法的典型用法代碼示例。如果您正苦於以下問題:PHP Helpers::dump方法的具體用法?PHP Helpers::dump怎麽用?PHP Helpers::dump使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Nette\PhpGenerator\Helpers
的用法示例。
在下文中一共展示了Helpers::dump方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: write
/**
* @param string $content
* @param string $id
*/
protected function write($content, $id)
{
$content = is_string($content) ? $content : Code\Helpers::dump($content);
$file = $this->logDir . '/curl_' . @date('Y-m-d-H-i-s') . '_' . $id . '.dat';
foreach (Nette\Utils\Finder::findFiles("curl_*_{$id}.dat")->in($this->logDir) as $item) {
/** @var \SplFileInfo $item */
$file = $item->getRealpath();
}
if (!@file_put_contents($file, $content, FILE_APPEND)) {
Debugger::log("Logging to {$file} failed.");
}
}
示例2: __toString
/**
* @return string PHP code
*/
public function __toString()
{
$parameters = array();
foreach ($this->parameters as $param) {
$variadic = $this->variadic && $param === end($this->parameters);
$hint = in_array($param->getTypeHint(), array('array', '')) ? $param->getTypeHint() : ($this->namespace ? $this->namespace->unresolveName($param->getTypeHint()) : $param->getTypeHint());
$parameters[] = ($hint ? $hint . ' ' : '') . ($param->isReference() ? '&' : '') . ($variadic ? '...' : '') . '$' . $param->getName() . ($param->isOptional() && !$variadic ? ' = ' . Helpers::dump($param->defaultValue) : '');
}
$uses = array();
foreach ($this->uses as $param) {
$uses[] = ($param->isReference() ? '&' : '') . '$' . $param->getName();
}
return ($this->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", (array) $this->documents)) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . ($this->visibility ? $this->visibility . ' ' : '') . ($this->static ? 'static ' : '') . 'function' . ($this->returnReference ? ' &' : '') . ($this->name ? ' ' . $this->name : '') . '(' . implode(', ', $parameters) . ')' . ($this->uses ? ' use (' . implode(', ', $uses) . ')' : '') . ($this->abstract || $this->body === FALSE ? ';' : ($this->name ? "\n" : ' ') . "{\n" . Nette\Utils\Strings::indent(trim($this->body), 1) . "\n}");
}
示例3: __toString
/**
* @return string PHP code
*/
public function __toString() : string
{
$parameters = [];
foreach ($this->parameters as $param) {
$variadic = $this->variadic && $param === end($this->parameters);
$hint = $this->namespace ? $this->namespace->unresolveName((string) $param->getTypeHint()) : $param->getTypeHint();
$parameters[] = ($hint ? $hint . ' ' : '') . ($param->isReference() ? '&' : '') . ($variadic ? '...' : '') . '$' . $param->getName() . ($param->isOptional() && !$variadic ? ' = ' . Helpers::dump($param->defaultValue) : '');
}
$uses = [];
foreach ($this->uses as $param) {
$uses[] = ($param->isReference() ? '&' : '') . '$' . $param->getName();
}
$returnType = $this->namespace ? $this->namespace->unresolveName((string) $this->returnType) : $this->returnType;
return ($this->comment ? str_replace("\n", "\n * ", "/**\n" . $this->comment) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . ($this->visibility ? $this->visibility . ' ' : '') . ($this->static ? 'static ' : '') . 'function' . ($this->returnReference ? ' &' : '') . ' ' . $this->name . '(' . implode(', ', $parameters) . ')' . ($this->uses ? ' use (' . implode(', ', $uses) . ')' : '') . ($returnType ? ': ' . $returnType : '') . ($this->abstract || $this->body === FALSE ? ';' : ($this->name ? "\n" : ' ') . "{\n" . Nette\Utils\Strings::indent(ltrim(rtrim($this->body) . "\n"), 1) . '}');
}
示例4: __toString
/**
* @return string PHP code
*/
public function __toString()
{
$consts = array();
foreach ($this->consts as $name => $value) {
$consts[] = "const {$name} = " . Helpers::dump($value) . ";\n";
}
$properties = array();
foreach ($this->properties as $property) {
$doc = str_replace("\n", "\n * ", implode("\n", $property->getDocuments()));
$properties[] = ($property->getDocuments() ? strpos($doc, "\n") === FALSE ? "/** {$doc} */\n" : "/**\n * {$doc}\n */\n" : '') . $property->getVisibility() . ($property->isStatic() ? ' static' : '') . ' $' . $property->getName() . ($property->value === NULL ? '' : ' = ' . Helpers::dump($property->value)) . ";\n";
}
$namespace = $this->namespace;
$mapper = function (array $arr) use($namespace) {
return $namespace ? array_map(array($namespace, 'unresolveName'), $arr) : $arr;
};
return Strings::normalize(($this->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", $this->documents)) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . $this->type . ' ' . $this->name . ' ' . ($this->extends ? 'extends ' . implode(', ', $mapper((array) $this->extends)) . ' ' : '') . ($this->implements ? 'implements ' . implode(', ', $mapper($this->implements)) . ' ' : '') . "\n{\n" . Strings::indent(($this->traits ? 'use ' . implode(";\nuse ", $mapper($this->traits)) . ";\n\n" : '') . ($this->consts ? implode('', $consts) . "\n" : '') . ($this->properties ? implode("\n", $properties) . "\n" : '') . ($this->methods ? "\n" . implode("\n\n\n", $this->methods) . "\n\n" : ''), 1) . '}') . "\n";
}
示例5: formatStatement
/**
* Formats PHP code for class instantiating, function calling or property setting in PHP.
* @return string
* @internal
*/
public function formatStatement(Statement $statement)
{
$entity = $this->normalizeEntity($statement->getEntity());
$arguments = $statement->arguments;
if (is_string($entity) && Strings::contains($entity, '?')) {
// PHP literal
return $this->formatPhp($entity, $arguments);
} elseif ($service = $this->getServiceName($entity)) {
// factory calling
$params = [];
foreach ($this->definitions[$service]->parameters as $k => $v) {
$params[] = preg_replace('#\\w+\\z#', '\\$$0', is_int($k) ? $v : $k) . (is_int($k) ? '' : ' = ' . PhpHelpers::dump($v));
}
$rm = new \ReflectionFunction(create_function(implode(', ', $params), ''));
$arguments = Helpers::autowireArguments($rm, $arguments, $this);
return $this->formatPhp('$this->?(?*)', [Container::getMethodName($service), $arguments]);
} elseif ($entity === 'not') {
// operator
return $this->formatPhp('!?', [$arguments[0]]);
} elseif (is_string($entity)) {
// class name
if ($constructor = (new ReflectionClass($entity))->getConstructor()) {
$this->addDependency((string) $constructor->getFileName());
$arguments = Helpers::autowireArguments($constructor, $arguments, $this);
} elseif ($arguments) {
throw new ServiceCreationException("Unable to pass arguments, class {$entity} has no constructor.");
}
return $this->formatPhp("new {$entity}" . ($arguments ? '(?*)' : ''), [$arguments]);
} elseif (!Nette\Utils\Arrays::isList($entity) || count($entity) !== 2) {
throw new ServiceCreationException(sprintf('Expected class, method or property, %s given.', PhpHelpers::dump($entity)));
} elseif (!preg_match('#^\\$?' . PhpHelpers::PHP_IDENT . '\\z#', $entity[1])) {
throw new ServiceCreationException("Expected function, method or property name, '{$entity['1']}' given.");
} elseif ($entity[0] === '') {
// globalFunc
return $this->formatPhp("{$entity['1']}(?*)", [$arguments]);
} elseif ($entity[0] instanceof Statement) {
$inner = $this->formatPhp('?', [$entity[0]]);
if (substr($inner, 0, 4) === 'new ') {
$inner = "({$inner})";
}
return $this->formatPhp("{$inner}->?(?*)", [$entity[1], $arguments]);
} elseif (Strings::contains($entity[1], '$')) {
// property setter
Validators::assert($arguments, 'list:1', "setup arguments for '" . Nette\Utils\Callback::toString($entity) . "'");
if ($this->getServiceName($entity[0])) {
return $this->formatPhp('?->? = ?', [$entity[0], substr($entity[1], 1), $arguments[0]]);
} else {
return $this->formatPhp($entity[0] . '::$? = ?', [substr($entity[1], 1), $arguments[0]]);
}
} elseif ($service = $this->getServiceName($entity[0])) {
// service method
$class = $this->definitions[$service]->getImplement();
if (!$class || !method_exists($class, $entity[1])) {
$class = $this->definitions[$service]->getClass();
}
if ($class) {
$arguments = $this->autowireArguments($class, $entity[1], $arguments);
}
return $this->formatPhp('?->?(?*)', [$entity[0], $entity[1], $arguments]);
} else {
// static method
$arguments = $this->autowireArguments($entity[0], $entity[1], $arguments);
return $this->formatPhp("{$entity['0']}::{$entity['1']}(?*)", [$arguments]);
}
}
示例6: __toString
/**
* @return string PHP code
*/
public function __toString()
{
$consts = array();
foreach ($this->consts as $name => $value) {
$consts[] = "const {$name} = " . Helpers::dump($value) . ";\n";
}
$properties = array();
foreach ($this->properties as $property) {
$doc = str_replace("\n", "\n * ", implode("\n", (array) $property->getDocuments()));
$properties[] = ($property->getDocuments() ? strpos($doc, "\n") === FALSE ? "/** {$doc} */\n" : "/**\n * {$doc}\n */\n" : '') . $property->getVisibility() . ($property->isStatic() ? ' static' : '') . ' $' . $property->getName() . ($property->value === NULL ? '' : ' = ' . Helpers::dump($property->value)) . ";\n";
}
$extends = $implements = $traits = array();
if ($this->namespace) {
foreach ((array) $this->extends as $name) {
$extends[] = $this->namespace->unresolveName($name);
}
foreach ((array) $this->implements as $name) {
$implements[] = $this->namespace->unresolveName($name);
}
foreach ((array) $this->traits as $name) {
$traits[] = $this->namespace->unresolveName($name);
}
} else {
$extends = (array) $this->extends;
$implements = (array) $this->implements;
$traits = (array) $this->traits;
}
foreach ($this->methods as $method) {
$method->setNamespace($this->namespace);
}
return Strings::normalize(($this->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", (array) $this->documents)) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . $this->type . ' ' . $this->name . ' ' . ($this->extends ? 'extends ' . implode(', ', $extends) . ' ' : '') . ($this->implements ? 'implements ' . implode(', ', $implements) . ' ' : '') . "\n{\n\n" . Strings::indent(($this->traits ? 'use ' . implode(', ', $traits) . ";\n\n" : '') . ($this->consts ? implode('', $consts) . "\n\n" : '') . ($this->properties ? implode("\n", $properties) . "\n\n" : '') . implode("\n\n\n", $this->methods), 1) . "\n\n}") . "\n";
}
示例7: __toString
/** @return string PHP code */
public function __toString()
{
$consts = array();
foreach ($this->consts as $name => $value) {
$consts[] = "const {$name} = " . Helpers::dump($value) . ";\n";
}
$properties = array();
foreach ($this->properties as $property) {
$properties[] = ($property->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", (array) $property->documents)) . "\n */\n" : '') . $property->visibility . ($property->static ? ' static' : '') . ' $' . $property->name . ($property->value === NULL ? '' : ' = ' . Helpers::dump($property->value)) . ";\n";
}
return Strings::normalize(($this->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", (array) $this->documents)) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . $this->type . ' ' . $this->name . ' ' . ($this->extends ? 'extends ' . implode(', ', (array) $this->extends) . ' ' : '') . ($this->implements ? 'implements ' . implode(', ', (array) $this->implements) . ' ' : '') . "\n{\n\n" . Strings::indent(($this->traits ? "use " . implode(', ', (array) $this->traits) . ";\n\n" : '') . ($this->consts ? implode('', $consts) . "\n\n" : '') . ($this->properties ? implode("\n", $properties) . "\n\n" : '') . implode("\n\n\n", $this->methods), 1) . "\n\n}") . "\n";
}
示例8: __toString
/** @return string PHP code */
public function __toString()
{
$parameters = array();
foreach ($this->parameters as $param) {
$parameters[] = ($param->typeHint ? $param->typeHint . ' ' : '') . ($param->reference ? '&' : '') . '$' . $param->name . ($param->optional ? ' = ' . Helpers::dump($param->defaultValue) : '');
}
$uses = array();
foreach ($this->uses as $param) {
$uses[] = ($param->reference ? '&' : '') . '$' . $param->name;
}
return ($this->documents ? str_replace("\n", "\n * ", "/**\n" . implode("\n", (array) $this->documents)) . "\n */\n" : '') . ($this->abstract ? 'abstract ' : '') . ($this->final ? 'final ' : '') . ($this->visibility ? $this->visibility . ' ' : '') . ($this->static ? 'static ' : '') . 'function' . ($this->returnReference ? ' &' : '') . ($this->name ? ' ' . $this->name : '') . '(' . implode(', ', $parameters) . ')' . ($this->uses ? ' use (' . implode(', ', $uses) . ')' : '') . ($this->abstract || $this->body === FALSE ? ';' : ($this->name ? "\n" : ' ') . "{\n" . Nette\Utils\Strings::indent(trim($this->body), 1) . "\n}");
}
示例9: dump
/**
* Generates configuration in PHP format.
* @return string
*/
public function dump(array $data)
{
return "<?php // generated by Nette \nreturn " . Nette\PhpGenerator\Helpers::dump($data) . ';';
}
示例10: renderException
/**
* @param \Exception|RedisClientException $e
*
* @return array
*/
public static function renderException($e)
{
if ($e instanceof RedisClientException) {
$panel = NULL;
if ($e->request) {
$panel .= '<h3>Redis Request</h3>' . '<pre class="nette-dump"><span class="php-string">' . nl2br(htmlSpecialChars(implode(' ', $e->request))) . '</span></pre>';
}
if ($e->response) {
$response = Code\Helpers::dump($e->response);
$panel .= '<h3>Redis Response (' . strlen($e->response) . ')</h3>' . '<pre class="nette-dump"><span class="php-string">' . htmlSpecialChars($response) . '</span></pre>';
}
if ($panel !== NULL) {
$panel = ['tab' => 'Redis Response', 'panel' => $panel];
}
return $panel;
}
}
示例11: formatStatement
/**
* Formats PHP code for class instantiating, function calling or property setting in PHP.
* @return string
* @internal
*/
public function formatStatement(Statement $statement)
{
$entity = $this->normalizeEntity($statement->entity);
$arguments = $statement->arguments;
if (is_string($entity) && Strings::contains($entity, '?')) { // PHP literal
return $this->formatPhp($entity, $arguments);
} elseif ($service = $this->getServiceName($entity)) { // factory calling
$params = array();
foreach ($this->definitions[$service]->parameters as $k => $v) {
$params[] = preg_replace('#\w+\z#', '\$$0', (is_int($k) ? $v : $k)) . (is_int($k) ? '' : ' = ' . PhpHelpers::dump($v));
}
$rm = new Reflection\GlobalFunction(create_function(implode(', ', $params), ''));
$arguments = Helpers::autowireArguments($rm, $arguments, $this);
return $this->formatPhp('$this->?(?*)', array(Container::getMethodName($service), $arguments));
} elseif ($entity === 'not') { // operator
return $this->formatPhp('!?', array($arguments[0]));
} elseif (is_string($entity)) { // class name
if ($constructor = Reflection\ClassType::from($entity)->getConstructor()) {
$this->addDependency($constructor->getFileName());
$arguments = Helpers::autowireArguments($constructor, $arguments, $this);
} elseif ($arguments) {
throw new ServiceCreationException("Unable to pass arguments, class $entity has no constructor.");
}
return $this->formatPhp("new $entity" . ($arguments ? '(?*)' : ''), array($arguments));
} elseif (!Nette\Utils\Arrays::isList($entity) || count($entity) !== 2) {
throw new ServiceCreationException(sprintf('Expected class, method or property, %s given.', PhpHelpers::dump($entity)));
} elseif ($entity[0] === '') { // globalFunc
return $this->formatPhp("$entity[1](?*)", array($arguments));
} elseif (Strings::contains($entity[1], '$')) { // property setter
Validators::assert($arguments, 'list:1', "setup arguments for '" . Nette\Utils\Callback::toString($entity) . "'");
if ($this->getServiceName($entity[0])) {
return $this->formatPhp('?->? = ?', array($entity[0], substr($entity[1], 1), $arguments[0]));
} else {
return $this->formatPhp($entity[0] . '::$? = ?', array(substr($entity[1], 1), $arguments[0]));
}
} elseif ($service = $this->getServiceName($entity[0])) { // service method
$class = $this->definitions[$service]->implement;
if (!$class || !method_exists($class, $entity[1])) {
$class = $this->definitions[$service]->class;
}
if ($class) {
$arguments = $this->autowireArguments($class, $entity[1], $arguments);
}
return $this->formatPhp('?->?(?*)', array($entity[0], $entity[1], $arguments));
} else { // static method
$arguments = $this->autowireArguments($entity[0], $entity[1], $arguments);
return $this->formatPhp("$entity[0]::$entity[1](?*)", array($arguments));
}
}
示例12: completeStatement
/**
* @return Statement
*/
public function completeStatement(Statement $statement)
{
$entity = $this->normalizeEntity($statement->getEntity());
$arguments = $statement->arguments;
if (is_string($entity) && Strings::contains($entity, '?')) {
// PHP literal
} elseif ($service = $this->getServiceName($entity)) {
// factory calling
$params = [];
foreach ($this->definitions[$service]->parameters as $k => $v) {
$params[] = preg_replace('#\\w+\\z#', '\\$$0', is_int($k) ? $v : $k) . (is_int($k) ? '' : ' = ' . PhpHelpers::dump($v));
}
$rm = new \ReflectionFunction(create_function(implode(', ', $params), ''));
$arguments = Helpers::autowireArguments($rm, $arguments, $this);
$entity = '@' . $service;
} elseif ($entity === 'not') {
// operator
} elseif (is_string($entity)) {
// class name
if (!class_exists($entity)) {
throw new ServiceCreationException("Class {$entity} not found.");
} elseif ((new ReflectionClass($entity))->isAbstract()) {
throw new ServiceCreationException("Class {$entity} is abstract.");
} elseif (($rm = (new ReflectionClass($entity))->getConstructor()) !== NULL && !$rm->isPublic()) {
$visibility = $rm->isProtected() ? 'protected' : 'private';
throw new ServiceCreationException("Class {$entity} has {$visibility} constructor.");
} elseif ($constructor = (new ReflectionClass($entity))->getConstructor()) {
$this->addDependency($constructor);
$arguments = Helpers::autowireArguments($constructor, $arguments, $this);
} elseif ($arguments) {
throw new ServiceCreationException("Unable to pass arguments, class {$entity} has no constructor.");
}
} elseif (!Nette\Utils\Arrays::isList($entity) || count($entity) !== 2) {
throw new ServiceCreationException(sprintf('Expected class, method or property, %s given.', PhpHelpers::dump($entity)));
} elseif (!preg_match('#^\\$?' . PhpHelpers::PHP_IDENT . '(\\[\\])?\\z#', $entity[1])) {
throw new ServiceCreationException("Expected function, method or property name, '{$entity['1']}' given.");
} elseif ($entity[0] === '') {
// globalFunc
if (!Nette\Utils\Arrays::isList($arguments)) {
throw new ServiceCreationException("Unable to pass specified arguments to {$entity['0']}.");
} elseif (!function_exists($entity[1])) {
throw new ServiceCreationException("Function {$entity['1']} doesn't exist.");
}
$rf = new \ReflectionFunction($entity[1]);
$this->addDependency($rf);
$arguments = Helpers::autowireArguments($rf, $arguments, $this);
} else {
if ($entity[0] instanceof Statement) {
$entity[0] = $this->completeStatement($entity[0]);
} elseif ($service = $this->getServiceName($entity[0])) {
// service method
$entity[0] = '@' . $service;
}
if ($entity[1][0] === '$') {
// property getter, setter or appender
Validators::assert($arguments, 'list:0..1', "setup arguments for '" . Nette\Utils\Callback::toString($entity) . "'");
if (!$arguments && substr($entity[1], -2) === '[]') {
throw new ServiceCreationException("Missing argument for {$entity['1']}.");
}
} elseif ($class = empty($service) || $entity[1] === 'create' ? $this->resolveEntityClass($entity[0]) : $this->definitions[$service]->getClass()) {
$arguments = $this->autowireArguments($class, $entity[1], $arguments);
}
}
array_walk_recursive($arguments, function (&$val) {
if ($val instanceof Statement) {
$val = $this->completeStatement($val);
} elseif ($val === $this) {
trigger_error("Replace object ContainerBuilder in Statement arguments with '@container'.", E_USER_DEPRECATED);
$val = self::literal('$this');
} elseif ($val instanceof ServiceDefinition) {
$val = '@' . current(array_keys($this->getDefinitions(), $val, TRUE));
} elseif (is_string($val) && strlen($val) > 1 && $val[0] === '@' && $val[1] !== '@') {
$pair = explode('::', $val, 2);
$name = $this->getServiceName($pair[0]);
if (!isset($pair[1])) {
// @service
$val = '@' . $name;
} elseif (preg_match('#^[A-Z][A-Z0-9_]*\\z#', $pair[1], $m)) {
// @service::CONSTANT
$val = self::literal($this->getDefinition($name)->getClass() . '::' . $pair[1]);
} else {
// @service::property
$val = new Statement(['@' . $name, '$' . $pair[1]]);
}
}
});
return new Statement($entity, $arguments);
}