Size: a a a

2021 March 10

KN

Kirill Nesmeyanov in PHP
если он есть
источник

KN

Kirill Nesmeyanov in PHP
а если нету, то гг вп
источник

MM

Maksim Masiukevich in PHP
если нет, создай
источник

NT

Nikolay Turskyi in PHP
Kirill Nesmeyanov
а если нету, то гг вп
Форк
источник

AM

Artem Molotov in PHP
Maksim Masiukevich
оберни, спрячь за свой интерфейс
он там писал, что ещё один внешний класс мешает
источник

AM

Artem Molotov in PHP
тайп чекинг, видимо
источник

AS

Andrew Stark in PHP
Kirill Nesmeyanov
и что с ней делать мне?)
Делаете враппер, доступ к приватным полям через рефлексию. https://stackoverflow.com/questions/4347510/extend-class-with-final-constructor-on-php
источник

AM

Artem Molotov in PHP
Nikolay Turskyi
Форк
актуализировать все эти форки кто будет?
источник

MM

Maksim Masiukevich in PHP
Artem Molotov
он там писал, что ещё один внешний класс мешает
проблемы в днк мешают)
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
если нет, создай
а у нас пых уже умеет экстендить интерфейсы в существующие классы? class_add_interface(Vendor\Class::class, My\Interface::class)?)))
источник

MM

Maksim Masiukevich in PHP
тьфу ты
источник

KN

Kirill Nesmeyanov in PHP
да срать на доступ. Проблема в том, что декоратор не является инстансом этого класса
источник

KN

Kirill Nesmeyanov in PHP
А значит не пролезает туда, куда пролезает оригинальный класс
источник

AM

Artem Molotov in PHP
Kirill Nesmeyanov
А значит не пролезает туда, куда пролезает оригинальный класс
вот тут-то и докблоки вместо тайпхинтов с тайпчекингом в аргументах подошли бы
источник

AM

Artem Molotov in PHP
(но это очередной костыль)
источник

KN

Kirill Nesmeyanov in PHP
ага, костыль ради костыля)
источник

MM

Maksim Masiukevich in PHP
final class SomeClassWithoutInterface {}

class PatchedClass implements YourSuperInterface {
   __construct(SomeClassWithoutInterface $object)
}

и дальше каскадно, если надо) но с гарантией в 300% ты делаешь какой-то булшит)
источник

AM

Artem Molotov in PHP
Kirill Nesmeyanov
ага, костыль ради костыля)
а тот класс, который принимает, нельзя расширить к интерфейсу? что бы мост прошёл
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
final class SomeClassWithoutInterface {}

class PatchedClass implements YourSuperInterface {
   __construct(SomeClassWithoutInterface $object)
}

и дальше каскадно, если надо) но с гарантией в 300% ты делаешь какой-то булшит)
PathcedClass у тебя НЕ instanceof SomeClassWithoutInterface
источник

KN

Kirill Nesmeyanov in PHP
сколько раз надо это повторять?)
источник