Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/opis/closure/src/ |
Upload File : |
<?php /* =========================================================================== * Copyright (c) 2018-2021 Zindex Software * * Licensed under the MIT License * =========================================================================== */ namespace Opis\Closure; /** * @internal */ class ClosureStream { const STREAM_PROTO = 'closure'; protected static $isRegistered = false; protected $content; protected $length; protected $pointer = 0; function stream_open($path, $mode, $options, &$opened_path) { $this->content = "<?php\nreturn " . substr($path, strlen(static::STREAM_PROTO . '://')) . ";"; $this->length = strlen($this->content); return true; } public function stream_read($count) { $value = substr($this->content, $this->pointer, $count); $this->pointer += $count; return $value; } public function stream_eof() { return $this->pointer >= $this->length; } public function stream_set_option($option, $arg1, $arg2) { return false; } public function stream_stat() { $stat = stat(__FILE__); $stat[7] = $stat['size'] = $this->length; return $stat; } public function url_stat($path, $flags) { $stat = stat(__FILE__); $stat[7] = $stat['size'] = $this->length; return $stat; } public function stream_seek($offset, $whence = SEEK_SET) { $crt = $this->pointer; switch ($whence) { case SEEK_SET: $this->pointer = $offset; break; case SEEK_CUR: $this->pointer += $offset; break; case SEEK_END: $this->pointer = $this->length + $offset; break; } if ($this->pointer < 0 || $this->pointer >= $this->length) { $this->pointer = $crt; return false; } return true; } public function stream_tell() { return $this->pointer; } public static function register() { if (!static::$isRegistered) { static::$isRegistered = stream_wrapper_register(static::STREAM_PROTO, __CLASS__); } } }