Я хочу знать, будут ли какие-либо проблемы, связанные с синхронизацией / параллелизмом? если мы обслуживаем событие «request» (в HTTP Server, как swoole), используя «Singleton» в качестве «обратного вызова к событию request». Другими словами, обратный вызов, который обслуживает запрос, сначала создает объект синглтона (если он еще не существует.
Я создаю синглтон по событию «запрос» HTTP-сервера (Swoole). Член stati c который используется для создания отдельного экземпляра, также вызывает элемент non-stati c (того же самого) объекта singleton, кроме того, этот элемент non-stati c фактически обслуживает запрос.
$http->on('request', 'Bootstrap::getInstance');
// Синглтон
class Bootstrap{
protected static $instance;
private function __constructor(){
//initialize Phalcon Micro Routers and Events to fuse with Swoole
}
public static getInstance($htpRequest, $httpResponse) {
if (!$instance) {
self::$instance = new Bootstrap();
}
//Also call the non-static member to serve "request"
self::instance->run($htpRequest, $httpResponse);
}
//non-static function to serve request
public function run(httpRequest, httpResponse) {
// Serve Request
}
}