Skip to content

Commit 397ba49

Browse files
committed
Encourage the use of "league/flysystem-sftp-v3" instead of "league/flysystem-sftp"
1 parent 9c3f823 commit 397ba49

4 files changed

Lines changed: 32 additions & 10 deletions

File tree

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
},
2222
"require": {
2323
"php": ">=7.2",
24-
"league/flysystem": "^2.0|^3.0",
24+
"league/flysystem": "^2.1|^3.0",
2525
"symfony/config": "^4.2|^5.0|^6.0",
26+
"symfony/deprecation-contracts": "^2.1|^3",
2627
"symfony/http-kernel": "^4.2|^5.0|^6.0",
2728
"symfony/dependency-injection": "^4.2|^5.0|^6.0",
2829
"symfony/options-resolver": "^4.2|^5.0|^6.0"
@@ -33,7 +34,7 @@
3334
"league/flysystem-ftp": "^2.0|^3.0",
3435
"league/flysystem-google-cloud-storage": "^2.0|^3.0",
3536
"league/flysystem-memory": "^2.0|^3.0",
36-
"league/flysystem-sftp": "^2.0|^3.0",
37+
"league/flysystem-sftp-v3": "^2.0|^3.0",
3738
"symfony/dotenv": "^4.2|^5.0|^6.0",
3839
"symfony/framework-bundle": "^4.2|^5.0|^6.0",
3940
"symfony/phpunit-bridge": "^5.2",

docs/3-interacting-with-ftp-and-sftp-servers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ flysystem:
3939
### Installation
4040
4141
```
42-
composer require league/flysystem-sftp
42+
composer require league/flysystem-sftp-v3
4343
```
4444

4545
### Usage

src/Adapter/Builder/SftpAdapterDefinitionBuilder.php

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111

1212
namespace League\FlysystemBundle\Adapter\Builder;
1313

14-
use League\Flysystem\PhpseclibV2\SftpAdapter;
15-
use League\Flysystem\PhpseclibV2\SftpConnectionProvider;
14+
use League\Flysystem\PhpseclibV2\SftpAdapter as SftpAdapterLegacy;
15+
use League\Flysystem\PhpseclibV2\SftpConnectionProvider as SftpConnectionProviderLegacy;
16+
use League\Flysystem\PhpseclibV3\SftpAdapter;
17+
use League\Flysystem\PhpseclibV3\SftpConnectionProvider;
1618
use Symfony\Component\DependencyInjection\Definition;
1719
use Symfony\Component\OptionsResolver\OptionsResolver;
1820

@@ -30,8 +32,19 @@ public function getName(): string
3032

3133
protected function getRequiredPackages(): array
3234
{
35+
$adapterFqcn = SftpAdapter::class;
36+
$packageRequire = 'league/flysystem-sftp-v3';
37+
38+
// Prevent BC
39+
if (class_exists(SftpAdapterLegacy::class)) {
40+
trigger_deprecation('league/flysystem-bundle', '2.2', '"league/flysystem-sftp" is deprecated, use "league/flysystem-sftp-v3" instead.');
41+
42+
$adapterFqcn = SftpAdapterLegacy::class;
43+
$packageRequire = 'league/flysystem-sftp';
44+
}
45+
3346
return [
34-
SftpAdapter::class => 'league/flysystem-sftp',
47+
$adapterFqcn => $packageRequire,
3548
];
3649
}
3750

@@ -70,10 +83,18 @@ protected function configureOptions(OptionsResolver $resolver)
7083

7184
protected function configureDefinition(Definition $definition, array $options)
7285
{
73-
$definition->setClass(SftpAdapter::class);
86+
// Prevent BC
87+
$adapterFqcn = SftpAdapter::class;
88+
$connectionFqcn = SftpConnectionProvider::class;
89+
if (class_exists(SftpAdapterLegacy::class)) {
90+
$adapterFqcn = SftpAdapterLegacy::class;
91+
$connectionFqcn = SftpConnectionProviderLegacy::class;
92+
}
93+
94+
$definition->setClass($adapterFqcn);
7495
$definition->setArgument(0,
75-
(new Definition(SftpConnectionProvider::class))
76-
->setFactory([SftpConnectionProvider::class, 'fromArray'])
96+
(new Definition($connectionFqcn))
97+
->setFactory([$connectionFqcn, 'fromArray'])
7798
->addArgument($options)
7899
->setShared(false)
79100
);

tests/Adapter/Builder/SftpAdapterDefinitionBuilderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
namespace Tests\League\FlysystemBundle\Adapter\Builder;
1313

14-
use League\Flysystem\PhpseclibV2\SftpAdapter;
14+
use League\Flysystem\PhpseclibV3\SftpAdapter;
1515
use League\FlysystemBundle\Adapter\Builder\SftpAdapterDefinitionBuilder;
1616
use PHPUnit\Framework\TestCase;
1717

0 commit comments

Comments
 (0)