روند
اجرای برنامه و یا دستور هایی از طریق دستورات خط فرمان و یا اجرای بخشی از برنامه به صورت موازی و در زمینه از جمله مواردی هست که میتوانید با استفاده از کلاس pakcages\base\process
انجام دهید. نتیجه هر روند باید پاسخی از جنس کلاس packages\base\response
باشد .
برای اطلاعات بیشتر به صفحه ی پاسخ مراجعه کنید
نمونه-۱ یک فایل روند
<?php
namespace packages\packagename\processes;
use \packages\base\{process, response};
use \packages\packagename\ticket;
class tickets extents process {
public function auto_close(): response {
$response = new response(false);
$ticket = new ticket();
$ticket->where("status", 1); // ticket answered
$ticket->where("answered_at", time() - 86400, "<=");
$tickets = $ticket->get();
foreach ($tickets as $ticket) {
$ticket->status = 4; // ticket closed
$ticket->save();
}
$response->setStatus(true);
return $response;
}
}
نمونه-2 فایل روند
<?php
namespace packages\packagename\processes;
use \packages\base\{process, response};
use \packages\packagename\phpmailer;
class Email extends process {
public function send(array $parameter): response {
$mail = new phpmailer();
$mail->setFrom($parameter["sender"], $parameter["sender_name"]);
$mail->addAddress($parameter["send_to"]);
$mail->Subject = "Jeyserver Support";
$mail->Body = "Your request has been done !"
$result = $mail->send();
return new response($result);
}
}
فراخوانی روند ها
از دو طریق خط فرمان و یا نمونه سازی کلاس process
میتوان کلاس های روندی را فراخوانی و اجرا کرد .
فراخوانی از طریق خط فرمان
از طریق دستورات خط فرمان به مسیر نصب پروژه بروید و فایل index.php
همراه با نام کلاس و متد روند که با استفاده از @
به یکدیگر متصل شده اند را در پارامتری با نام process
اجرا کنید .
cd /home/projectname/webserver
php index.php --process=packages/packagename/processes/tickets@auto_close