query = new Query($this); $this->kernel = (new Kernel($this))->bootstrap(); Config::getInstance()->bootstrap($this); } public function __call($name, $arguments) { if(method_exists($this->query,$name)){ $result = $this->query->$name(...$arguments); }else{ $result = $this->kernel->getService($name)->call($this,...$arguments); } return $result; } public static function __callStatic($name, $arguments) { $instance = self::getInstance(); return $instance->$name(...$arguments); } public function __destruct() { $this->destruct(); } public static function getInstance() { $instance = new self(); return $instance; } public static function config() { return Config::getInstance(); } public function destruct() { phpQuery::$documents = []; } public function bind(string $name,Closure $provide) { $this->kernel->bind($name,$provide); return $this; } }