Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/share/php/Slim/Psr7/Factory/ |
Upload File : |
<?php /** * Slim Framework (https://slimframework.com) * * @license https://github.com/slimphp/Slim-Psr7/blob/master/LICENSE.md (MIT License) */ declare(strict_types=1); namespace Slim\Psr7\Factory; use InvalidArgumentException; use Psr\Http\Message\StreamFactoryInterface; use Psr\Http\Message\StreamInterface; use RuntimeException; use Slim\Psr7\Stream; use ValueError; use function fopen; use function fwrite; use function is_resource; use function restore_error_handler; use function rewind; use function set_error_handler; class StreamFactory implements StreamFactoryInterface { /** * {@inheritdoc} * * @throws RuntimeException */ public function createStream(string $content = ''): StreamInterface { $resource = fopen('php://temp', 'rw+'); if (!is_resource($resource)) { throw new RuntimeException('StreamFactory::createStream() could not open temporary file stream.'); } fwrite($resource, $content); rewind($resource); return $this->createStreamFromResource($resource); } /** * {@inheritdoc} */ public function createStreamFromFile( string $filename, string $mode = 'r', StreamInterface $cache = null ): StreamInterface { set_error_handler( static function (int $errno, string $errstr) use ($filename, $mode): void { throw new RuntimeException( "Unable to open $filename using mode $mode: $errstr", $errno ); } ); try { $resource = fopen($filename, $mode); } catch (ValueError $exception) { throw new RuntimeException("Unable to open $filename using mode $mode: " . $exception->getMessage()); } finally { restore_error_handler(); } if (!is_resource($resource)) { throw new RuntimeException( "StreamFactory::createStreamFromFile() could not create resource from file `$filename`" ); } return new Stream($resource, $cache); } /** * {@inheritdoc} */ public function createStreamFromResource($resource, StreamInterface $cache = null): StreamInterface { if (!is_resource($resource)) { throw new InvalidArgumentException( 'Parameter 1 of StreamFactory::createStreamFromResource() must be a resource.' ); } return new Stream($resource, $cache); } }