CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
      • Exception
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class Socket

CakePHP network socket connection class.

Core base class for network communication.

Namespace: Cake\Network

Property Summary

  • $_config protected
    array

    Runtime config

  • $_configInitialized protected
    bool

    Whether the config property has already been configured with defaults

  • $_connectionErrors protected
    array

    Used to capture connection warnings which can happen when there are SSL errors for example.

  • $_defaultConfig protected
    array

    Default configuration settings for the socket connection

  • $_encryptMethods protected
    array

    Contains all the encryption methods available

  • $connected public
    bool

    This boolean contains the current state of the Socket class

  • $connection public
    resource|null

    Reference to socket connection resource

  • $description public
    string

    Object description

  • $encrypted public
    bool

    True if the socket stream is encrypted after a Cake\Network\Socket::enableCrypto() call

  • $lastError public
    array

    This variable contains an array with the last error number (num) and string (str)

Method Summary

  • __construct() public

    Constructor.

  • __destruct() public

    Destructor, used to disconnect from current connection.

  • _configDelete() protected

    Deletes a single config key.

  • _configRead() protected

    Reads a config key.

  • _configWrite() protected

    Writes a config key.

  • _connectionErrorHandler() protected

    socket_stream_client() does not populate errNum, or $errStr when there are connection errors, as in the case of SSL verification failure.

  • _getStreamSocketClient() protected

    Create a stream socket client. Mock utility.

  • _setSslContext() protected

    Configure the SSL context options.

  • address() public

    Get the IP address of the current connection.

  • addresses() public

    Get all IP addresses associated with the current connection.

  • config() public deprecated

    Gets/Sets the config.

  • configShallow() public

    Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.

  • connect() public

    Connect the socket to the given host and port.

  • context() public

    Get the connection context.

  • disconnect() public

    Disconnect the socket from the current connection.

  • enableCrypto() public

    Encrypts current stream socket, using one of the defined encryption methods

  • getConfig() public

    Returns the config.

  • getConfigOrFail() public

    Returns the config for this specific key.

  • host() public

    Get the host name of the current connection.

  • lastError() public

    Get the last error as a string.

  • read() public

    Read data from the socket. Returns false if no data is available or no connection could be established.

  • reset() public

    Resets the state of this Socket instance to it's initial state (before Object::__construct got executed)

  • setConfig() public

    Sets the config.

  • setLastError() public

    Set the last error.

  • write() public

    Write data to the socket.

Method Detail

__construct() ¶ public

__construct(array $config = [])

Constructor.

Parameters
array $config optional

Socket configuration, which will be merged with the base configuration

See Also
\Cake\Network\Socket::$_baseConfig

__destruct() ¶ public

__destruct()

Destructor, used to disconnect from current connection.

_configDelete() ¶ protected

_configDelete(string $key): void

Deletes a single config key.

Parameters
string $key

Key to delete.

Returns
void
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config

_configRead() ¶ protected

_configRead(string|null $key): mixed

Reads a config key.

Parameters
string|null $key

Key to read.

Returns
mixed

_configWrite() ¶ protected

_configWrite(string|array $key, mixed $value, bool|string $merge = false): void

Writes a config key.

Parameters
string|array $key

Key to write to.

mixed $value

Value to write.

bool|string $merge optional

True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.

Returns
void
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config

_connectionErrorHandler() ¶ protected

_connectionErrorHandler(int $code, string $message): void

socket_stream_client() does not populate errNum, or $errStr when there are connection errors, as in the case of SSL verification failure.

Instead we need to handle those errors manually.

Parameters
int $code

Code number.

string $message

Message.

Returns
void

_getStreamSocketClient() ¶ protected

_getStreamSocketClient(string $remoteSocketTarget, int $errNum, string $errStr, int $timeout, int $connectAs, resource $context): bool|resource

Create a stream socket client. Mock utility.

Parameters
string $remoteSocketTarget

remote socket

int $errNum

error number

string $errStr

error string

int $timeout

timeout

int $connectAs

flags

resource $context

context

Returns
bool|resource

_setSslContext() ¶ protected

_setSslContext(string $host): void

Configure the SSL context options.

Parameters
string $host

The host name being connected to.

Returns
void

address() ¶ public

address(): string

Get the IP address of the current connection.

Returns
string

addresses() ¶ public

addresses(): array

Get all IP addresses associated with the current connection.

Returns
array

config() ¶ public

config(string|array|null $key = null, mixed|null $value = null, bool $merge = true): mixed

Gets/Sets the config.

Usage

Reading the whole config:

$this->config();

Reading a specific value:

$this->config('key');

Reading a nested value:

$this->config('some.nested.key');

Setting a specific value:

$this->config('key', $value);

Setting a nested value:

