Modern PHP မူဘောင်တွင်ဖြစ်ရပ်ပြုပြင်ခြင်းနှင့်စာတိုပေးပို့ရေးယန္တရားများသည်လျှောက်လွှာအစိတ်အပိုင်းများအကြားဆက်သွယ်ရေးနည်းလမ်းများဖြစ်သည်။ တိကျသောအဖြစ်အပျက်တစ်ခုကိုဖြစ်ပေါ်စေသည့်အခါစနစ်ကိုအလိုအလျှောက်အလိုအလျှောက်အတိုင်းအလိုအလျောက်အကောင်အထည်ဖော်ရန်ခွင့်ပြုရန်ခွင့်ပြုရန်လည်းခွင့်မပြုပါ။
Event processing ကိုများသောအားဖြင့်နားထောင်သူများအားဖြင့်အောင်မြင်သည်။ ဖြစ်ရပ်တစ်ခုဖြစ်သည့်အခါစနစ်သည်ကြိုတင်သတ်မှတ်ထားသော callback နည်းလမ်းကိုခေါ်ဆိုလိမ့်မည်။ ဤ၏အားသာချက်မှာ decouple ကိုအောင်မြင်ရန်နှင့်ကွဲပြားခြားနားသော module များကြားတွင်မှီခိုအားထားရန်ဖြစ်သည်။
ဥပမာ -
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class UserCreatedSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
'user.created' => 'onUserCreated',
];
}
public function onUserCreated(UserCreatedEvent $event): void
{
// အသစ်မှတ်ပုံတင်ထားသောအသုံးပြုသူထံကြိုဆိုသောအီးမေးလ်ကိုပေးပို့ပါ
}
}
$dispatcher = new EventDispatcher();
$dispatcher->addListener('user.created', new UserCreatedSubscriber());
$user = new User();
$dispatcher->dispatch(new UserCreatedEvent($user));
မက်ဆေ့ခ်ျပို့ခြင်းယန္တရားသည်များသောအားဖြင့်စတုတ်ထတန်းများမှတစ်ဆင့်အကောင်အထည်ဖော်သည့်အစိတ်အပိုင်းများကိုဖြုတ်ချရန်အခြားနည်းလမ်းတစ်ခုဖြစ်သည်။ လျှောက်လွှာသည်လူတန်းစားသို့မက်ဆေ့ခ်ျများပေးပို့နိုင်ပြီးစားသုံးသူမှသူတို့အားပြတ်ပြတ်သားသားဖြစ်စေသည်။ ဘုံမက်ဆေ့ခ်ျကိုပွဲစားများတွင် RabbitMQ နှင့် Kafka တို့ပါဝင်သည်။
ဥပမာ -
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
$connection = new AMQPStreamConnection('host', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('my_queue', false, false, false, false);
$messageBody = ['email' => 'foo@example.com'];
$message = new AMQPMessage(json_encode($messageBody));
$channel->basic_publish($message, '', 'my_queue');
$channel->close();
$connection->close();
ဖြစ်ရပ်ပြုပြင်ခြင်းနှင့်မက်ဆေ့ခ်ျပို့ခြင်းယန္တရားများကိုဆင်ခြင်တုံတရားဖြင့်အသုံးပြုခြင်းဖြင့် developer များသည်ပိုမိုလွယ်ကူသော, ၎င်းသည်ထပ်တူပြုခြင်းသို့မဟုတ်ပြတ်တောင်းပြတ်တောင်းသောသတင်းစကားတန်းတူဖြစ်ရပ်များသည်ဖြစ်စေ,