A few features I am dying to see in VS.PHP are:
* Deploy-on-save option
* Synchronize when deploying
* Multiple deployment configurations

Deploying on save would automatically deploy the file that has been saved in the editor and should be an option that can be stored per-project/solution. I so often save files and refresh the site only to realize that I haven't deployed the file to the server.

Synchronize when deploying would basically compare file modification times to see if the local copy is newer or not. This would spare bandwidth and save time when deploying, especially when working with large projects with many files. Files in folders can be skipped if the directory mtimes are the same.

Multiple deployment configurations are essential when working in multiple environments. For example, you can have a dev, staging, and/or production server configured and push the changes to any given server by switching configurations rather than re-entering the credentials for each one. A work-around can be made to create an entirely different project configuration, but then you have the problem of duplicating project configuration options for each deployment configuration, which doesn't really make the most sense.

All of these features go hand-in-hand. With multiple deployment configurations, and the ability to synchronize and deploy only what is necessary to each server quickly. The deploy-on-save option spares us from having to manually deploy to a development server every time a change is made. All of the above will significantly improve productivity, and are relatively minor changes that can be implemented without much headache.

I only wish VS.PHP was open-source so I could go ahead and implement them myself :-)

juanc says:

The first one can be done via a macro. There is a command to deploy a file. Your macro can save the file and deploy the file in one step. Also, consider remote server projects, that one works directly on the remote files.

The second one is already in the product. When you deploy it will only do the updated files. But the first time you deploy, it will deploy everything.

The third one is available and in fact there are three deployment configurations available in the project settings: local, staging and production. In each of then you can set your own deployment settings. You can also create new ones if you go to the configuration manager. Similar to debug/release targets in C++/C#.

Hope this helps,

Juan