اجرای تابع در پس زمینه
کد هایی که در پس زمینه اجرا می شوند، از سورس اصلی جدا هستند و بصورت موازی با سورس اصلی اجرا خواهند شد
شما از این روش برای عملیات هایی که طولانی اند می توانید استفاده کنید تا کاربر را منتظر پاسخ نگه ندارید
شما با تابع Background::run می توانید کالبکی را معرفی کنید تا آن را با شبیه سازی های خود، به پس زمینه ارسال کند
Background::run(function() {
sleep(10);
echo 'Finish';
});روش کار
این تابع، Closure شما را به همراه use شده هایش به پس زمینه ارسال می کند تا در سورسی جدا اجرا شود
این تعریف به این معنیست که در سورس پس زمینه ی شما متغیر های قبل را نخواهید داشت! به غیر از اطلاعات کانفیگ و use شده ها
مثال چهارچوب
در مثال زیر روشی غلط و اشتباه برای دریافت پیام که یک متغیر غیر کالبک و use شده است را میبینید:
Background::run(function() {
global $msg; // خطا (نه در کانفیگ است نه یوز شده)
global $mmb;
$upd = $mmb->getUpd(); // خطا (نه در کانفیگ است نه یوز شده، همچنین در پس زمینه وجود ندارد)
// روش صحیح: یوز کردن متغیر
});روش صحیح:
Background::run(function() use($msg) {
$msg->replyText('پاسخ از پس زمینه');
});