Size: a a a

2021 March 11

k

knopkod4v in PHP
Иван Лещёв
сразу видно, симфони вик не читаешь!
это паблики только так работают
отличная причина начать делать все проперти паблик!
источник

ИЛ

Иван Лещёв in PHP
Vladimir Chernyshev
есть у них нужда видеть это приватное свойство или они в рид модели отдельной видят?
факт канцелед - публичный вне зависимости от того, что там есть в рид модели
завтра придётся писать автоматизацию основанную на этом факте, а в основной модели кто-то перестарался с приватами
источник

ИЛ

Иван Лещёв in PHP
knopkod4v
отличная причина начать делать все проперти паблик!
хе хе, просто в пхп нет дружественных классов
поэтому отдельные паблики на самом деле не должны быть пабликами
публичные конструкторы в сервисах нужны только для контейнера и для тестов, но никого не смущает это
а вот если публичное свойство - всё, диверсия
источник

KN

Kirill Nesmeyanov in PHP
knopkod4v
отличная причина начать делать все проперти паблик!
я и так делаю для DTO или если они иммутабельные =)
источник

KN

Kirill Nesmeyanov in PHP
и проблемы с полями в пыхе ровно две:
1) нет свойств
2) нет возможности декларации на уровне интерфейсов
источник

KN

Kirill Nesmeyanov in PHP
вторая решается через декларацию докблока в интерфейсе, а первая либо через костыли, либо никак
источник

VC

Vladimir Chernyshev in PHP
Иван Лещёв
факт канцелед - публичный вне зависимости от того, что там есть в рид модели
завтра придётся писать автоматизацию основанную на этом факте, а в основной модели кто-то перестарался с приватами
ну сделать геттер делов-то, это не убрать, если он вдруг оказывается лишним
источник

KN

Kirill Nesmeyanov in PHP
так что если они иммутабельные (благо есть 3 разных варианта это обозначить), то причин не делать поля публичными ровно ноль
источник

ИЛ

Иван Лещёв in PHP
Vladimir Chernyshev
ну сделать геттер делов-то, это не убрать, если он вдруг оказывается лишним
дык, не надо бояться, если интерфейс вдруг полнее, чем необходимо
никто же не заставляет использовать всё и всегда
а то дай волю, из доктрины повыпиливают чтение, раз уж чтение теперь отдельно
источник

VC

Vladimir Chernyshev in PHP
Иван Лещёв
хе хе, просто в пхп нет дружественных классов
поэтому отдельные паблики на самом деле не должны быть пабликами
публичные конструкторы в сервисах нужны только для контейнера и для тестов, но никого не смущает это
а вот если публичное свойство - всё, диверсия
вот о дружественных тестах думал как раз. но если похожим образом приспичиввает, то предпочту с помощью “магии” читать приватное свойство или интеграционный тест написать, чем вводить геттер/иззер в формально публичный API объекта, пускай даже с internal аннотацией
источник

VC

Vladimir Chernyshev in PHP
Иван Лещёв
дык, не надо бояться, если интерфейс вдруг полнее, чем необходимо
никто же не заставляет использовать всё и всегда
а то дай волю, из доктрины повыпиливают чтение, раз уж чтение теперь отдельно
если он полнее чем необходимо, то рано или поздно на него кто-нибудь завяжется как на workaround для своей задачи и вот у нас уже не необходимый каплинг )
источник

ЕР

Евгений Ромашкан... in PHP
Vladimir Chernyshev
вот о дружественных тестах думал как раз. но если похожим образом приспичиввает, то предпочту с помощью “магии” читать приватное свойство или интеграционный тест написать, чем вводить геттер/иззер в формально публичный API объекта, пускай даже с internal аннотацией
Рефлексия есть, чего не хватает то?
источник

ЕР

Евгений Ромашкан... in PHP
Иван Лещёв
дык, не надо бояться, если интерфейс вдруг полнее, чем необходимо
никто же не заставляет использовать всё и всегда
а то дай волю, из доктрины повыпиливают чтение, раз уж чтение теперь отдельно
Interface Segregation Principle? SOLID? Не, не слышали?
источник

ИЛ

Иван Лещёв in PHP
Евгений Ромашкан
Interface Segregation Principle? SOLID? Не, не слышали?
это тут при чём?
источник

ЕР

Евгений Ромашкан... in PHP
Иван Лещёв
это тут при чём?
При твоих советах вредных
источник

VC

Vladimir Chernyshev in PHP
Евгений Ромашкан
Рефлексия есть, чего не хватает то?
я биндить кложуру предпочитаю ) но это же костыли всё равно по сути
источник

ЕР

Евгений Ромашкан... in PHP
Vladimir Chernyshev
я биндить кложуру предпочитаю ) но это же костыли всё равно по сути
Почему костыли?
источник

VC

Vladimir Chernyshev in PHP
Евгений Ромашкан
Почему костыли?
обход явно установленных ограничений видимости
источник

ИЛ

Иван Лещёв in PHP
Евгений Ромашкан
При твоих советах вредных
ты из доктрины уже выпилил чтение?
источник

KN

Kirill Nesmeyanov in PHP
Vladimir Chernyshev
я биндить кложуру предпочитаю ) но это же костыли всё равно по сути
кстати надо потестить что быстрее, бинд кложуры или получение через рефлексию)
источник