Интерфейс-маркер (Marker Interface) — это шаблон проектирования, в котором интерфейс служит просто как маркер, указывающий на какие-то особенности или возможности класса. В PHP интерфейсы-маркеры обычно не содержат методов, а используются лишь для определения принадлежности класса к определенной категории или для активации некоторого поведения.
Примером может быть интерфейс Serializable
, который является маркером для классов, которые могут быть сериализованы и десериализованы. Этот интерфейс не содержит никаких методов, его единственная цель — указать, что класс может быть сериализован.
Пример использования интерфейса-маркера в PHP:
<?php
// Интерфейс-маркер
interface Serializable {
// никаких методов
}
// Класс, реализующий интерфейс-маркер
class MyClass implements Serializable {
// Код класса
}
// Проверка, принадлежит ли объект к классу, реализующему интерфейс-маркер
$obj = new MyClass();
if ($obj instanceof Serializable) {
echo "This object is serializable.";
} else {
echo "This object is not serializable.";
}
Интерфейс Serializable
в этом примере просто указывает, что класс MyClass
может быть сериализован. Обратите внимание, что сам интерфейс не определяет никаких методов, он просто является маркером.