Files
2026-02-26 04:53:11 +01:00

100 lines
2.0 KiB
PHP
Executable File

<?php declare(strict_types=1); namespace IR\Core; if (!defined('IR_START')) exit('<pre>No direct script access allowed</pre>');
/**
* @framework Wevads Framework
* @version 1.0
* @author Amine Idrissi <contact@iresponse.tech>
* @date 2019
* @name Http.php
*/
# http
use IR\Http\Request as Request;
use IR\Http\Response as Response;
use IR\Http\SessionManager as SessionManager;
use IR\Http\Client as Client;
/**
* @name Http
* @description core http class
*/
class Http
{
/**
* @name getInstance
* @description singleton access to constructor
* @access public | static
* @return Http
*/
public static function getInstance() : Http
{
if(self::$_instance == null)
{
self::$_instance = new Http();
}
return self::$_instance;
}
/**
* @name __construct
* @description class constructor
* @access private
* @return Http
*/
private function __construct()
{
$this->request = Request::getInstance();
$this->response = Response::getInstance();
$this->session = SessionManager::getInstance();
$this->client = Client::getInstance();
}
/**
* @name __clone
* @description preventing cloning object
* @access public
* @return Http
*/
public function __clone()
{
return (self::$_instance != null) ? self::$_instance : new Http();
}
/**
* @readwrite
* @access private
* @var Http
*/
private static $_instance;
/**
* @read
* @access public
* @var Request
*/
public $request;
/**
* @read
* @access public
* @var Response
*/
public $response;
/**
* @read
* @access public
* @var Client
*/
public $client;
/**
* @read
* @access public
* @var SessionManager
*/
public $session;
}