You are here

class StringUtil in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php \Prophecy\Util\StringUtil

String utility.

@author Konstantin Kudryashov <ever.zet@gmail.com>

Hierarchy

Expanded class hierarchy of StringUtil

8 files declare their use of StringUtil
CallCenter.php in vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php
CallPrediction.php in vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php
CallTimesPrediction.php in vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php
ExactValueToken.php in vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php
IdenticalValueToken.php in vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php

... See full list

File

vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php, line 21

Namespace

Prophecy\Util
View source
class StringUtil {

  /**
   * Stringifies any provided value.
   *
   * @param mixed   $value
   * @param boolean $exportObject
   *
   * @return string
   */
  public function stringify($value, $exportObject = true) {
    if (is_array($value)) {
      if (range(0, count($value) - 1) === array_keys($value)) {
        return '[' . implode(', ', array_map(array(
          $this,
          __FUNCTION__,
        ), $value)) . ']';
      }
      $stringify = array(
        $this,
        __FUNCTION__,
      );
      return '[' . implode(', ', array_map(function ($item, $key) use ($stringify) {
        return (is_integer($key) ? $key : '"' . $key . '"') . ' => ' . call_user_func($stringify, $item);
      }, $value, array_keys($value))) . ']';
    }
    if (is_resource($value)) {
      return get_resource_type($value) . ':' . $value;
    }
    if (is_object($value)) {
      return $exportObject ? ExportUtil::export($value) : sprintf('%s:%s', get_class($value), spl_object_hash($value));
    }
    if (true === $value || false === $value) {
      return $value ? 'true' : 'false';
    }
    if (is_string($value)) {
      $str = sprintf('"%s"', str_replace("\n", '\\n', $value));
      if (50 <= strlen($str)) {
        return substr($str, 0, 50) . '"...';
      }
      return $str;
    }
    if (null === $value) {
      return 'null';
    }
    return (string) $value;
  }

  /**
   * Stringifies provided array of calls.
   *
   * @param Call[] $calls Array of Call instances
   *
   * @return string
   */
  public function stringifyCalls(array $calls) {
    $self = $this;
    return implode(PHP_EOL, array_map(function (Call $call) use ($self) {
      return sprintf('  - %s(%s) @ %s', $call
        ->getMethodName(), implode(', ', array_map(array(
        $self,
        'stringify',
      ), $call
        ->getArguments())), str_replace(GETCWD() . DIRECTORY_SEPARATOR, '', $call
        ->getCallPlace()));
    }, $calls));
  }

}

Members

Namesort descending Modifiers Type Description Overrides
StringUtil::stringify public function Stringifies any provided value.
StringUtil::stringifyCalls public function Stringifies provided array of calls.