Введення в атрибути

(PHP 8)

Атрибути — це структуровані машиночитані метадані, оголошені кодом. Метою атрибутів можуть бути: класи (включаючи анонімні), методи, функції, параметри, властивості та константи класу. Потім описані атрибутами метадані можна проаналізувати під час виконання засобами Reflection API. Тому атрибути можна розглядати як вбудовану в код мову конфігурації.

Атрибути поділяють загальну та специфічну поведінку сутностей у додатку. В якомусь сенсі це схоже на інтерфейс із його реалізаціями. Але інтерфейси та реалізації – це про код, а атрибути – про додавання додаткової інформації та конфігурацію. Інтерфейси можуть реалізовуватися лише класами, тоді як атрибути можна націлювати на методи, функції, параметри, властивості та константи класів. Тому атрибути — значно більш гнучкий механізм, ніж інтерфейси.

Простий приклад заміни інтерфейсу з необов'язковими методами коду з атрибутами. Припустимо, інтерфейс ActionHandler описує у додатку операцію, до виконання якої одним реалізаціям потрібна попередня настройка, а іншим — ні. І замість внесення до інтерфейсу ActionHandlerдополнительного методаsetUp(), Що для частини реалізацій буде порожнім, можна використовувати атрибут. Однією з переваг цього підходу є те, що ми можемо використати атрибут кілька разів.

Приклад #1 Реалізація опціональних методів інтерфейсу за допомогою атрибутів

Loading...