Monday, November 06, 2006

PHP: A Primer And New Project

For the next few weeks, I will be dipping my toes in the world of PHP scripting and the MySQL database application. The application slated to replace Jaspora uses these technologies, and it's important that I become very familiar with them at this point. As a matter of common practice, I develop a real-world application while learning a new technologies - real hands-on. For this endeavor, I'll create a web-based application that keeps track of my projects, like my own personal SourceForge. It'll integrate Jaspora, my personal music site, and provide a portal for private projects I work on for Strive!. Should be simple enough, I suppose.
What you need to get rolling:
  • A PHP interpreter. The Windows version provides DLLs that can be referenced by the web server in order to interprete .php file scripts. Without it, the web server thinks the files are simple text files and may show them as such (in Firefox. IE just doesn't show anything inside tags it doesn't recognize). [version 5.2.0].
  • A web server - to dish out pages and content when requested from users' browsers. There are several free web server engines, but I chose to go with Apache's HTTPd - simple server that can run as a service on your Windows machine. I was surprised though that I could have chosen to use IIS (not a fan). [version 2.2.3].
  • An SQL database application - certainly MySQL, although I could have dumped this experiment to my network of Microsoft SQL 2000 machines. From brief research, MySQL is actually enterprise grade ... and is one of the most popular databases on the web. [version 5.0].
  • An intelligent PHP script editor. You could use Notepad if you want, but anyone that's used an IDE knows the value of keyword highlighting, debugging, code completion, etc. I found a free one at MPSoftware's website called PHP Designer 2007. Better than plain text for sure.
Already, I'm in need of a sort of deployer - some utility than knows what projects I am working on and that can keep the web folders on the server sync'd with my workspace (on the click of a button). I'm sure there's something out there - just haven't found it.
If you have programmed before, learning PHP is a simple affair of learning language rules. I'm working out of the reference "PHP and MySQL for Dymanic Web Sites". Pretty simple book for beginners.