harishanchu / Laravel-FTP

A simple Laravel 4/5/6/7 ftp service provider with basic ftp methods.
220 stars 87 forks source link

Fluent Interface? #17

Open chrischi1989 opened 9 years ago

chrischi1989 commented 9 years ago

Can you provide a fluent interface like this?

FTP::connection('foo')->changeDir('bar')
                      ->makeDir('abc')
                      ->changeDir('abc')
                      ->uploadFile('foobar.txt', 'barfoo.txt')
                      ->getDirListing();

It's not a necessity but I think this would improve the ease of use.

Greetings from Germany Christian

harishanchu commented 9 years ago

HI Christian,

Thanks for your suggestion, but there is a problem in implementing this. Since FTP methods won't result in success always, which will cause errors in the program when we implement an interface like this. For example, in the case you have shown a number of methods will execute sequentially independent of whether the previous method execution is success or failure, which is not good. Please let me know your thoughts.

Thanks

chrischi1989 commented 9 years ago

Hi there,

Just pressed the wrong button...o_O

One approach might be using the methods to build up a command stack and add a method for executing the stack. The FTP functions you're currently using return false or -1 if they fail and if they do so, you might utilize the MessageBag Class of Laravel instead of returning false.

Then you'll be able to provide more detailed error messages and the developers can check themselfs if the MessageBag is empty or not.

Greetings