Введення в атрибути
(PHP 8)
Атрибути — це структуровані машиночитані метадані, оголошені кодом. Метою атрибутів можуть бути: класи (включаючи анонімні), методи, функції, параметри, властивості та константи класу. Потім описані атрибутами метадані можна проаналізувати під час виконання засобами Reflection API. Тому атрибути можна розглядати як вбудовану в код мову конфігурації.
Атрибути поділяють загальну та специфічну поведінку сутностей у додатку. В якомусь сенсі це схоже на інтерфейс із його реалізаціями. Але інтерфейси та реалізації – це про код, а атрибути – про додавання додаткової інформації та конфігурацію. Інтерфейси можуть реалізовуватися лише класами, тоді як атрибути можна націлювати на методи, функції, параметри, властивості та константи класів. Тому атрибути — значно більш гнучкий механізм, ніж інтерфейси.
Простий приклад заміни інтерфейсу з необов'язковими методами коду з атрибутами. Припустимо, інтерфейс ActionHandler
описує у додатку операцію, до виконання якої одним реалізаціям потрібна попередня настройка, а іншим — ні. І замість внесення до інтерфейсу ActionHandler
дополнительного методаsetUp()
, Що для частини реалізацій буде порожнім, можна використовувати атрибут. Однією з переваг цього підходу є те, що ми можемо використати атрибут кілька разів.
Приклад #1 Реалізація опціональних методів інтерфейсу за допомогою атрибутів
Loading...