How can PHP developers refactor legacy code, like the guestbook script mentioned, to incorporate modern PHP features and improve performance and security?

To refactor legacy PHP code like the guestbook script, developers can start by updating deprecated functions, implementing namespaces, using newer PHP features like type declarations and return types, and enhancing security measures such as input validation and prepared statements for database interactions.

<?php

// Sample code snippet for refactoring a guestbook script with modern PHP features
namespace Guestbook;

class Guestbook {
    private $db;

    public function __construct(\PDO $db) {
        $this->db = $db;
    }

    public function addEntry(string $name, string $message) {
        $stmt = $this->db->prepare("INSERT INTO entries (name, message) VALUES (:name, :message)");
        $stmt->execute([
            ':name' => $name,
            ':message' => $message
        ]);
    }

    public function getEntries() {
        $stmt = $this->db->query("SELECT * FROM entries");
        return $stmt->fetchAll();
    }
}

// Usage example
$db = new \PDO("mysql:host=localhost;dbname=guestbook", "username", "password");
$guestbook = new Guestbook($db);
$guestbook->addEntry("John Doe", "Hello, world!");
$entries = $guestbook->getEntries();

foreach ($entries as $entry) {
    echo $entry['name'] . ": " . $entry['message'] . "<br>";
}