Q: Will getting a PhD close doors for working as a software developer?
A: It depends on the position you are looking for. Certain employers will not want to hire you because they may have the perception that hiring someone with a PhD will be more expensive than hiring someone with a bachelor's, and if someone with a bachelor's can do the job, they aren't going to want to pay extra for the PhD training.
Q: Are the opportunities for PhDs' only based on research?
A: No, there are a number of PhD graduates who go into industry and end up doing development-focused work.
Q: Even after a PhD will I still be able to compete with people with BSs and MSs for Software Engineering positions?
A: Yes and no. If the job can be done by someone with a BS or an MS, then companies will not want to pay more to get a PhD to do the job. On the other hand, there are development-focused positions where a PhD is beneficial. Having a PhD opens those doors for you. Some of this will be very dependent on what you spent your PhD doing. For example, if you spent your PhD developing systems and publishing papers on those systems, that will be much more desirable for companies with software development positions than if you spent time doing non-implementation research. At some software development companies, having a PhD is considered equal to some amount of experience, so you may enter at a higher position/pay scale than someone with a BS or MS and potentially get promoted more quickly.
Q: Finally, during the PhD will I be able to apply for internships that deal with software development than pure research?
A: Absolutely. This will be somewhat subject to your advisor, but there are a number of internships for CS graduate students that are very development-centric.
There are a lot of different reasons for getting a PhD, for example, your own personal gratification, to do research, to teach, to get a job that you can't get without a PhD. The question I think you should ask yourself is, "What do I want to get out of doing a PhD?"
If the answer to that is to make more money/make a bunch of money doing software development, you should stop at your MS and go into industry. If you are doing it for other reasons (as listed above) then definitely go for it.