# Entry Level PHP Web Application Development/PHP Web Application Development Environments
## Development Environments

There are various development environments that are available for web development, with various ranges of quality. Whichever system you choose is going to depend on at least a couple of different factors:
* The operating system you are using.
* Whether or not you want an open source or proprietary IDE, or just a programmer’s editor.
* Your style and preferences.
* What type of workstation you have (with regard to RAM and processor).
There are many different pieces of software available for working with web applications in languages such as PHP. Some environments have support for multiple languages, and others do not. There are a number of available choices, both for programmer’s editors and IDEs.

### Windows Programmer’s Editors/IDEs

* Notepad++—Editor – Features syntax highlighting for many different languages, record/playback macros, text snippets. Freely available.
* Zeus Editor—Editor – Features syntax highlighting, CVS support. Commercial.
* Adobe Dreamweaver—IDE – Features project management, syntax highlighting, compatibility checking, and more. Commercial.
* PHPEclipse—IDE – Features project management, syntax highlighting, syntax-completion, built-in PHP reference, debugging. Free (Open Source) software.
* Geany—Editor – Features syntax highlighting, syntax-completion, text snippets, external scripts, LUA scripting. Available with most Linux-based distributions and other UNIX-like software, as well as Windows. Free (Open Source) software.

### Linux Programmer’s Editors/IDEs

* GNU Emacs—Editor – Features vary based on installation. Can support everything from just syntax highlighting to integration with CVS or Subversion. Available with most Linux-based distributions and other UNIX-like software. Free (Open Source) software.
* PHPEclipse—IDE – Features project management, syntax highlighting, syntax-completion, built-in PHP reference, debugging. Free (Open Source) software.
* Quanta Plus—DE – Features project management, syntax highlighting, pop-up function help, debugging. Free (Open Source) software.
* Geany—Editor – Features syntax highlighting, syntax-completion, text snippets, external scripts, LUA scripting. Available with most Linux-based distributions and other UNIX-like software, as well as Windows. Free (Open Source) software.
* Bluefish—Editor – Features syntax highlighting, dialog-driven HTML code, built-in PHP reference, text and regular expressions snippets. Available with most Linux-based distributions and other UNIX-like software. Free (Open Source) software.
This document shows using GNU Emacs, and the author recommends the use of GNU Emacs. There is a book from O’Reilly on GNU Emacs, though it is a slight bit out of date. If you choose to use GNU Emacs, you may wish to take a look at nXML mode, which the author also uses for development of PHP applications.

## What You Will Need

For the purposes of this text, all you really will likely need is a basic text editor. You can use Notepad on Windows, or vi, emacs, or whatever your favorite text editor is on your non-Windows system. Syntax highlighting may be beneficial if you are a visual type of person.
No matter what text editor or IDE you use, you will at the very least need to know how to create, load, and save files, as well as actually use the editor. However, you will want to be sure to only use text editors – not a word processor or “rich” text editor.

## Execution Environment: Apache, PHP 5, and a Database Server

After you have selected your editor, you will need to make sure that you have an environment to run PHP applications in. It is likely that you can find some place online that hosts PHP web sites and applications that you can work with. If you are unable to do that, then you will need to install PHP on your system, probably with a database system.
Users of Linux-based distributions should be able to simply add Apache, PHP 5, and a database server to your system using your package management tools. Under Windows, there are a couple of options for easy setup and configuration of a WAMP (Windows, Apache, MySQL, PHP) system:
* WAMPServer
* XAMPP
* EasyPHP
After you have set up your environment, you are ready to continue onward!

## Footnotes

* ^ IDE—Integrated Development Environment. A piece of software which has features which help you develop software. Generally, IDEs have more features then just a programmer’s editor. IDEs can help you to debug your code, as well as use version control systems or automatically upload your project to the target web site.
* ^ GNU Emacs is a cross-platform “Swiss army knife” editor. It has the potential to support everything in the book, even tasks other than editing, such as e-mail and Web browsing. There are several available books dedicated just to GNU Emacs.