Skip to content

Commit

Permalink
feat: add connectivityChecker option on FTP
Browse files Browse the repository at this point in the history
  • Loading branch information
maxhelias committed Sep 4, 2023
1 parent 32b26ec commit 4e212a3
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 2 deletions.
14 changes: 13 additions & 1 deletion src/Adapter/Builder/FtpAdapterDefinitionBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use League\Flysystem\Ftp\FtpAdapter;
use League\Flysystem\Ftp\FtpConnectionOptions;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
Expand Down Expand Up @@ -80,6 +81,9 @@ protected function configureOptions(OptionsResolver $resolver)

$resolver->setDefault('recurse_manually', true);
$resolver->setAllowedTypes('recurse_manually', 'bool');

$resolver->setDefault('connectivityChecker', null);
$resolver->setAllowedTypes('connectivityChecker', ['string', 'null']);
}

protected function configureDefinition(Definition $definition, array $options)
Expand All @@ -89,12 +93,19 @@ protected function configureDefinition(Definition $definition, array $options)
$options['timestampsOnUnixListingsEnabled'] = $options['timestamps_on_unix_listings_enabled'];
$options['ignorePassiveAddress'] = $options['ignore_passive_address'];
$options['recurseManually'] = $options['recurse_manually'];

$connectivityChecker = null;
if (null !== $options['connectivityChecker']) {
$connectivityChecker = new Reference($options['connectivityChecker']);
}

unset(
$options['transfer_mode'],
$options['system_type'],
$options['timestamps_on_unix_listings_enabled'],
$options['ignore_passive_address'],
$options['recurse_manually']
$options['recurse_manually'],
$options['connectivityChecker']
);

$definition->setClass(FtpAdapter::class);
Expand All @@ -104,5 +115,6 @@ protected function configureDefinition(Definition $definition, array $options)
->addArgument($options)
->setShared(false)
);
$definition->setArgument(2, $connectivityChecker);
}
}
3 changes: 2 additions & 1 deletion src/Adapter/Builder/SftpAdapterDefinitionBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
use League\Flysystem\PhpseclibV3\SftpAdapter;
use League\Flysystem\PhpseclibV3\SftpConnectionProvider;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\OptionsResolver\OptionsResolver;

/**
Expand Down Expand Up @@ -101,7 +102,7 @@ protected function configureDefinition(Definition $definition, array $options)
}

if (null !== $options['connectivityChecker']) {
$options['connectivityChecker'] = new Definition($options['connectivityChecker']);
$options['connectivityChecker'] = new Reference($options['connectivityChecker']);
}

$definition->setClass($adapterFqcn);
Expand Down
1 change: 1 addition & 0 deletions tests/Adapter/Builder/FtpAdapterDefinitionBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ public function testOptionsBehavior()
'timestampsOnUnixListingsEnabled' => false,
'ignorePassiveAddress' => true,
'recurseManually' => true,
'connectivityChecker' => null,
];

$this->assertSame(FtpAdapter::class, $definition->getClass());
Expand Down

0 comments on commit 4e212a3

Please sign in to comment.