PHP Closures

Route::get('/', function () {
return 'Hello World';
});
<?php$hello = function($name) {
echo “Hello ”, $name, “\n”;
};
$hello(“World”); // Hello World
$hello(“วันหยุด”); // Hello วันหยุด
<?php$base_number = 5;$power_by = function($exponent) use ($base_number) {
$base_number = pow($base_number, $exponent);
return $base_number;
};
echo $power_by(2), “\n”; // 25
echo $base_number, “\n”; // 5
<?php// สร้างตัวรับงานจาก RabbitMQ
$consumer = new Consumer();
// สร้างตัวส่งงานที่ทำเสร็จแล้วส่งกลับไปที่ RabbitMQ
$publisher = new Publisher();
// สร้างตัวทำงานบางอย่างที่เราต้องการ
$processor = new Processor();
// สร้างตัวเอาข้อมูลลงฐานข้อมูล
$db = new DB();
$callback = function($rabbitmq_message) use ($processor, $db, $publisher) {
$processed_item = $processor->process_item($rabbitmq_message);
$db->save($processed_item);
$publisher->publish($processed_item);
};
// สั่งให้ consumer ต่อ queue server ไว้และทำการเรียก callback
// เพื่อทำงานตามที่เรากำหนด เมื่อได้ message จาก queue
$consumer->listen($callback);

--

--

--

Head of Engineering at Appsynth

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nuttapon Yodkaew

Nuttapon Yodkaew

Head of Engineering at Appsynth

More from Medium

Null object design pattern in PHP — StudySection Blog

Null object design pattern in PHP — StudySection Blog

SRP: Single Responsability Principle

Underestimated PHP

Testingmania #4: Testing Form Requests with PHPUnit