lazzard / php-ftp-client

:package: Provides helper classes and methods to manage FTP files in an OOP way.
MIT License
90 stars 18 forks source link

Support the FTP SSL Connecting with the implicit mode #38

Open peter279k opened 1 year ago

peter279k commented 1 year ago

As title, the FtpSSLConnection class is based on the ftp_ssl_connect. But it's only available on the explicit mode.

To support the FTP SSL connection with the implicit mode, it can use the cURL extension to complete that.

Some useful references are as follows:

AmraniCh commented 1 year ago

Good point, but we have to know first that implicit FTP connections are no commonly supported among FTP servers and do not represent any FTP standard, unlike explicit mode see, as a result, implementation of FTP servers may vary, and compatibility issues might become a headache.

If we provide an implicit FTP connection we have to implement new API methods specific for implicit FTP connection usage because I don't think there is a way to create a new FTP resource handle that is created with the implicit mode and use this resource handle with the native FTP extension functions ftp_*, therefore if we decided to add this feature we have like to create another classes entities that have no relation with the current library design.

Note: I think it is not necessary to use cURL to create an implicit FTP connection, we can use socket or stream socket functions in PHP, or we can use our Lazzard component Lazzard/FtpBridge to do that but it has no stable release yet.

peter279k commented 1 year ago

Thanks for your reply. I totally agree with your suggestions. And I think we can make the Lazzard/FtpBridge stable firstly.

Then creating another repository to use above FTP bridge to complete this issue.

Or using the stream socket client is the good idea to develop the FTP client with the implicit mode.