I have spent a while now creating a web application in php. It's mostly been only for the learning like a side project, however the application presently has a couple of customers which I'd rather not upset by breaking things when i develop.

Right now, I've got a very rudimentary way of controlling the event - I personally use a text editor (ultraedit) to create the code and employ its built-in ftp to upload the files towards the server. When it comes to version control I've 2 domain names, in support of push files towards the "live" domain once they work, but that is it. The domain names are located on the cPanel hosting that is shared site which i've some doubts about being able to handle even minor spikes in traffic. I checked out slicehost yesterday for something more scalable but that appears like a little of the learning curve where I'm now.

I understand I possibly could fare better than this, but how to start? I believe I want suggestions about three things 1 - code writing tool 2 - version control / management 3 - scalable hosting

I have deliberately requested these within the same question as Let me determine if one choice impacts another. It is possible to good integrated solution?

Thanks ahead of time as always.

Each a part of your question continues to be clarified before. This list lists a few of the common tools to make use of and links to appropriate searches on StackOverflow. There's no all-in-one package on and on into particulars about these power tools in a single question has run out of scope, and so i am afraid you need to do some digging:

Disclaimer: list isn't intended to be complete and order matters not

There's a great deal happening here. I'll provide you with my two cents though.

  1. I did previously use ultra edit. Now I personally use netbeans, its a completely integrated development atmosphere also it makes my existence sooo much simpler. Its free too. I can not imagine ever returning to UltraEdit. Also, that can bring me to # 2, netbeans has SVN and Resumes integration

  2. I'd use subversion for version control. In my opinion it will all you need for version control. Others use ones like git and mercurial, however i think SVN is broadly supported and simple enough to setup. So far as pushing code towards the server, i have begun using svn with this too. When i first ssh in to the server and checkout the code in to the public_html directory, after which setup an alias to complete svn updates with the command line... its way simpler than ftping for me. You will find other deployment techniques, but i have not used at all them. check this out question: http://stackoverflow.com/questions/425692/what-is-your-preferred-php-deployment-strategy

  3. clearly hosting that is shared won't handle traffic in addition to a devoted server. But you will find plenty of steps you can take to enhance performance before moving to some devoted server. Take a look at this short article: http://developer.yahoo.com/performance/rules.html