Size: a a a

2021 February 26

AL

Anton Lakotka in PHP
execution timeout это с вероятностью 99% не проблема ЧТЕНИЯ большого файла.
а проблема его обработки и записи результатов куда-либо. и тут уже каждого по-разному
источник

MM

Maksim Masiukevich in PHP
https://www.php.net/manual/ru/function.stream-copy-to-stream.php

+ 3 строки на реализацию ридера чанка
+ https://symfony.com/doc/current/components/process.html
+ еще пара строк на склейку результата

в итоге у тебя получится что-то вроде основы бинарного поиска
источник

V

Vlad in PHP
Хм, а есть другой вариант чтения файлов, кроме как последовательно? Я взял пример из документации. Просто за 20 минут обработано было 1400 строк файла (из 130к), я сейчас в нуль ужал execution_time и боюсь, что в итоге может быть проблема с памятью, поэтому решил поинтересоваться, как можно память сэкономить)
http://prntscr.com/107jbw2
источник

MM

Maksim Masiukevich in PHP
гугли, инфы тебе дали достаточно
источник

V

Vlad in PHP
Да, спасибо
источник

m

militska in PHP
А как вы пользователям отображаете ошибки?(паблик проекты)

ктонить пробовал затаскивать sentry event id?  
хочется дать себе будущим чуть больше данных для диагностики кроме "кажется что то пошло не так" на скрине и трейса
источник

VC

Vladimir Chernyshev in PHP
militska
А как вы пользователям отображаете ошибки?(паблик проекты)

ктонить пробовал затаскивать sentry event id?  
хочется дать себе будущим чуть больше данных для диагностики кроме "кажется что то пошло не так" на скрине и трейса
мы с фронта шлем xhr с requestId и трейсами, если что-то на нем пошло не так, а пользователю так и пишем… Или не про это вопрос?
источник

m

militska in PHP
а потом по requestId  где смотрите?
источник

m

militska in PHP
ну тут скорее ошибк в бэкэнде
источник

m

militska in PHP
апишка обо что спотыкается на бэке. и нужно как то потом  понять что пошло не так
источник

DZ

Daniil Zobov in PHP
Тут спор небольшой возник, какой на ваш взгляд более правильный вариант c subject - использовать переменную для результата выражения sprintf или нет и  почему?

public function toMail($notifiable)
{
   $subject =
sprintf('Заявка #%d согласована', $this->request->id);

   return (new MailMessage)
               ->subject($subject)
               ->markdown('mail.request.approved', [
                   'request' => $this->request->getDisplayName(),
                   'button_title' => $this->request->name,
                   'button_url' => url(
sprintf('/system/%d/requests', $this->request->system_id)),
               ]);
}

public function toMail($notifiable)
{
   return (new MailMessage)
       ->subject(
           
sprintf('Заявка #%d согласована', $this->request->id)
       )
       ->markdown('mail.request.approved', [
           'request' => $this->request->getDisplayName(),
           'button_title' => $this->request->name,
           'button_url' => url(
sprintf('/system/%d/requests', $this->request->system_id)),
       ]);
}
источник

VM

Volodymyr Melko in PHP
Daniil Zobov
Тут спор небольшой возник, какой на ваш взгляд более правильный вариант c subject - использовать переменную для результата выражения sprintf или нет и  почему?

public function toMail($notifiable)
{
   $subject =
sprintf('Заявка #%d согласована', $this->request->id);

   return (new MailMessage)
               ->subject($subject)
               ->markdown('mail.request.approved', [
                   'request' => $this->request->getDisplayName(),
                   'button_title' => $this->request->name,
                   'button_url' => url(
sprintf('/system/%d/requests', $this->request->system_id)),
               ]);
}

public function toMail($notifiable)
{
   return (new MailMessage)
       ->subject(
           
sprintf('Заявка #%d согласована', $this->request->id)
       )
       ->markdown('mail.request.approved', [
           'request' => $this->request->getDisplayName(),
           'button_title' => $this->request->name,
           'button_url' => url(
sprintf('/system/%d/requests', $this->request->system_id)),
       ]);
}
Я бы не создавал лишние переменные. зачем они?
источник

DZ

Daniil Zobov in PHP
в угоду читаемости, чтобы не раздувать выражения
источник

MM

Maksim Masiukevich in PHP
я бы переменную оставил
источник

MM

Maksim Masiukevich in PHP
но это всё довольно субъективный момент, проще утрясти внутри тимы
источник

DZ

Daniil Zobov in PHP
мне кажется, если выражение занимает больше 5-7 строчек - с ним скорее всего что-то не так
источник

MM

Maksim Masiukevich in PHP
в строчках меряют только ослы
источник

VC

Vladimir Chernyshev in PHP
militska
а потом по requestId  где смотрите?
в эластик пишется, там и с фронта и с бэка все собирается, все с requestId  если уместно
источник

DZ

Daniil Zobov in PHP
Maksim Masiukevich
в строчках меряют только ослы
ну когда у тебя одно выражение занимает весь экран - это так себе в плане читаемости кода
источник

r

rocknrolla in PHP
Народ, как мне заполнить массив Arr[] чтобы внутри него ключами были цифры а значениями массив из title и link?
сейчас вот такой код у меня
$arr =[];
       foreach ($links as $link){
           $arr[]['title'] = $link->text();
           $arr[]['link']  = $link->getAttribute('href');
       }
но тогда он создает разные массивы под title  и link.мне нужно чтобы они были в одном.
источник