Oroboros Core
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo

Namespaces

  • None
  • oroboros
    • core
      • abstracts
        • adapters
        • bootstrap
        • controllers
        • libraries
          • auth
          • bootstrap
          • cache
          • codex
          • config
          • container
          • data
          • database
          • dns
          • entity
          • enum
          • error
          • event
          • extension
          • file
          • flags
          • hooks
          • job
          • logger
          • manager
          • message
          • prototype
          • request
          • response
          • routine
          • shell
          • startup
          • stream
          • template
          • uri
          • utility
          • validation
            • workers
          • worker
        • models
        • patterns
          • behavioral
          • creational
        • utilities
          • exception
            • cache
            • container
          • http
        • views
      • interfaces
        • adapters
          • interpreters
          • sdk
        • api
          • adapters
          • bootstrap
          • controllers
          • psr
        • contract
          • adapters
          • bootstrap
          • codex
          • components
          • controllers
          • data
          • entities
          • errors
          • events
          • extensions
          • jobs
          • libraries
            • auth
            • cache
            • config
            • container
            • enum
            • file
            • flags
            • hooks
            • module
            • promise
            • record
            • request
            • response
            • server
            • shutdown
            • site
            • stream
            • template
            • theme
            • uri
          • models
          • patterns
            • behavioral
            • concurrency
            • creational
            • structural
          • routes
          • routines
            • bootload
            • declarative
            • procedural
            • subsystem
          • services
            • consumer
              • cgi
              • rest
                • local
                • remote
                  • authenticated
                  • unauthenticated
            • provider
              • cgi
              • rest
                • local
                • remote
                  • authenticated
                  • unauthenticated
          • utilities
            • datetime
            • exception
              • cache
              • container
            • filebase
            • http
            • math
            • parser
            • regex
            • session
          • views
        • enumerated
          • environment
          • flags
          • http
          • views
        • libraries
          • manager
          • worker
      • libraries
        • api
        • codex
        • container
        • enum
          • http
        • file
        • hooks
        • logger
        • math
        • psr4
        • request
        • response
        • stream
        • uri
      • patterns
        • creational
      • traits
        • adapters
        • bootstrap
        • codex
        • components
        • controllers
        • data
        • entities
        • events
        • extensions
        • jobs
        • libraries
          • container
          • file
          • request
          • response
          • stream
          • uri
        • models
        • modules
        • patterns
          • behavioral
          • concurrency
          • creational
          • structural
        • routes
        • services
        • utilities
          • core
            • api
            • config
            • contract
              • contract
            • enum
            • environment
            • routines
          • datetime
          • error
          • exception
          • filebase
          • hooks
          • html
          • http
          • logic
          • math
          • parsers
          • regex
          • session
        • views
      • utilities
        • exception
          • cache
          • container
        • http
      • views
    • tests
      • patterns
        • creational
      • psr
        • psr7
      • utilities
        • exception
  • PasswordCompat
    • binary
  • PHP

Traits

  • RequestTrait
  • ServerRequestTrait

Trait RequestTrait

Provides a set of methods to represent a Psr-7 request stream.

Representation of an outgoing, client-side request.

Per the HTTP specification, this interface includes properties for each of the following:

  • Protocol version
  • HTTP method
  • URI
  • Headers
  • Message body

During construction, implementations MUST attempt to set the Host header from a provided URI if no Host header is provided.

Requests are considered immutable; all methods that might change state MUST be implemented such that they retain the internal state of the current message and return an instance that contains the changed state.


Traits provide extended method support to classes without requiring a direct, linear chain of inheritance. This allows functions to inherit subsets of related methods without declaring a parent class.

In Oroboros core, ALL methods are granted to classes via traits, and the classes themselves are just containers that correlate their methods to an interface they are expected to honor. This approach maximizes interoperability, by entirely removing class inheritance as a requirement for extension of any class in this system.

3rd parties using this package are not expected to follow this approach,

but ALL of our internal class and logic structure does.

oroboros\core\traits\libraries\request\RequestTrait uses oroboros\core\traits\libraries\stream\MessageTrait

Direct Known Users

oroboros\core\abstracts\libraries\request\AbstractRequest, oroboros\core\traits\libraries\request\ServerRequestTrait

Indirect Known Users

oroboros\core\libraries\request\Request

