File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <?php declare (strict_types=1 );
2+
3+ /**
4+ * It's free open-source software released under the MIT License.
5+ *
6+ * @author Anatoly Nekhay <afenric@gmail.com>
7+ * @copyright Copyright (c) 2018, Anatoly Nekhay
8+ * @license https://github.com/sunrise-php/http-message/blob/master/LICENSE
9+ * @link https://github.com/sunrise-php/http-message
10+ */
11+
12+ namespace Sunrise \Http \Message ;
13+
14+ use Psr \Http \Message \StreamInterface ;
15+
16+ interface FileStreamInterface extends StreamInterface
17+ {
18+ public function getFilename (): string ;
19+ }
Original file line number Diff line number Diff line change 1111
1212namespace Sunrise \Http \Message ;
1313
14- use IteratorAggregate ;
15-
16- /**
17- * @extends IteratorAggregate<int, string>
18- */
19- interface HeaderInterface extends IteratorAggregate
14+ interface HeaderInterface
2015{
2116 public const RFC822_DATE_FORMAT = 'D, d M y H:i:s O ' ;
2217
Original file line number Diff line number Diff line change 1212namespace Sunrise \Http \Message \Stream ;
1313
1414use Sunrise \Http \Message \Exception \InvalidArgumentException ;
15+ use Sunrise \Http \Message \FileStreamInterface ;
1516use Sunrise \Http \Message \Stream ;
1617use Throwable ;
1718
1819use function fopen ;
1920use function is_resource ;
2021use function sprintf ;
2122
22- final class FileStream extends Stream
23+ final class FileStream extends Stream implements FileStreamInterface
2324{
2425 /**
2526 * @throws InvalidArgumentException
Original file line number Diff line number Diff line change 1212namespace Sunrise \Http \Message \Stream ;
1313
1414use Sunrise \Http \Message \Exception \RuntimeException ;
15+ use Sunrise \Http \Message \FileStreamInterface ;
1516use Sunrise \Http \Message \Stream ;
1617
1718use function fopen ;
2021use function sys_get_temp_dir ;
2122use function tempnam ;
2223
23- final class TempFileStream extends Stream
24+ final class TempFileStream extends Stream implements FileStreamInterface
2425{
2526 /**
2627 * @throws RuntimeException
Original file line number Diff line number Diff line change 1212namespace Sunrise \Http \Message \Stream ;
1313
1414use Sunrise \Http \Message \Exception \RuntimeException ;
15+ use Sunrise \Http \Message \FileStreamInterface ;
1516use Sunrise \Http \Message \Stream ;
1617
1718use function is_resource ;
2425 * read/write (w+b) mode. The file will be automatically deleted
2526 * when it is closed or the program terminates.
2627 */
27- final class TmpfileStream extends Stream
28+ final class TmpfileStream extends Stream implements FileStreamInterface
2829{
2930 /**
3031 * @throws RuntimeException
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Sunrise \Http \Message \Tests \Stream ;
6+
7+ use PHPUnit \Framework \TestCase ;
8+ use Sunrise \Http \Message \Stream \FileStream ;
9+
10+ final class FileStreamTest extends TestCase
11+ {
12+ public function testFilename (): void
13+ {
14+ $ stream = new FileStream (__FILE__ , 'r ' );
15+ self ::assertSame (__FILE__ , $ stream ->getFilename ());
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Sunrise \Http \Message \Tests \Stream ;
6+
7+ use PHPUnit \Framework \TestCase ;
8+ use Sunrise \Http \Message \Stream \TempFileStream ;
9+
10+ final class TempFileStreamTest extends TestCase
11+ {
12+ public function testFilename () : void
13+ {
14+ $ stream = new TempFileStream ();
15+ self ::assertFileExists ($ stream ->getFilename ());
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Sunrise \Http \Message \Tests \Stream ;
6+
7+ use PHPUnit \Framework \TestCase ;
8+ use Sunrise \Http \Message \Stream \TmpfileStream ;
9+
10+ final class TmpfileStreamTest extends TestCase
11+ {
12+ public function testFilename (): void
13+ {
14+ $ stream = new TmpfileStream ();
15+ self ::assertFileExists ($ stream ->getFilename ());
16+ }
17+ }
You can’t perform that action at this time.
0 commit comments