for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace CHStudio\Raven\Http\Factory;
use InvalidArgumentException;
use Stringable;
class Uri implements Stringable
{
private readonly string $uri;
public function __construct(mixed $value)
if (\is_array($value)) {
if (!isset($value['base'])) {
throw new InvalidArgumentException(
'If you want to build an URI from an array, use the schema: [ base => string, ?parameters => [string => mixed]'
);
}
$parameters = $value['parameters'] ?? [];
$value = str_replace(array_keys($parameters), $parameters, (string) $value['base']);
} elseif (!\is_string($value)) {
throw new InvalidArgumentException('$value must be a string or an array.');
$this->uri = $value;
uri
CHStudio\Raven\Http\Factory\Uri
public function __toString(): string
return $this->uri;