توضیحات
این تابع، کالبک شما را در پس زمینه اجرا می کند
این تابع نیاز به Atom دارد و باید Atom::start صدا زده شده باشد
ورودی ها
این تابع تنها یک ورودی دارد که باید یک function از نوع Closure باشد
public function run(Closure $closure) { }
چهارچوب
توجه کنید که این تابع شبیه سازی شده است و باید چهارچوب هایی را رعایت کنید!
1- روش کار
اول باید با روش کار این متد آشنا شوید...
این متد کالبک شما را به پس زمینه ارسال می کند تا در سورسی جدا اجرا شود
2- خارج از تابع
شما در کالبک، فقط تنظیمات کانفیگ(قبل از Atom::start) و مقدار های use شده را دارید! پس باید به نحو درست و صحیح از این ویژگی ها استفاده کنید
مثال
به عنوان مثال می خواهید در پس زمینه پیام ارسال کنید:
Background::run(function() {
global $mmb; // تعریف شده در کانفیگ
$mmb->sendMsg([
'chat' => 123456,
'text' => 'سلام از پس زمینه'
]);
});
توجه کنید که اطلاعات آپدیت و متغیر های غیر کانفیگ به پس زمینه ارسال نمی شوند و اگر می خواهید از آنها استفاده کنید، باید آنها را use کنید
مثال غلط استفاده:
Background::run(function() {
global $msg; // خطا (نه در کانفیگ است نه یوز شده)
global $mmb;
$upd = $mmb->getUpd(); // خطا (نه در کانفیگ است نه یوز شده، همچنین در پس زمینه وجود ندارد)
// روش صحیح: یوز کردن متغیر
});
روش صحیح:
Background::run(function() use($msg) {
$msg->replyText('پاسخ از پس زمینه');
});