Skip to content

Commit bdae49f

Browse files
committed
feat: add connectivityChecker option on FTP
1 parent 32b26ec commit bdae49f

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/Adapter/Builder/FtpAdapterDefinitionBuilder.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use League\Flysystem\Ftp\FtpAdapter;
1515
use League\Flysystem\Ftp\FtpConnectionOptions;
1616
use Symfony\Component\DependencyInjection\Definition;
17+
use Symfony\Component\DependencyInjection\Reference;
1718
use Symfony\Component\OptionsResolver\OptionsResolver;
1819

1920
/**
@@ -80,6 +81,9 @@ protected function configureOptions(OptionsResolver $resolver)
8081

8182
$resolver->setDefault('recurse_manually', true);
8283
$resolver->setAllowedTypes('recurse_manually', 'bool');
84+
85+
$resolver->setDefault('connectivityChecker', null);
86+
$resolver->setAllowedTypes('connectivityChecker', ['string', 'null']);
8387
}
8488

8589
protected function configureDefinition(Definition $definition, array $options)
@@ -89,12 +93,19 @@ protected function configureDefinition(Definition $definition, array $options)
8993
$options['timestampsOnUnixListingsEnabled'] = $options['timestamps_on_unix_listings_enabled'];
9094
$options['ignorePassiveAddress'] = $options['ignore_passive_address'];
9195
$options['recurseManually'] = $options['recurse_manually'];
96+
97+
$connectivityChecker = null;
98+
if (null !== $options['connectivityChecker']) {
99+
$connectivityChecker = new Reference($options['connectivityChecker']);
100+
}
101+
92102
unset(
93103
$options['transfer_mode'],
94104
$options['system_type'],
95105
$options['timestamps_on_unix_listings_enabled'],
96106
$options['ignore_passive_address'],
97-
$options['recurse_manually']
107+
$options['recurse_manually'],
108+
$options['connectivityChecker']
98109
);
99110

100111
$definition->setClass(FtpAdapter::class);
@@ -104,5 +115,7 @@ protected function configureDefinition(Definition $definition, array $options)
104115
->addArgument($options)
105116
->setShared(false)
106117
);
118+
$definition->setArgument(1, null);
119+
$definition->setArgument(2, $connectivityChecker);
107120
}
108121
}

src/Adapter/Builder/SftpAdapterDefinitionBuilder.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use League\Flysystem\PhpseclibV3\SftpAdapter;
1717
use League\Flysystem\PhpseclibV3\SftpConnectionProvider;
1818
use Symfony\Component\DependencyInjection\Definition;
19+
use Symfony\Component\DependencyInjection\Reference;
1920
use Symfony\Component\OptionsResolver\OptionsResolver;
2021

2122
/**
@@ -101,7 +102,7 @@ protected function configureDefinition(Definition $definition, array $options)
101102
}
102103

103104
if (null !== $options['connectivityChecker']) {
104-
$options['connectivityChecker'] = new Definition($options['connectivityChecker']);
105+
$options['connectivityChecker'] = new Reference($options['connectivityChecker']);
105106
}
106107

107108
$definition->setClass($adapterFqcn);

0 commit comments

Comments
 (0)