Хватит создавать геттеры и сеттеры: обзор пакета PHP Properties, расширяющего язык

fashion-is-my-profession

В большинстве случаев писать геттеры или сеттеры самому — не лучшее решение. Генерировать геттеры / сеттеры с помощью IDE — лучше, но не идеально. Пакет PHP Properties решает эти проблемы и «бесплатно» добавляет другие возможности.

PHP Properties — это выполненная в виде трейта реализация геттеров и сеттеров для вашего класса, которая берет информацию о его полях из doc-block.

Использование

Но для начала давайте вспомним, как создаются обыкновенные геттеры. Может, так?

Или так?

Выглядит ужасно, особенно если таких методов десятки.

Как мы можем избежать этого? Именно тут нам на помощь приходит пакет Properties. Давайте рассмотрим его использование на примере. Обратите внимание на doc-block, идущий перед классом:

Да, это настоящая переменная, доступная только для чтения — информация о необходимом поведении берется из блока документации /** перед классом. Кроме того, этот блок помогает IDE подсвечивать места с логическими ошибками.

Похожая магия работает и с методами:

А что на счет записи переменных класса? Это так же просто и магически:

Установка

Добавить пакет в свой проект очень просто, если вы используете Composer:

… впрочем, если вы не используете Composer, то вам ведь вообще по жизни непросто, правда?

Тарас Сереванн, эксперт в области IT магии