Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.

(no description)

File Size: 459 lines (16 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

Utils:: (10 methods):
  caselessRemove()
  copyToStream()
  copyToString()
  hash()
  modifyRequest()
  readLine()
  streamFor()
  tryFopen()
  tryGetContents()
  uriFor()


Class: Utils  - X-Ref

caselessRemove(array $keys, array $data)   X-Ref
Remove the items given by the keys, case insensitively from the data.

param: string[] $keys

copyToStream(StreamInterface $source, StreamInterface $dest, int $maxLen = -1)   X-Ref
Copy the contents of a stream into another stream until the given number
of bytes have been read.

param: StreamInterface $source Stream to read from
param: StreamInterface $dest   Stream to write to
param: int             $maxLen Maximum number of bytes to read. Pass -1

copyToString(StreamInterface $stream, int $maxLen = -1)   X-Ref
Copy the contents of a stream into a string until the given number of
bytes have been read.

param: StreamInterface $stream Stream to read
param: int             $maxLen Maximum number of bytes to read. Pass -1

hash(StreamInterface $stream, string $algo, bool $rawOutput = false)   X-Ref
Calculate a hash of a stream.

This method reads the entire stream to calculate a rolling hash, based
on PHP's `hash_init` functions.

param: StreamInterface $stream    Stream to calculate the hash for
param: string          $algo      Hash algorithm (e.g. md5, crc32, etc)
param: bool            $rawOutput Whether or not to use raw output

modifyRequest(RequestInterface $request, array $changes)   X-Ref
Clone and modify a request with the given changes.

This method is useful for reducing the number of clones needed to mutate
a message.

The changes can be one of:
- method: (string) Changes the HTTP method.
- set_headers: (array) Sets the given headers.
- remove_headers: (array) Remove the given headers.
- body: (mixed) Sets the given body.
- uri: (UriInterface) Set the URI.
- query: (string) Set the query string value of the URI.
- version: (string) Set the protocol version.

param: RequestInterface $request Request to clone and modify.
param: array            $changes Changes to apply.

readLine(StreamInterface $stream, ?int $maxLength = null)   X-Ref
Read a line from the stream up to the maximum allowed buffer length.

param: StreamInterface $stream    Stream to read from
param: int|null        $maxLength Maximum buffer length

streamFor($resource = '', array $options = [])   X-Ref
Create a new stream based on the input type.

Options is an associative array that can contain the following keys:
- metadata: Array of custom metadata.
- size: Size of the stream.

This method accepts the following `$resource` types:
- `Psr\Http\Message\StreamInterface`: Returns the value as-is.
- `string`: Creates a stream object that uses the given string as the contents.
- `resource`: Creates a stream object that wraps the given PHP stream resource.
- `Iterator`: If the provided value implements `Iterator`, then a read-only
stream object will be created that wraps the given iterable. Each time the
stream is read from, data from the iterator will fill a buffer and will be
continuously called until the buffer is equal to the requested read size.
Subsequent read calls will first read from the buffer and then call `next`
on the underlying iterator until it is exhausted.
- `object` with `__toString()`: If the object has the `__toString()` method,
the object will be cast to a string and then a stream will be returned that
uses the string value.
- `NULL`: When `null` is passed, an empty stream object is returned.
- `callable` When a callable is passed, a read-only stream object will be
created that invokes the given callable. The callable is invoked with the
number of suggested bytes to read. The callable can return any number of
bytes, but MUST return `false` when there is no more data to return. The
stream object that wraps the callable will invoke the callable until the
number of requested bytes are available. Any additional bytes will be
buffered and used in subsequent reads.

param: resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data
param: array{size?: int, metadata?: array}                                    $options  Additional options

tryFopen(string $filename, string $mode)   X-Ref
Safely opens a PHP stream resource using a filename.

When fopen fails, PHP normally raises a warning. This function adds an
error handler that checks for errors and throws an exception instead.

param: string $filename File to open
param: string $mode     Mode used to open the file
return: resource

tryGetContents($stream)   X-Ref
Safely gets the contents of a given stream.

When stream_get_contents fails, PHP normally raises a warning. This
function adds an error handler that checks for errors and throws an
exception instead.

param: resource $stream

uriFor($uri)   X-Ref
Returns a UriInterface for the given value.

This function accepts a string or UriInterface and returns a
UriInterface for the given value. If the value is already a
UriInterface, it is returned as-is.

param: string|UriInterface $uri