Namespace: oroboros\core\traits\libraries\request
Package: oroboros\core\psr7
Category: traits
License: The MIT License (MIT)
Author: Brian Dayhoff mopsyd@me.com
Version: 0.2.4
Since: 0.2.4-alpha
Used by: oroboros\core\interfaces\api\psr\Psr7Api::REQUEST_ABSTRACT_CLASS
Link: bitbucket.org/oroborosframework/oroboros-core/wiki/development/api/traits.md
Satisfies: \oroboros\core\interfaces\contract\libraries\request\RequestContract
Satisfies: \Psr\Http\Message\RequestInterface
Located at core/traits/libraries/request/RequestTrait.php

Methods summary

public
# __construct( scalar|resource|Psr\Http\Message\StreamInterface $body, array $headers = null, type $protocol = null, string $host = null, string $uri = null, string $method = null )

Constructs a new instance of a Psr-7 message wrapper.

Constructs a new instance of a Psr-7 message wrapper.

Parameters

$body
This is the only required value for the constructor, and represents a message body as a scalar value, resource pointer, or instance of a stream interface.
$headers
(optional) If provided, represents an array of headers to construct with the message.
$protocol
(optional) If provided, the HTTP request protocol will be set to this value. Default value is "1.1"
$host
(optional) If provided, a host header will be explicitly set to this value. If not supplied, it will return the current host, or 127.0.0.1 if the host could not be determined or the request originated from CLI.
$uri
(optional) If provided, an endpoint uri will be explicitly set to this value. If not supplied, it will return the current host, or 127.0.0.1 if the host could not be determined or the request originated from CLI.
$method
(optional) If provided, a request method will be explicitly set to this value. If not supplied, it will return the same request method of the current page load, or GET if it could not be determined or the request originated from CLI.

Throws

oroboros\core\utilities\exception\InvalidArgumentException
if any passed parameters do not validate
public string
# getRequestTarget( )

Retrieves the message's request target.

Retrieves the message's request target.

Retrieves the message's request-target either as it will appear (for clients), as it appeared at request (for servers), or as it was specified for the instance (see withRequestTarget()).

In most cases, this will be the origin-form of the composed URI, unless a value was provided to the concrete implementation (see withRequestTarget() below).

If no URI is available, and no request-target has been specifically provided, this method MUST return the string "/".

Returns

string
public static
# withRequestTarget( mixed $requestTarget )

Return an instance with the specific request-target.

Return an instance with the specific request-target.

If the request needs a non-origin-form request-target — e.g., for specifying an absolute-form, authority-form, or asterisk-form — this method may be used to create an instance with the specified request-target, verbatim.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the changed request target.

Parameters

$requestTarget

Returns

static

See

http://tools.ietf.org/html/rfc7230#section-5.3 (for the various request-target forms allowed in request messages)


public string
# getMethod( )

Retrieves the HTTP method of the request.

Retrieves the HTTP method of the request.

Returns

string
Returns the request method.
public static
# withMethod( string $method )

Return an instance with the provided HTTP method.

Return an instance with the provided HTTP method.

While HTTP method names are typically all uppercase characters, HTTP method names are case-sensitive and thus implementations SHOULD NOT modify the given string.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the changed request method.

Parameters

$method
Case-sensitive method.

Returns

static

Throws

InvalidArgumentException
for invalid HTTP methods.
public UriInterface
# getUri( )

Retrieves the URI instance.

Retrieves the URI instance.

This method MUST return a UriInterface instance.

Returns

UriInterface

Returns a UriInterface instance representing the URI of the request.

See

http://tools.ietf.org/html/rfc3986#section-4.3
public static
# withUri( Psr\Http\Message\UriInterface $uri, boolean $preserveHost = false )

Returns an instance with the provided URI.

Returns an instance with the provided URI.

This method MUST update the Host header of the returned request by default if the URI contains a host component. If the URI does not contain a host component, any pre-existing Host header MUST be carried over to the returned request.

You can opt-in to preserving the original state of the Host header by setting $preserveHost to true. When $preserveHost is set to true, this method interacts with the Host header in the following ways:

  • If the Host header is missing or empty, and the new URI contains a host component, this method MUST update the Host header in the returned request.
  • If the Host header is missing or empty, and the new URI does not contain a host component, this method MUST NOT update the Host header in the returned request.
  • If a Host header is present and non-empty, this method MUST NOT update the Host header in the returned request.

This method MUST be implemented in such a way as to retain the immutability of the message, and MUST return an instance that has the new UriInterface instance.

Parameters

$uri
New request URI to use.
$preserveHost
Preserve the original state of the Host header.

Returns

static

See

