container = $container; } /** * Convert a value to a scalar representation. * * @param mixed $value * @return mixed */ public function toScalar( $value ) { $type = gettype( $value ); if ( ! is_scalar( $value ) ) { $value = '(' . $type . ')' . ( $type === 'object' ? ' ' . get_class( $value ) : '' ); } return $value; } /** * Return printable data about the current route. * * @param \Whoops\Exception\Inspector $inspector * @return array */ public function route( $inspector ) { /** @var \WPEmerge\Routing\RouteInterface|null $route */ $route = $this->container[ WPEMERGE_ROUTING_ROUTER_KEY ]->getCurrentRoute(); if ( ! $route ) { return []; } $attributes = []; foreach ( $route->getAttributes() as $attribute => $value ) { // Only convert the first level of an array to scalar for simplicity. if ( is_array( $value ) ) { $value = '[' . implode( ', ', array_map( [$this, 'toScalar'], $value ) ) . ']'; } else { $value = $this->toScalar( $value ); } $attributes[ $attribute ] = $value; } return $attributes; } }