Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
recca0120 committed May 2, 2023
1 parent db18d4c commit a402fcf
Show file tree
Hide file tree
Showing 19 changed files with 72 additions and 52 deletions.
18 changes: 4 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,21 +90,14 @@ $config = [
'path' => 'web_path'
];

$inputName = 'file';
$storagePath = 'relative path';
$api = 'fileapi'; // or plupload

Receiver::factory($config, $api)->receive($inputName)->send();
Receiver::factory($config, 'fileapi')->receive('file')->send();
```

## Standalone

```php

use Recca0120\Upload\Receiver;
use Recca0120\Upload\FileAPI;
use Recca0120\Upload\Plupload;
use Illuminate\Http\JsonResponse;
use Recca0120\Upload\Drivers\FileAPI;use Recca0120\Upload\Receiver;

require __DIR__.'/vendor/autoload.php';

Expand All @@ -115,11 +108,8 @@ $config = [
'path' => 'web_path'
];

$inputName = 'file';
$storagePath = 'relative path';

// if use Plupload, new Recca0120\Upload\Plupload
$receiver = new Receiver(new FileAPI($config));
// save to $config['base_path'].'/'.$storagePath;
$receiver->receive($inputName)->send();
// save to $config['storage'];
$receiver->receive('file')->send();
```
12 changes: 6 additions & 6 deletions docs/demo/upload.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

use Recca0120\Upload\Dropzone;
use Recca0120\Upload\FileAPI;
use Recca0120\Upload\FilePond;
use Recca0120\Upload\FineUploader;
use Recca0120\Upload\Plupload;
use Recca0120\Upload\Drivers\Dropzone;
use Recca0120\Upload\Drivers\FileAPI;
use Recca0120\Upload\Drivers\FilePond;
use Recca0120\Upload\Drivers\FineUploader;
use Recca0120\Upload\Drivers\Plupload;
use Recca0120\Upload\Receiver;

if (file_exists(__DIR__.'/../../vendor/autoload.php')) {
Expand All @@ -21,7 +21,7 @@
];

$inputName = 'file';
$api = isset($_GET['api']) ? $_GET['api'] : null;
$api = $_GET['api'] ?? null;

switch ($api) {
case 'plupload':
Expand Down
4 changes: 3 additions & 1 deletion src/Api.php → src/Drivers/Api.php
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Recca0120\Upload\ChunkFile;
use Recca0120\Upload\Contracts\Api as ApiContract;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\Filesystem;

abstract class Api implements ApiContract
{
Expand Down
2 changes: 1 addition & 1 deletion src/Dropzone.php → src/Drivers/Dropzone.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Http\JsonResponse;
use Illuminate\Http\UploadedFile;
Expand Down
2 changes: 1 addition & 1 deletion src/FileAPI.php → src/Drivers/FileAPI.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Http\UploadedFile;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
Expand Down
2 changes: 1 addition & 1 deletion src/FilePond.php → src/Drivers/FilePond.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Http\UploadedFile;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
Expand Down
2 changes: 1 addition & 1 deletion src/FineUploader.php → src/Drivers/FineUploader.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Http\JsonResponse;
use Illuminate\Http\UploadedFile;
Expand Down
2 changes: 1 addition & 1 deletion src/Plupload.php → src/Drivers/Plupload.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Recca0120\Upload;
namespace Recca0120\Upload\Drivers;

use Illuminate\Http\JsonResponse;
use Illuminate\Http\UploadedFile;
Expand Down
5 changes: 5 additions & 0 deletions src/Receiver.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Arr;
use Recca0120\Upload\Contracts\Api as ApiContract;
use Recca0120\Upload\Drivers\Dropzone;
use Recca0120\Upload\Drivers\FileAPI;
use Recca0120\Upload\Drivers\FilePond;
use Recca0120\Upload\Drivers\FineUploader;
use Recca0120\Upload\Drivers\Plupload;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Symfony\Component\HttpFoundation\Response;

Expand Down
25 changes: 20 additions & 5 deletions src/UploadManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
use Illuminate\Contracts\Container\Container;
use Illuminate\Http\Request;
use Illuminate\Support\Manager;
use Recca0120\Upload\Drivers\Dropzone;
use Recca0120\Upload\Drivers\FileAPI;
use Recca0120\Upload\Drivers\FilePond;
use Recca0120\Upload\Drivers\FineUploader;
use Recca0120\Upload\Drivers\Plupload;

class UploadManager extends Manager
{
Expand Down Expand Up @@ -32,26 +37,36 @@ public function getDefaultDriver(): string

protected function createDropzoneDriver(): Receiver
{
return new Receiver(new Dropzone($this->container['config']['upload'], $this->request, $this->files));
return $this->makeReceiver(Dropzone::class);
}

protected function createFileapiDriver(): Receiver
{
return new Receiver(new FileAPI($this->container['config']['upload'], $this->request, $this->files));
return $this->makeReceiver(FileAPI::class);
}

protected function createFineUploaderDriver(): Receiver
{
return new Receiver(new FineUploader($this->container['config']['upload'], $this->request, $this->files));
return $this->makeReceiver(FineUploader::class);
}

protected function createPluploadDriver(): Receiver
{
return new Receiver(new Plupload($this->container['config']['upload'], $this->request, $this->files));
return $this->makeReceiver(Plupload::class);
}

protected function createFilePond(): Receiver
{
return new Receiver(new FilePond($this->container['config']['upload'], $this->request, $this->files));
return $this->makeReceiver(FilePond::class);
}

private function makeReceiver($class): Receiver
{
return new Receiver(new $class($this->getConfig(), $this->request, $this->files));
}

private function getConfig()
{
return $this->container['config']['upload'];
}
}
3 changes: 1 addition & 2 deletions src/UploadServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@ public function register()
{
$this->mergeConfigFrom(__DIR__.'/../config/upload.php', 'upload');

$this->app->singleton(Filesystem::class, Filesystem::class);
$this->app->singleton(UploadManager::class, function ($app) {
return new UploadManager($app, $app['request'], $app->make(Filesystem::class));
return new UploadManager($app, $app['request'], new Filesystem());
});
}

Expand Down
4 changes: 2 additions & 2 deletions tests/ApiTest.php → tests/Drivers/ApiTest.php
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\UploadedFile;
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Recca0120\Upload\Api as ApiBase;
use Recca0120\Upload\Drivers\Api as ApiBase;
use Recca0120\Upload\Filesystem;

class ApiTest extends TestCase
Expand Down
8 changes: 5 additions & 3 deletions tests/DropzoneTest.php → tests/Drivers/DropzoneTest.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Http\JsonResponse;
use Recca0120\Upload\Dropzone;
use Recca0120\Upload\Drivers\Dropzone;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\Tests\TestCase;
use ReflectionException;

class DropzoneTest extends TestCase
{
Expand All @@ -29,7 +31,7 @@ public function testReceiveSingleFile(): void
/**
* @throws FileNotFoundException
* @throws ResourceOpenException
* @throws \ReflectionException
* @throws ReflectionException
*/
public function testReceiveChunkedFile(): void
{
Expand Down
5 changes: 3 additions & 2 deletions tests/FileAPITest.php → tests/Drivers/FileAPITest.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Http\JsonResponse;
use Recca0120\Upload\Drivers\FileAPI;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\FileAPI;
use Recca0120\Upload\Tests\TestCase;
use ReflectionException;

class FileAPITest extends TestCase
Expand Down
5 changes: 3 additions & 2 deletions tests/FilePondTest.php → tests/Drivers/FilePondTest.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Recca0120\Upload\Drivers\FilePond;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\FilePond;
use Recca0120\Upload\Tests\TestCase;
use ReflectionException;

class FilePondTest extends TestCase
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Http\JsonResponse;
use Recca0120\Upload\Drivers\FineUploader;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\FineUploader;
use Recca0120\Upload\Tests\TestCase;
use ReflectionException;

class FineUploaderTest extends TestCase
Expand Down
5 changes: 3 additions & 2 deletions tests/PluploadTest.php → tests/Drivers/PluploadTest.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\Http\JsonResponse;
use Recca0120\Upload\Drivers\Plupload;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\Exceptions\ResourceOpenException;
use Recca0120\Upload\Plupload;
use Recca0120\Upload\Tests\TestCase;
use ReflectionException;

class PluploadTest extends TestCase
Expand Down
6 changes: 3 additions & 3 deletions tests/ReceiverTest.php → tests/Drivers/ReceiverTest.php
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<?php

namespace Recca0120\Upload\Tests;
namespace Recca0120\Upload\Tests\Drivers;

use Illuminate\Http\JsonResponse;
use Illuminate\Http\UploadedFile;
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
use Mockery as m;
use PHPUnit\Framework\TestCase;
use Recca0120\Upload\Contracts\Api;
use Recca0120\Upload\Drivers\FileAPI;
use Recca0120\Upload\Drivers\Plupload;
use Recca0120\Upload\Exceptions\ChunkedResponseException;
use Recca0120\Upload\FileAPI;
use Recca0120\Upload\Plupload;
use Recca0120\Upload\Receiver;
use ReflectionClass;
use Symfony\Component\HttpFoundation\Response;
Expand Down
9 changes: 6 additions & 3 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,23 @@ class_alias('PHPUnit_Framework_TestCase', 'PHPUnit\Framework\TestCase');
Carbon::setTestNow(Carbon::now());

if (! function_exists('storage_path')) {
function storage_path()
function storage_path(string $name): string
{
return $name;
}
}

if (! function_exists('public_path')) {
function public_path()
function public_path(string $name): string
{
return $name;
}
}

if (! function_exists('config_path')) {
function config_path()
function config_path($name)
{
return $name;
}
}

Expand Down

0 comments on commit a402fcf

Please sign in to comment.