On this page
Class Socket
CakePHP network socket connection class.
Core base class for network communication.
Property Summary
-
$_config protected
array<string, mixed>Runtime config
-
$_configInitialized protected
boolWhether the config property has already been configured with defaults
-
$_connectionErrors protected
array<string>Used to capture connection warnings which can happen when there are SSL errors for example.
-
$_defaultConfig protected
array<string, mixed>Default configuration settings for the socket connection
-
$_encryptMethods protected
array<string, int>Contains all the encryption methods available
-
$connected protected
boolThis boolean contains the current state of the Socket class
-
$connection protected
resource|nullReference to socket connection resource
-
$encrypted protected
boolTrue if the socket stream is encrypted after a {@link \Cake\Network\Socket::enableCrypto()} call
-
$lastError protected
array<string, mixed>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.
__get() public
Temporary magic method to allow accessing protected properties.
_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.
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.
isConnected() public
Check the connection status after calling
connect().isEncrypted() public
Check the encryption status after calling
enableCrypto().lastError() public
Get the last error as a string.
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)
setConfig() public
Sets the config.
setLastError() public
Set the last error.
write() public
Write data to the socket.
Method Detail
__construct() public
__construct(array<string, mixed> $config = [])
Constructor.
Parameters
array<string, mixed>$config optional-
Socket configuration, which will be merged with the base configuration
See Also
__destruct() public
__destruct()
Destructor, used to disconnect from current connection.
__get() public
__get(string $name): mixed
Temporary magic method to allow accessing protected properties.
Will be removed in 5.0.
Parameters
string$name-
Property name.
Returns
mixed_configDelete() protected
_configDelete(string $key): void
Deletes a single config key.
Parameters
string$key-
Key to delete.
Returns
voidThrows
Cake\Core\Exception\CakeExceptionif 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(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Writes a config key.
Parameters
array<string, mixed>|string$key-
Key to write to.
mixed$value-
Value to write.
string|bool$merge optional-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Returns
voidThrows
Cake\Core\Exception\CakeExceptionif 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): resource|null
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): void
Configure the SSL context options.
Parameters
string$host-
The host name being connected to.
Returns
voidaddress() public
address(): string
Get the IP address of the current connection.
Returns
stringaddresses() public
addresses(): array
Get all IP addresses associated with the current connection.
Returns
arrayconfigShallow() public
configShallow(array<string, mixed>|string $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
array<string, mixed>|string$key-
The key to set, or a complete array of configs.
mixed|null$value optional-
The value to set.
Returns
$thisconnect() public
connect(): bool
Connect the socket to the given host and port.
Returns
boolThrows
Cake\Network\Exception\SocketExceptioncontext() public
context(): array|null
Get the connection context.
Returns
array|nulldisconnect() public
disconnect(): bool
Disconnect the socket from the current connection.
Returns
boolenableCrypto() public
enableCrypto(string $type, string $clientOrServer = 'client', bool $enable = true): void
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
voidThrows
InvalidArgumentExceptionWhen an invalid encryption scheme is chosen.
Cake\Network\Exception\SocketExceptionWhen attempting to enable SSL/TLS fails
See Also
getConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
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
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
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
mixedThrows
InvalidArgumentExceptionhost() public
host(): string
Get the host name of the current connection.
Returns
stringisConnected() public
isConnected(): bool
Check the connection status after calling connect().
Returns
boolisEncrypted() public
isEncrypted(): bool
Check the encryption status after calling enableCrypto().
Returns
boollastError() public
lastError(): string|null
Get the last error as a string.
Returns
string|nullread() public
read(int $length = 1024): string|null
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|nullreset() public
reset(array|null $state = null): void
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
voidsetConfig() public
setConfig(array<string, mixed>|string $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
array<string, mixed>|string$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\CakeExceptionWhen trying to set a key that is invalid.
setLastError() public
setLastError(int|null $errNum, string $errStr): void
Set the last error.
Parameters
int|null$errNum-
Error code
string$errStr-
Error string
Returns
voidwrite() public
write(string $data): int
Write data to the socket.
Parameters
string$data-
The data to write to the socket.
Returns
intProperty Detail
$_config protected
Runtime config
Type
array<string, mixed>$_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<string>$_defaultConfig protected
Default configuration settings for the socket connection
Type
array<string, mixed>$_encryptMethods protected
Contains all the encryption methods available
Type
array<string, int>$connected protected
This boolean contains the current state of the Socket class
Type
bool$connection protected
Reference to socket connection resource
Type
resource|null$encrypted protected
True if the socket stream is encrypted after a {@link \Cake\Network\Socket::enableCrypto()} call
Type
bool$lastError protected
This variable contains an array with the last error number (num) and string (str)
Type
array<string, mixed>© 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.4/class-Cake.Network.Socket.html