diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2021-03-07 12:08:10 +0000 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2021-03-09 08:54:01 +0000 |
| commit | 5cd281f4f76e660b2e033b96db47543fa16f7748 (patch) | |
| tree | de4a83a0954bd9ca0d7fb2fad236f994ed7c9050 /app/Http/RequestHandlers/ImportGedcomAction.php | |
| parent | 4a81005e3a2026c16456c19677a9a528af00a3a3 (diff) | |
| download | webtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.tar.gz webtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.tar.bz2 webtrees-5cd281f4f76e660b2e033b96db47543fa16f7748.zip | |
Refactor Tree / TreeService to improve the import of large GEDCOM files.
Diffstat (limited to 'app/Http/RequestHandlers/ImportGedcomAction.php')
| -rw-r--r-- | app/Http/RequestHandlers/ImportGedcomAction.php | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/app/Http/RequestHandlers/ImportGedcomAction.php b/app/Http/RequestHandlers/ImportGedcomAction.php index eab0d3b841..3b58e2a7ab 100644 --- a/app/Http/RequestHandlers/ImportGedcomAction.php +++ b/app/Http/RequestHandlers/ImportGedcomAction.php @@ -23,6 +23,7 @@ use Fisharebest\Webtrees\FlashMessages; use Fisharebest\Webtrees\Functions\Functions; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Services\TreeService; use Fisharebest\Webtrees\Tree; use Nyholm\Psr7\UploadedFile; use Psr\Http\Message\ResponseInterface; @@ -43,6 +44,14 @@ use const UPLOAD_ERR_OK; */ class ImportGedcomAction implements RequestHandlerInterface { + /** @var TreeService */ + private $tree_service; + + public function __construct(TreeService $tree_service) + { + $this->tree_service = $tree_service; + } + /** * @param ServerRequestInterface $request * @@ -71,7 +80,7 @@ class ImportGedcomAction implements RequestHandlerInterface if ($upload instanceof UploadedFile) { if ($upload->getError() === UPLOAD_ERR_OK) { - $tree->importGedcomFile($upload->getStream(), basename($upload->getClientFilename())); + $this->tree_service->importGedcomFile($tree, $upload->getStream(), basename($upload->getClientFilename())); } else { FlashMessages::addMessage(Functions::fileUploadErrorText($upload->getError()), 'danger'); } @@ -86,7 +95,7 @@ class ImportGedcomAction implements RequestHandlerInterface if ($basename) { $resource = $data_filesystem->readStream($basename); $stream = app(StreamFactoryInterface::class)->createStreamFromResource($resource); - $tree->importGedcomFile($stream, $basename); + $this->tree_service->importGedcomFile($tree, $stream, $basename); } else { FlashMessages::addMessage(I18N::translate('No GEDCOM file was received.'), 'danger'); } |
