Size: a a a

2020 July 15

k

knopkod4v in PHP
Альберт Степанцев
за не-bool под if
автор RFC тоже так подумал и решил, что теперь-то там будет bool
источник

k

knopkod4v in PHP
источник

A

Adel in PHP
Anton Lakotka
с 3мя = ?
Вообще не понял что ты написал, но там просто тип «Boolean?»
источник

AL

Anton Lakotka in PHP
ну ты сказал что приходится иногда так писать. и я просто подумал ты говорил про 3 равно или просто что приходится писать foo == true ?
источник

ВУ

Валентин Удальцов... in PHP
Максим
Всем привет, есть такой код: https://pastebin.com/JsemYW4G в нем происходит утечка памяти при каждом вызове функции NAME (естественно это не реальное название). Кто-то сталкивался с таким? Есть решение проблемы?

PHP 7.4 https://github.com/PHPOffice/PhpSpreadsheet
Юзай box/spout для excel, там ничего не течёт.

https://t.me/phpyh/95
Telegram
Пых
Проект Happy Job, где я занимаюсь проектированием и разработкой бэкенда,  — это в первую очередь аналитика.
А какая аналитика без выгрузок в Excel 😉

Раньше я всегда использовал библиотеку PHPOffice/PhpSpreadsheet (бывший PHPOffice/PHPExcel). Она предоставляет почти полный инструментарий для работы с таблицами, но есть один большой минус — формирование листа по умолчанию происходит в памяти. Одна ячейка вместе с метаданными весит примерно 1 Кбайт, поэтому выгрузка лишь 400 000 строк в три колонки уже обойдется более чем в 1 Гбайт памяти. В библиотеке предусмотрена возможность кэшировать ячейки на базе PSR-16, но это значительно снижает скорость записи.

Для нашего кейса я нашёл решение получше. Куда менее популярная библиотека box/spout позволяет читать Excel-файлы и писать в них построчно и очень быстро. Расход памяти константный из коробки, без всяких плясок с кэшем (по факту она, конечно, создает какие-то временные файлы в sys_get_temp_dir()). Пакет тоже поддерживает листы и типы данных, но не умеет в автоширину…
источник

A

Adel in PHP
Anton Lakotka
ну ты сказал что приходится иногда так писать. и я просто подумал ты говорил про 3 равно или просто что приходится писать foo == true ?
== true :)
источник

AL

Anton Lakotka in PHP
а я вот не могу вспомнить писал ли я такое. наверное нет.
может только foo == false т.к. !foo менее заметно глазу
источник

М

Максим in PHP
Валентин Удальцов
Юзай box/spout для excel, там ничего не течёт.

https://t.me/phpyh/95
Telegram
Пых
Проект Happy Job, где я занимаюсь проектированием и разработкой бэкенда,  — это в первую очередь аналитика.
А какая аналитика без выгрузок в Excel 😉

Раньше я всегда использовал библиотеку PHPOffice/PhpSpreadsheet (бывший PHPOffice/PHPExcel). Она предоставляет почти полный инструментарий для работы с таблицами, но есть один большой минус — формирование листа по умолчанию происходит в памяти. Одна ячейка вместе с метаданными весит примерно 1 Кбайт, поэтому выгрузка лишь 400 000 строк в три колонки уже обойдется более чем в 1 Гбайт памяти. В библиотеке предусмотрена возможность кэшировать ячейки на базе PSR-16, но это значительно снижает скорость записи.

Для нашего кейса я нашёл решение получше. Куда менее популярная библиотека box/spout позволяет читать Excel-файлы и писать в них построчно и очень быстро. Расход памяти константный из коробки, без всяких плясок с кэшем (по факту она, конечно, создает какие-то временные файлы в sys_get_temp_dir()). Пакет тоже поддерживает листы и типы данных, но не умеет в автоширину…
Спасибо, посмотрю
источник

А

Артём in PHP
Валентин Удальцов
Юзай box/spout для excel, там ничего не течёт.

https://t.me/phpyh/95
Telegram
Пых
Проект Happy Job, где я занимаюсь проектированием и разработкой бэкенда,  — это в первую очередь аналитика.
А какая аналитика без выгрузок в Excel 😉

Раньше я всегда использовал библиотеку PHPOffice/PhpSpreadsheet (бывший PHPOffice/PHPExcel). Она предоставляет почти полный инструментарий для работы с таблицами, но есть один большой минус — формирование листа по умолчанию происходит в памяти. Одна ячейка вместе с метаданными весит примерно 1 Кбайт, поэтому выгрузка лишь 400 000 строк в три колонки уже обойдется более чем в 1 Гбайт памяти. В библиотеке предусмотрена возможность кэшировать ячейки на базе PSR-16, но это значительно снижает скорость записи.

Для нашего кейса я нашёл решение получше. Куда менее популярная библиотека box/spout позволяет читать Excel-файлы и писать в них построчно и очень быстро. Расход памяти константный из коробки, без всяких плясок с кэшем (по факту она, конечно, создает какие-то временные файлы в sys_get_temp_dir()). Пакет тоже поддерживает листы и типы данных, но не умеет в автоширину…
Плюсую
источник

A

Adel in PHP
Anton Lakotka
а я вот не могу вспомнить писал ли я такое. наверное нет.
может только foo == false т.к. !foo менее заметно глазу
Так если возвращается Nullable - его же нельзя использовать в if. Нужно каким то образом привести его к булеану. Можно конечно if (var ?: false). Но == true как-то почитабельнее
источник

AL

Anton Lakotka in PHP
а, теперь понял что к чему
источник

AL

Anton Lakotka in PHP
да, такое я писал. и тоже удивлялся :)
источник

A

Aleksandr Khristenko in PHP
Adel
Так если возвращается Nullable - его же нельзя использовать в if. Нужно каким то образом привести его к булеану. Можно конечно if (var ?: false). Но == true как-то почитабельнее
Может === true?
источник

A

Adel in PHP
Aleksandr Khristenko
Может === true?
Мы про Котлин)
источник

A

Aleksandr Khristenko in PHP
А, ок.
источник

DT

Dmitriy Tkachenko in PHP
Разве это так не очевидно? Что в чате пхп про котлин))
источник

NT

Nikolay Turskyi in PHP
Dmitriy Tkachenko
Разве это так не очевидно? Что в чате пхп про котлин))
Kotlin === PHP9
источник

AM

Alexander Melekhovet... in PHP
Запахло perl 8 :)
источник

AM

Artem Molotov in PHP
Множественные уязвимости в Google Chrome
https://www.securitylab.ru/vulnerability/510094.php
</offtop>
источник

Р

Руслан in PHP
Часто такое вижу, в чем преимущество?
источник