$this->config('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->config(['one' => 'value', 'another' => 'value']);
Parameters
string|array|null $key optional

The key to get/set, or a complete array of configs.

mixed|null $value optional

The value to set.

bool $merge optional

Whether to recursively merge or overwrite existing config, defaults to true.

Returns
mixed
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.

configShallow() ¶ public

configShallow(string|array $key, mixed|null $value = null): $this

Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.

Setting a specific value:

$this->configShallow('key', $value);

Setting a nested value:

$this->configShallow('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
string|array $key

The key to set, or a complete array of configs.

mixed|null $value optional

The value to set.

Returns
$this

connect() ¶ public

connect(): bool

Connect the socket to the given host and port.

Returns
bool
Throws
Cake\Network\Exception\SocketException

context() ¶ public

context(): array|null

Get the connection context.

Returns
array|null

disconnect() ¶ public

disconnect(): bool

Disconnect the socket from the current connection.

Returns
bool

enableCrypto() ¶ public

enableCrypto(string $type, string $clientOrServer = 'client', bool $enable = true): bool

Encrypts current stream socket, using one of the defined encryption methods

Parameters
string $type

can be one of 'ssl2', 'ssl3', 'ssl23' or 'tls'

string $clientOrServer optional

can be one of 'client', 'server'. Default is 'client'

bool $enable optional

enable or disable encryption. Default is true (enable)

Returns
bool
Throws
InvalidArgumentException
When an invalid encryption scheme is chosen.
Cake\Network\Exception\SocketException
When attempting to enable SSL/TLS fails
See Also
stream_socket_enable_crypto

getConfig() ¶ public

getConfig(string|null $key = null, mixed|null $default = null): mixed|null

Returns the config.

Usage

Reading the whole config:

$this->getConfig();

Reading a specific value:

$this->getConfig('key');

Reading a nested value:

$this->getConfig('some.nested.key');

Reading with default value:

$this->getConfig('some-key', 'default-value');
Parameters
string|null $key optional

The key to get or null for the whole config.

mixed|null $default optional

The return value when the key does not exist.

Returns
mixed|null

getConfigOrFail() ¶ public

getConfigOrFail(string|null $key): mixed

Returns the config for this specific key.

The config value for this key must exist, it can never be null.

Parameters
string|null $key

The key to get.

Returns
mixed
Throws
InvalidArgumentException

host() ¶ public

host(): string

Get the host name of the current connection.

Returns
string

lastError() ¶ public

lastError(): string|null

Get the last error as a string.

Returns
string|null

read() ¶ public

read(int $length = 1024): mixed

Read data from the socket. Returns false if no data is available or no connection could be established.

The bool false return value is deprecated and will be null in the next major. Please code respectively to be future proof.

Parameters
int $length optional

Optional buffer length to read; defaults to 1024

Returns
mixed

reset() ¶ public

reset(array|null $state = null): bool

Resets the state of this Socket instance to it's initial state (before Object::__construct got executed)

Parameters
array|null $state optional

Array with key and values to reset

Returns
bool

setConfig() ¶ public

setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this

Sets the config.

Usage

Setting a specific value:

$this->setConfig('key', $value);

Setting a nested value:

$this->setConfig('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
string|array $key

The key to set, or a complete array of configs.

mixed|null $value optional

The value to set.

bool $merge optional

Whether to recursively merge or overwrite existing config, defaults to true.

Returns
$this
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.

setLastError() ¶ public

setLastError(int $errNum, string $errStr): void

Set the last error.

Parameters
int $errNum

Error code

string $errStr

Error string

Returns
void

write() ¶ public

write(string $data): int|false

Write data to the socket.

The bool false return value is deprecated and will be int 0 in the next major. Please code respectively to be future proof.

Parameters
string $data

The data to write to the socket.

Returns
int|false

Property Detail

$_config ¶ protected

Runtime config

Type
array

$_configInitialized ¶ protected

Whether the config property has already been configured with defaults

Type
bool

$_connectionErrors ¶ protected

Used to capture connection warnings which can happen when there are SSL errors for example.

Type
array

$_defaultConfig ¶ protected

Default configuration settings for the socket connection

Type
array

$_encryptMethods ¶ protected

Contains all the encryption methods available

SSLv2 and SSLv3 are deprecated, and should not be used as they have several published vulnerablilities.

Type
array

$connected ¶ public

This boolean contains the current state of the Socket class

Type
bool

$connection ¶ public

Reference to socket connection resource

Type
resource|null

$description ¶ public

Object description

Type
string

$encrypted ¶ public

True if the socket stream is encrypted after a Cake\Network\Socket::enableCrypto() call

Type
bool

$lastError ¶ public

This variable contains an array with the last error number (num) and string (str)

Type
array
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs