Size: a a a

2021 March 10

AM

Artem Molotov in PHP
Artem Molotov
а тот класс, который принимает, нельзя расширить к интерфейсу? что бы мост прошёл
я так в laminas хотел DateTime к DateTimeInterface расширить, но Ocramius не дал

https://github.com/laminas/laminas-http/pull/52

:((
источник

MM

Maksim Masiukevich in PHP
Kirill Nesmeyanov
PathcedClass у тебя НЕ instanceof SomeClassWithoutInterface
да он и не должен быть
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
да он и не должен быть
да должен же, если половина других вендоров на него завязана
источник

MM

Maksim Masiukevich in PHP
половина вендоров завязана на его публичный апи, а не на его наследование
источник

MM

Maksim Masiukevich in PHP
и тебе стоит у них поучиться)
источник

KN

Kirill Nesmeyanov in PHP
$factory = new Vendor\Factory();
$factory->add(new Vendor\DriverX());


И вот DriverX нужно расширить, например
источник

AM

Artem Molotov in PHP
Maksim Masiukevich
половина вендоров завязана на его публичный апи, а не на его наследование
а если указывают тип конкретной реализации — это только на апи завязываются?
источник

MM

Maksim Masiukevich in PHP
Artem Molotov
а если указывают тип конкретной реализации — это только на апи завязываются?
с точки зрения апи вендорного кода нет разницы, есть у тебя интерфейс, на который ты завязываешься, или на конкретную реализацию при его отсутствии. Если интерфейса нет, значит точки расширения там так же не предусмотрено.
источник

KN

Kirill Nesmeyanov in PHP
ну вот, а в DriverX косяк
источник

MM

Maksim Masiukevich in PHP
в случае этого торчка он хотел заэкстендить реализацию эвент лупа. Что является максимально всратой идеей
источник

KN

Kirill Nesmeyanov in PHP
Ну, например, под винду не работает. Или не совместим с php 8.0. Пофигу какой косяк или отсутствующая фича
источник

MM

Maksim Masiukevich in PHP
или промиса... промиса, вроде
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
в случае этого торчка он хотел заэкстендить реализацию эвент лупа. Что является максимально всратой идеей
не, эвентлуп надо было задекорировать и руками вызывать. Но я пообщался с цбоеном, он сказал что такое апи было и вырезали
источник

KN

Kirill Nesmeyanov in PHP
и через futureTick можно типа эмулировать
источник

KN

Kirill Nesmeyanov in PHP
вешать на него стоп эвентлупа, а "тикать" руками через run
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
или промиса... промиса, вроде
а что промиза? Ты на JS посмотри)
источник

MM

Maksim Masiukevich in PHP
Kirill Nesmeyanov
а что промиза? Ты на JS посмотри)
чтобы что?)
источник

KN

Kirill Nesmeyanov in PHP
Maksim Masiukevich
чтобы что?)
ну там это нормальная практика местами
источник

KN

Kirill Nesmeyanov in PHP
иметь какую-то таску, просто асинхронную
источник

KN

Kirill Nesmeyanov in PHP
вон, в том же Amp тоже
источник