[wp-testers] Automatic Plugin Upgrader

DD32 wordpress at dd32.id.au
Thu Mar 13 12:25:16 GMT 2008


On Thu, 13 Mar 2008 21:14:30 +1100, Alex Günsche <ag.ml2008 at zirona.com> wrote:
> On Thu, 2008-03-13 at 20:41 +1100, DD32 wrote:
>> The only issues i can forsee: [...]
>
> I've been using the PemFTP class now used in WP for some time in my
> InstantUpgrade plugin since almost a year. I also had/have a couple of
> issues, pretty much the same as you now.
>
> Its author, though really a nice guy who helped me a lot, is
> unfortunately not too responsive. He is aware of a couple of issues, but
> I have the feeling that maintaining and debugging that FTP class(es) is
> not too high on his priority list. He's not a community-related
> developer, he doesn't know much about OpenSource (in fact, it took me
> four e-mails to convince him to use the LGPL instead of a
> "non-commercial" license). What I want to say: You might try to invite
> or even hire Alexey to help you on the development of this class. As
> these upgrading features are important as well as very complex (I know
> what I'm talking about), it might be a good idea to get an expert into
> the boat. At least you could ask him to give you a list of known bugs,
> maybe he even knows already how to fix them.
>
> HTH,
> Alex
>

You've got some very good points, How many instances did you come accross with incompatible FTP servers?

It would be a nice metric to know the servers which wordpress is installed on, Sure, its installed on near every host in the world, so theres some pretty funky setups,
But how many have suPHP installed(or suExec) (so direct filesystem access can be used),
How many have the FTP Extension compiled in? (Every server i've come accross, But that doesnt mean 90% of hosts dont have it).
The remaining large chunk of users has to rely on the FTP Sockets code, which is what PemFTP is used for, 
PemFTP has 2 modes,
1. Pure PHP mode, fsockopen(), fread(), & fwrite() are used
2. Socket operations, socket_open(), socket_create() etc.

Looking at the source, Currently only #2 is in use, it would be nice to enable mode #1 as well, That would simply require an extra statement in get_filesystem_method() to check if fsockopen is available, and if so, return ftpsockets for that too. (That was an oversight from when i wrote the FTP wrapper awhile back, i never got around to testing/implementing that branch, i focused on the ftp extension instead)

But theres also problems with the Zip class, PclZip, its not fully compatible with some situations, I was near thinking switching to Tar files instead, to remove the compression overheads(Which reminds me, I can forsee problems with PHP Memmory limits and the PHP Zip handling with large zip files, unsipping in PHP is not exactly the most optimised process). But in the end PclZip came through in most cases.


More information about the wp-testers mailing list