Size: a a a

2020 May 28

ВУ

Валентин Удальцов... in PHP
Maxim Kainov
Ну возможно, не все идеально )
я сам юзаю symfony/cache, я не поддерживаю его и мне ок, срать как он написан. мои задачи он выполняет.
но мы не про это, а про пример проекта на трейтах и критерии Роберта Мартина
источник

A

Aleksandr Khristenko in PHP
Maksim Masiukevich
для тривиальных приложений можно взять условный пгрест + чё-нить для крудов на жсе) и нахер никакие симфони не нужны
или hasura graphql, которое тоже вокруг постгреса но реализует graphql интерфейс
источник

MM

Maksim Masiukevich in PHP
Aleksandr Khristenko
или hasura graphql, которое тоже вокруг постгреса но реализует graphql интерфейс
не суть
источник

MM

Maksim Masiukevich in PHP
посыл в том, что всякие крудоштуки уже давно сделаны
источник

ВУ

Валентин Удальцов... in PHP
давайте разделять два момента
какие-то Symfony-компоненты могут быть удобны для использования. тот же Cache, так как он реализует Psr 6.
но это не значит, что они круто написаны и могут быть примером хорошего кода
источник

A

Aleksandr Khristenko in PHP
Валентин Удальцов
покажите мне код, где нужен трейт.

- если там один трейт, то его можно заменить абстрактным классом
- если два и больше трейтов, то либо нарушается SRP, либо происходит бессмысленное обощение, которое приводит к усложнению и запутыванию кода
Выше же говорили. Дефолнтная реализация интерфейса. Заменить на абстрактный класс не получится, т.к. на класс можно навесить несколько интерйесов, но отнаследоваться только от одного абстрактного класса.
источник

MM

Maksim Masiukevich in PHP
Валентин Удальцов
давайте разделять два момента
какие-то Symfony-компоненты могут быть удобны для использования. тот же Cache, так как он реализует Psr 6.
но это не значит, что они круто написаны и могут быть примером хорошего кода
А там rc поправили?)
источник

MM

Maksim Masiukevich in PHP
Aleksandr Khristenko
Выше же говорили. Дефолнтная реализация интерфейса. Заменить на абстрактный класс не получится, т.к. на класс можно навесить несколько интерйесов, но отнаследоваться только от одного абстрактного класса.
А пример можно?)
источник

A

Aleksandr Khristenko in PHP
Кстати, а кто-нибудь тут компоненты laminas использует?
источник

ВУ

Валентин Удальцов... in PHP
Aleksandr Khristenko
Выше же говорили. Дефолнтная реализация интерфейса. Заменить на абстрактный класс не получится, т.к. на класс можно навесить несколько интерйесов, но отнаследоваться только от одного абстрактного класса.
несколько интерфейсов в большинстве случае нарушение SRP
иногда нужно навесить второй из-за того, что они разделены. но это, как правило, сопустствующая функциональность
источник

ВУ

Валентин Удальцов... in PHP
Maksim Masiukevich
А там rc поправили?)
м?
источник

A

Aleksandr Khristenko in PHP
Когда класс реализует несколько интерфейсов, то это нарушение SRP? Серьезно?
источник

MM

Maksim Masiukevich in PHP
Пример бы)
источник

ВУ

Валентин Удальцов... in PHP
Aleksandr Khristenko
Когда класс реализует несколько интерфейсов, то это нарушение SRP? Серьезно?
ты читать умеешь?) "как правило"
это не прямое следствие, а закономерность
источник

A

Aleksandr Khristenko in PHP
Maksim Masiukevich
А пример можно?)
Пример чего конкретно?
источник

MM

Maksim Masiukevich in PHP
Aleksandr Khristenko
Пример чего конкретно?
Этих ваших дефолтных реализаций
источник

ВУ

Валентин Удальцов... in PHP
да даже шире — конкретный пример кода на Gist, где оправдано использование трейтов
источник

ВУ

Валентин Удальцов... in PHP
давайте прям конкурс проведём)
источник

MM

Maksim Masiukevich in PHP
Aleksandr Khristenko
Пример чего конкретно?
прям без стёба) я не понимаю что за "дефолтные реализации", в когторых так помогают трейты
источник

MM

Maksim Masiukevich in PHP
в моей картине там либо интерфейс говно, либо... хз что либо)
источник