Are there common use cases for Marker-Interfaces in PHP development, and if so, what are some examples?

Marker-Interfaces in PHP are interfaces that do not contain any methods but are used to mark a class as having a certain characteristic or behavior. Common use cases for Marker-Interfaces include implementing specific functionality based on the interface a class implements or for type checking at runtime.

// Example of a Marker-Interface in PHP
interface Loggable {
    // This interface does not contain any methods
}

class Logger {
    public function log($message) {
        echo $message;
    }
}

class FileLogger extends Logger implements Loggable {
    // This class implements the Loggable interface
}

class DatabaseLogger extends Logger {
    // This class does not implement the Loggable interface
}

function logMessage(Logger $logger, $message) {
    if ($logger instanceof Loggable) {
        $logger->log($message);
    } else {
        echo "Logger is not loggable.";
    }
}

$fileLogger = new FileLogger();
$databaseLogger = new DatabaseLogger();

logMessage($fileLogger, "Logging message to file.");
logMessage($databaseLogger, "Logging message to database.");