Задачи и тесты по PHP для тренировки и обучения.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/JE-DRA
Для обратной связи: @proglibrary_feeedback_bot
Post #1556
575
- 👍 2
- ❤ 1
- 🔥 1
БИ @php_problems_lib
Showing posts older than #1557 · Back to latest
Forwarded from Библиотека собеса по PHP | вопросы с собеседований
// ❌ Загрузит ВСЕ записи в память
$users = User::all()->filter(...)->map(...);
// ✅ Lazy Collection — обрабатывает по одной записи через генератор
User::cursor()->filter(function (User $user) {
return $user->is_active;
})->each(function (User $user) {
ProcessUser::dispatch($user);
});
// Обработка огромного CSV без OutOfMemoryError
$collection = LazyCollection::make(function () {
$handle = fopen('huge_file.csv', 'r');
while ($row = fgetcsv($handle)) {
yield $row;
}
});
$collection->skip(1)->chunk(100)->each(function ($rows) {
ImportBatch::dispatch($rows->toArray());
});





Forwarded from Библиотека собеса по PHP | вопросы с собеседований
// Событие:
class UserRegistered {
public function __construct(public readonly User $user) {}
}
// Listener:
class SendWelcomeEmail {
public function handle(UserRegistered $event): void {
$this->mailer->send($event->user->email, 'Welcome!');
}
}
// Диспетчер:
$dispatcher->dispatch(new UserRegistered($user));