402d
@402d
начинал с бейсика на УКНЦ в 1988

Можно задокументировать список допустимых значений для целого типа?

class Entity_Чтото{
    const STATUS_ONE = 0;
    const STATUS_TWO = 1;
    /** @var int */
    private $status;

    /**
     * @param int $status
     */
    public function setStatus($status)
    {
        $this->status = $status;
    }

};

Хочется, чтобы когда используется setStatus подсказывал выбор из соответствующих констант.
Есть ли способ сделать что-то похожее ?

Тег phpDocumentor не стал добавлять, так как в его синтаксисе не вижу решения.
Возможно в IDE есть расширения, про которые я не в курсе ?

Рефакторю код времен 5.2. Переписать все под 7ку нет возможности. Стараюсь по возможности
облегчить себе жизнь. Пока решил переделывать так

/**
 * Класс констант для значения поля
 * STATUS_NEW -              <br>
 * STATUS_EDIT -             <br>
 */
final class Invoice_Enum_Status
{
    const STATUS_NEW = 0;
    const STATUS_EDIT = 1;
}
/**
 * Виртуальный класс, описывающий строку данных из таблицы
 * @property Invoice_Enum_Status $status - для этого поля избавляемся от захоркоженных значений 
 * @property остальные поля
 */
class Entity_Invoice{};

//  пусть сферический конь будет сущностью
/** @var Entity_Invoice $a */  
$a = new stdClass();  // 
$a->status = Invoice_Enum_Status::STATUS_NEW;

К сожалению автозавершение так не работает. Но хоть подсказки появились.
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
@heahoh
Full stackoverflow developer
используйте enum, типизируйте параметр setStatus(MyStatusEnum $status)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час