What are some strategies for improving the readability and maintainability of PHP scripts that involve socket communication, such as breaking down functions and utilizing global variables effectively?

To improve the readability and maintainability of PHP scripts involving socket communication, it is important to break down the functionality into smaller, reusable functions. Additionally, utilizing global variables effectively can help in managing the state of the socket connection throughout the script.

<?php

// Define global variables for socket connection
$socket = null;

// Function to establish a socket connection
function establishConnection($host, $port) {
    global $socket;
    
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if ($socket === false) {
        echo "Failed to create socket: " . socket_strerror(socket_last_error());
        return false;
    }

    $result = socket_connect($socket, $host, $port);
    if ($result === false) {
        echo "Failed to connect to socket: " . socket_strerror(socket_last_error());
        return false;
    }

    return true;
}

// Function to send data over the socket
function sendData($data) {
    global $socket;
    
    $result = socket_write($socket, $data, strlen($data));
    if ($result === false) {
        echo "Failed to send data: " . socket_strerror(socket_last_error());
        return false;
    }

    return true;
}

// Function to close the socket connection
function closeConnection() {
    global $socket;
    
    socket_close($socket);
}

?>