169 похожих чатов

Можно ли еще что-то придумать, чтобы не писать геттеры и

сеттеры?
https://imgur.com/8umDlr4

9 ответов

6 просмотров

Посмотри @template-implements @template-extends Кажется, первое как раз для тебя.

<?php /** * @template T */ interface IFoo {} /** * @implements IFoo<int> */ class Foo implements IFoo {} https://psalm.dev/docs/annotating_code/templated_annotations/

xor eax, eax- Автор вопроса

Для setValue нельзя будет поменять тип в реализации

Ты можешь указывать это для отдельных переменных/методов. Не обязательно для целого класса

xor eax, eax- Автор вопроса

interface IFoo { public function setValue(mixed $value) : void; } class Foo implements IFoo { public function setValue(int $value) : void{ } }

https://psalm.dev/r/92d23c6edf

Но когда вы такое используете, то желательно, чтобы весь проект был покрыт типами и был включён псалм. Иначе действительно будут проблемы с тем, что реализация может не соответствовать контракту (т.к. пхп без псалма не смотрит на уточнение дженерика)

+ такое можно и без методов реализовать (указать для проперти в абстрактом классе, но я скорее за интерфейсы)

xor eax, eax- Автор вопроса

А как такое сделать через abstract class? phpstan выводит ошибки при попытке использовать его в list<ClassName>

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
49
читать файл максимально быстро? странный вопрос))
zamtmn
53
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
How to create an OS in C? what to study?
Linus
18
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Народ, с прошедшими и наступающими. Ща полную ересь прогоню, но фишка в том, что это не обычная алкогольная ересь Либера, а я реально хз что делать. Сайт с 2012-го года Косяк...
Alexey Liber
1
Карта сайта