Class Socket
CakePHP network socket connection class.
Core base class for network communication.
Properties summary
- $_config protected
arrayRuntime config
- $_configInitialized protected
boolWhether the config property has already been configured with defaults
- $_connectionErrors protected
arrayUsed to capture connection warnings which can happen when there are SSL errors for example.
- $_defaultConfig protected
arrayDefault configuration settings for the socket connection
- $_encryptMethods protected
arrayContains all the encryption methods available
- $connected public
boolThis boolean contains the current state of the Socket class
- $connection public
resource|nullReference to socket connection resource
- $description public
stringObject description
- $encrypted public
boolTrue if the socket stream is encrypted after a Cake\Network\Socket::enableCrypto() call
- $lastError public
arrayThis variable contains an array with the last error number (num) and string (str)
Method Summary
- _connectionErrorHandler() protected
socket_stream_client() does not populate errNum, or $errStr when there are connection errors, as in the case of SSL verification failure.
- configShallow() public
Merge provided config with existing config. Unlike
config()which does a recursive merge for nested keys, this method does a simple merge. - read() public
Read data from the socket. Returns null 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)
Method Detail
__construct() public
__construct(array $config)
Constructor.
Parameters
-
array$config optional Socket configuration, which will be merged with the base configuration
See Also
__destruct() public
__destruct()
Destructor, used to disconnect from current connection.
_configDelete() protected
_configDelete(string $key)
Deletes a single config key.
Parameters
-
string$key Key to delete.
Throws
Cake\Core\Exception\Exceptionif attempting to clobber existing config
_configRead() protected
_configRead(?string $key)
Reads a config key.
Parameters
-
string|null$key Key to read.
Returns
mixed_configWrite() protected
_configWrite(mixed $key, mixed $value, mixed $merge)
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.
Throws
Cake\Core\Exception\Exceptionif attempting to clobber existing config
_connectionErrorHandler() protected
_connectionErrorHandler(int $code, string $message)
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.
_getStreamSocketClient() protected
_getStreamSocketClient(mixed $remoteSocketTarget, mixed $errNum, mixed $errStr, mixed $timeout, mixed $connectAs, mixed $context)
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
resource|null_setSslContext() protected
_setSslContext(string $host)
Configure the SSL context options.
Parameters
-
string$host The host name being connected to.
address() public
address()
Get the IP address of the current connection.
Returns
stringIP address
addresses() public
addresses()
Get all IP addresses associated with the current connection.
Returns
arrayIP addresses
configShallow() public
configShallow(mixed $key, mixed $value)
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
$thisconnect() public
connect()
Connect the socket to the given host and port.
Returns
boolSuccess
Throws
Cake\Network\Exception\SocketExceptioncontext() public
context()
Get the connection context.
Returns
array|nullNull when there is no connection, an array when there is.
disconnect() public
disconnect()
Disconnect the socket from the current connection.
Returns
boolSuccess
enableCrypto() public
enableCrypto(string $type, string $clientOrServer, bool $enable)
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)
Throws
InvalidArgumentExceptionWhen an invalid encryption scheme is chosen.
Cake\Network\Exception\SocketExceptionWhen attempting to enable SSL/TLS fails
See Also
getConfig() public
getConfig(?string $key, mixed $default)
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$default optional The return value when the key does not exist.
Returns
mixedConfiguration data at the named key or null if the key does not exist.
getConfigOrFail() public
getConfigOrFail(string $key)
Returns the config for this specific key.
The config value for this key must exist, it can never be null.
Parameters
-
string$key The key to get.
Returns
mixedConfiguration data at the named key
Throws
InvalidArgumentExceptionhost() public
host()
Get the host name of the current connection.
Returns
stringHost name
lastError() public
lastError()
Get the last error as a string.
Returns
string|nullLast error
read() public
read(int $length)
Read data from the socket. Returns null if no data is available or no connection could be established.
Parameters
-
int$length optional Optional buffer length to read; defaults to 1024
Returns
string|nullSocket data
reset() public
reset(?array $state)
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
setConfig() public
setConfig(mixed $key, mixed $value, mixed $merge)
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
$thisThrows
Cake\Core\Exception\ExceptionWhen trying to set a key that is invalid.
setLastError() public
setLastError(?int $errNum, string $errStr)
Set the last error.
Parameters
-
int|null$errNum Error code
-
string$errStr Error string
write() public
write(string $data)
Write data to the socket.
Parameters
-
string$data The data to write to the socket.
Returns
intBytes written.
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
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
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.Network.Socket.html