@@ -144,7 +144,8 @@ finally{
144
144
- [ ZipFile::openFromString] ( #zipfileopenfromstring ) - открывает ZIP-архив из строки.
145
145
- [ ZipFile::openFromStream] ( #zipfileopenfromstream ) - открывает ZIP-архив из потока.
146
146
- [ ZipFile::outputAsAttachment] ( #zipfileoutputasattachment ) - выводит ZIP-архив в браузер.
147
- - [ ZipFile::outputAsResponse] ( #zipfileoutputasresponse ) - выводит ZIP-архив, как Response PSR-7.
147
+ - [ ZipFile::outputAsPsr7Response] ( #zipfileoutputaspsr7response ) - выводит ZIP-архив, как PSR-7 Response.
148
+ - [ ZipFile::outputAsSymfonyResponse] ( #zipfileoutputassymfonyresponse ) - выводит ZIP-архив, как Symfony Response.
148
149
- [ ZipFile::outputAsString] ( #zipfileoutputasstring ) - выводит ZIP-архив в виде строки.
149
150
- [ ZipFile::rename] ( #zipfilerename ) - переименовывает запись по имени.
150
151
- [ ZipFile::rewrite] ( #zipfilerewrite ) - сохраняет изменения и заново открывает изменившийся архив.
@@ -753,28 +754,57 @@ $zipFile->outputAsAttachment($outputFilename);
753
754
$mimeType = 'application/zip';
754
755
$zipFile->outputAsAttachment($outputFilename, $mimeType);
755
756
```
756
- ##### ZipFile::outputAsResponse
757
- Выводит ZIP-архив, как Response [ PSR-7] ( http://www.php-fig.org/psr/psr-7/ ) .
757
+ ##### ZipFile::outputAsPsr7Response
758
+ Выводит ZIP-архив, как [ PSR-7 Response ] ( http://www.php-fig.org/psr/psr-7/ ) .
758
759
759
760
Метод вывода может использоваться в любом PSR-7 совместимом фреймворке.
760
761
``` php
761
762
// $response = ....; // instance Psr\Http\Message\ResponseInterface
762
- $zipFile->outputAsResponse ($response, $outputFilename);
763
+ $zipFile->outputAsPsr7Response ($response, $outputFilename);
763
764
```
764
765
Можно установить MIME-тип:
765
766
``` php
766
767
$mimeType = 'application/zip';
767
- $zipFile->outputAsResponse ($response, $outputFilename, $mimeType);
768
+ $zipFile->outputAsPsr7Response ($response, $outputFilename, $mimeType);
768
769
```
769
- Пример для Slim Framework:
770
+ ##### ZipFile::outputAsSymfonyResponse
771
+ Выводит ZIP-архив, как [ Symfony Response] ( https://symfony.com/doc/current/components/http_foundation.html#response ) .
772
+
773
+ Метод вывода можно использовать в фреймворке Symfony.
770
774
``` php
771
- $app = new \Slim\App;
772
- $app->get('/download', function ($req, $res, $args) {
773
- $zipFile = new \PhpZip\ZipFile();
774
- $zipFile['file.txt'] = 'content';
775
- return $zipFile->outputAsResponse($res, 'file.zip');
776
- });
777
- $app->run();
775
+ $response = $zipFile->outputAsSymfonyResponse($outputFilename);
776
+ ```
777
+ Вы можете установить Mime-Type:
778
+ ``` php
779
+ $mimeType = 'application/zip';
780
+ $response = $zipFile->outputAsSymfonyResponse($outputFilename, $mimeType);
781
+ ```
782
+ Пример использования в Symfony Controller:
783
+ ``` php
784
+ <?php
785
+
786
+ namespace App\Controller;
787
+
788
+ use PhpZip\ZipFile;
789
+ use Symfony\Component\HttpFoundation\Response;
790
+ use Symfony\Component\Routing\Annotation\Route;
791
+
792
+ class DownloadZipController
793
+ {
794
+ /**
795
+ * @Route("/downloads/{id}")
796
+ *
797
+ * @throws \PhpZip\Exception\ZipException
798
+ */
799
+ public function __invoke(string $id): Response
800
+ {
801
+ $zipFile = new ZipFile();
802
+ $zipFile['file'] = 'contents';
803
+
804
+ $outputFilename = $id . '.zip';
805
+ return $zipFile->outputAsSymfonyResponse($outputFilename);
806
+ }
807
+ }
778
808
```
779
809
##### ZipFile::rewrite
780
810
Сохраняет изменения и заново открывает изменившийся архив.
0 commit comments