Jake, you probably know this, but I wanted to point out anyway that although PHP as a language has some frustrating elements, the development environment does not need to be. There's a lot of flavors available, but in my view the following are important:
- Source control. Use git, subversion, whatever your preference. But use them. Even for personal projects. You will never go back. You can't complain about not knowing which version is where if you don't use a source control system, and that applies to every platform you develop for.
- Remote debugging. Pretty much built-in in some other platforms, like .NET/Visual Studio, but in the case of LAMP you need to invest in setting it up. And you will be glad you did. Too many PHP developer are still "echo-ing" their debugging. Your productivity will increase dramatically using remote debugging. You are debugging a lot more than you think. Watch a developer all day, they're not writing new code, most of their time they're debugging.
- Build/Deployment automation. This is advise that I don't follow myself I must admit, but if you often do (complex) LAMP deployments, invest in a build process to automate parts of it.
Granted, the above things take some time to set up but you will be glad you did. Your development environment will be a lot more efficient, pleasant and reliable.
Jake, you probably know this, but I wanted to point out anyway that although PHP as a language has some frustrating elements, the development environment does not need to be. There's a lot of flavors available, but in my view the following are important:
- Source control. Use git, subversion, whatever your preference. But use them. Even for personal projects. You will never go back. You can't complain about not knowing which version is where if you don't use a source control system, and that applies to every platform you develop for.
- Remote debugging. Pretty much built-in in some other platforms, like .NET/Visual Studio, but in the case of LAMP you need to invest in setting it up. And you will be glad you did. Too many PHP developer are still "echo-ing" their debugging. Your productivity will increase dramatically using remote debugging. You are debugging a lot more than you think. Watch a developer all day, they're not writing new code, most of their time they're debugging.
- Build/Deployment automation. This is advise that I don't follow myself I must admit, but if you often do (complex) LAMP deployments, invest in a build process to automate parts of it.
Granted, the above things take some time to set up but you will be glad you did. Your development environment will be a lot more efficient, pleasant and reliable.