Как стать автором
Обновить
336
0
Роман Пронский @pronskiy

PHP

Не то чтобы я решал уходить, но пока сил и возможности писать на Хабр нет.

А почему нельзя сделать кеш на основе WeakMap или массива WeakReference'ов? Последнее разве и не будет WeakHashMap?

Выдаст предупреждение именно потому, что он объявлен устаревшим. __serialize() и __unserialize() можно использовать и без интерфейса Serializable.

Но согласен с вами, что формулировка была не очень. Поправил, спасибо!

Даа, в наше время трава была зеленее.

Это "непопулярное мнение" звучит приблизительно со времен PHP 5.0, вам ли не знать.

Все ресурсы переделывают в объекты, поэтому тайпхинта resource не будет.
Подробнее можно почитать вот тут https://php.watch/articles/resource-object

Лучше все-таки с #[AllowDynamicProperties], потому что сработает даже если уже есть наследование.

#[AllowDynamicProperties]
class A extends B
{
}

Он вот такую табличку приводит. То есть экономия только на запуске процесса получается?

Что-то все в кучу. Давайте разбираться.

асинхронность != параллельность

>хочется внедрить для некоторых операций параллельщину

Можно какой-нибудь конкретный пример из жизни? Попробуем разобраться.

Синхронность/одноточность PHP — преимущество, которое очень упрощает код и отладку.

Вот допустим смержат https://github.com/swow/swow в ядро PHP. Что изменится для вашего проекта "не на Amp/Swoole"?

Также, symfony/http-client — вполне поддерживает асинхронность https://symfony.com/doc/current/http_client.html#http-client-streaming-responses И вообще делать непблокирующие HTTP-вызовы — тривиальная задача, которую умели делать еще со времен curl multi.

Так одно другому не мешает. В смысле, это разные вещи. Файберы — это просто небольшое улучшение корутин.

А для async/await нужен асинхронный движок. В чем проблема делать сейчас на Amp/Swoole?

А разве есть такой оператор в Python, Ruby, Golang, C#, например?

Список джавовских JSR, конечно, впечатляет https://jcp.org/en/jsr/all. Хоть и большинство из них не применимо к PHP.

Хотелось бы чтобы все основные части фрэймворков были бы полностью взаимозаменяемыми. Мне кажется, что это и было главной идеей для создания стандартов.

Разные фреймворки потому и появляются, что у людей разное видение на хороший API. Иначе можно было бы создать стандарт для фреймворка :-)

Вот например symfony/console и так используется всеми. А те, кто его не используют — им, вероятно, не нравится как раз API.

Сколько есть аналогов flysystem?

Consumer/Producer — вот тут согласен. Есть вот такая инициатива https://github.com/queue-interop/queue-interop

Все-таки по поводу стандартов. Есть ощущение, что не так-то много их надо. Навскидку какие еще нужны?

И от каких языков отстает в этом плане PHP?

Ты имеешь в виду, что можно было просто новый стандарт выпустить?

О спасибо! Упустил из виду его.

Да, похоже баг на старой макоси https://youtrack.jetbrains.com/issue/IDEA-270448.
У меня проявляется на OS X(x86_64) v10.13.6. Какая у вас ОС?

Должно индексировать только при первом открытии. Попробуйте сделать File | Invalidate caches.... Если не поможет, то свяжитесь с поддержкой через Help | Contact Support.... — поможем разобраться в чем проблема.

Такого запроса еще не было. Создайте, пожалуйста, его в нашем трекере https://youtrack.jetbrains.com/newIssue?project=WI

Да, вы правы, теперь понял. Настройки нет, но можно перетащить табу в отдельное окно драг-н-дропом. Такой вариант решает проблему?

В разделе настроек Preferences | Advanced Settings есть опция Open Diff as Editor Tab — можно ее отключить.

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Зарегистрирован
Активность