Skip to content

Commit 820f3b1

Browse files
committed
FTP uses FtpConnectionOption
I don't know how to force port to be of type integer
1 parent 3421d9d commit 820f3b1

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

src/Adapter/Builder/FtpAdapterDefinitionBuilder.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace League\FlysystemBundle\Adapter\Builder;
1313

1414
use League\Flysystem\Ftp\FtpAdapter;
15+
use League\Flysystem\Ftp\FtpConnectionOptions;
1516
use Symfony\Component\DependencyInjection\Definition;
1617
use Symfony\Component\OptionsResolver\OptionsResolver;
1718

@@ -73,6 +74,11 @@ protected function configureDefinition(Definition $definition, array $options)
7374
unset($options['ignore_passive_address']);
7475

7576
$definition->setClass(FtpAdapter::class);
76-
$definition->setArgument(0, $options);
77+
$definition->setArgument(0,
78+
(new Definition(FtpConnectionOptions::class))
79+
->setFactory([FtpConnectionOptions::class, 'fromArray'])
80+
->addArgument($options)
81+
->setShared(false)
82+
);
7783
}
7884
}

tests/Adapter/Builder/FtpAdapterDefinitionBuilderTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,6 @@ public function testOptionsBehavior()
8181
];
8282

8383
$this->assertSame(FtpAdapter::class, $definition->getClass());
84-
$this->assertSame($expected, $definition->getArgument(0));
84+
$this->assertSame($expected, $definition->getArgument(0)->getArgument(0));
8585
}
8686
}

tests/Kernel/config/flysystem.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ flysystem:
3535
host: 'ftp.example.com'
3636
username: 'username'
3737
password: 'password'
38-
port: '%env(FTP_PORT)%'
38+
port: '%env(int:FTP_PORT)%'
3939
root: '/path/to/root'
4040
passive: true
4141
ssl: true

0 commit comments

Comments
 (0)