http://tools.ietf.org/html/rfc3986#section-4.3
protected
# _initializeRequest( mixed $body, array $headers = null, array $protocol = null, string $host = null, $uri = null, $method = null )

Creates a ready instance of a Psr-7 message stream.

Creates a ready instance of a Psr-7 message stream.

Parameters

$body
$headers
$source
$protocol
$headers
$host
$protocol
$uri
$method
private
# _validateRequestHost( string $host )

Validates the host. Host must be a valid url, localhost, IPv4 or IPv6

Validates the host. Host must be a valid url, localhost, IPv4 or IPv6

Parameters

$host

Throws

oroboros\core\utilities\exception\InvalidArgumentException
private
# _validateRequestUri( string $uri )

Validates the uri. Uri must be a valid url, localhost, IPv4 or IPv6

Validates the uri. Uri must be a valid url, localhost, IPv4 or IPv6

Parameters

$uri

Throws

oroboros\core\utilities\exception\InvalidArgumentException
private
# _validateRequestMethod( string $method )

Validates the request method. Request method must be a valid HTTP request method (GET, POST, PUT, DELETE, etc)

Validates the request method. Request method must be a valid HTTP request method (GET, POST, PUT, DELETE, etc)

Parameters

$method

Throws

oroboros\core\utilities\exception\InvalidArgumentException
private
# _setRequestUri( string $uri )

Creates an object that represents the request uri, and stores it internally.

Creates an object that represents the request uri, and stores it internally.

Parameters

$uri

Throws

oroboros\core\utilities\exception\InvalidArgumentException
if an invalid uri is provided
private
# _setRequestMethod( string $method )

Creates an object that represents the request method, and stores it internally.

Creates an object that represents the request method, and stores it internally.

Parameters

$method

Throws

oroboros\core\utilities\exception\InvalidArgumentException
if an invalid request method is provided
private
# _setRequestHostHeader( string $host = null, array $headers = null )

Sets the host header, if it is not provided.

Sets the host header, if it is not provided.

Parameters

$host
$headers

Throws

oroboros\core\utilities\exception\InvalidArgumentException
if an invalid hostname is provided
private string
# _getRequestDefaultHostname( )

Returns a default hostname if none is provided.

Returns a default hostname if none is provided.

Returns

string
private string
# _getRequestDefaultUri( )

Returns the default local page uri if none is provided, or the localized IP address if current execution came from CLI.

Returns the default local page uri if none is provided, or the localized IP address if current execution came from CLI.

Returns

string
private string
# _getRequestDefaultRequestMethod( )

Returns the default local uri request method if none is provided, or the GET if it could not be determined (or if the request came from CLI).

Returns the default local uri request method if none is provided, or the GET if it could not be determined (or if the request came from CLI).

Returns

string
private array
# _getMessageValues( )

Returns the current internal values, for instantiation of new object instances while rendering the current object immutable.

Returns the current internal values, for instantiation of new object instances while rendering the current object immutable.

Returns

array
private oroboros\core\traits\libraries\request\RequestTrait
# _instantiateMessageNewInstance( array $params = null )

Creates a new instance based off of the default parameters, substituting any values passed in.

Creates a new instance based off of the default parameters, substituting any values passed in.

Parameters

$params

Returns

oroboros\core\traits\libraries\request\RequestTrait

Methods used from oroboros\core\traits\libraries\stream\MessageTrait

_checkMessageHeader(), _getMessageHeaders(), _getMessageValidRequestHeaders(), _getMessageValidResponseHeaders(), _initializeMessage(), _setMessageBody(), _setMessageHeaders(), _setMessageProtocol(), _validateMessageHeader(), getBody(), getHeader(), getHeaderLine(), getHeaders(), getProtocolVersion(), hasHeader(), withAddedHeader(), withBody(), withHeader(), withProtocolVersion(), withoutHeader()

Properties summary

private Psr\Http\Message\UriInterface $_request_uri

Represents the current request uri.

Represents the current request uri.

#
private boolean $_request_uri_provided

If no request uri was provided, this value will be false.

If no request uri was provided, this value will be false.

# false
private oroboros\core\utilities\http\RequestMethod $_request_method

Represents the current request method.

Represents the current request method.

#
private boolean $_request_is_initialized

Represents whether the request has been correctly initialized.

Represents whether the request has been correctly initialized.

# false

Properties used from oroboros\core\traits\libraries\stream\MessageTrait

$_message_headers, $_message_headers_valid, $_message_is_initialized, $_message_protocol, $_message_protocol_default, $_message_valid_protocols

Oroboros Core API documentation generated by ApiGen