Skip to content

tek09 Roundup

Dear Reader,

It’s been a while since I’ve done a conference roundup and even when I did them, I don’t think I posted them here. So, let’s correct both oversights at once and do a php|tek 09 roundup.

Unlike other roundups, I’m not going to describe in detail all the cool sessions I attended. In all honestly, I only attended 2 sessions start to finish, and they were both mine. I did manage to slip into Sara Golemon’s PHP 5.3:Hot or Not session and really enjoyed it. So of the sessions I wanted to go to but didn’t get to, which ones would I have attended? All of them! The schedule was packed with topics I wanted to learn more about. Unfortunately, I got sidetracked on some other things and didn’t get as much session time as I would have liked.
(more…)

5 Tools Every PHP Developer Should Master

Dear Reader,

If you know me, you know that PHP is my passion. Talking about PHP is fun, working with PHP is fun, helping others work with PHP is fun. Heck, I love PHP so much that I’ve worked it so that my day job for the last 3 years has been working with PHP and developers.

Over the past nine years of having fun with PHP, began to see that there are five categories of tools that I rely on more than any others. Sure, I’ve got a code beautifier, a standards checker, and a hand full of hand-written scripts I use for various things to make life easier. However when it comes down to it, there are five that I rely on every day.

So here they are in acceding order of importance. Let me know, what are your five? (let’s not start a meme or anything though, ok?)

5: A Unit Testing Tool

Whether you prefer PHPUnit or SimpleTest, Unit testing has proven it’s usefulness in the development process. As a professional PHP developer, you should be familiar with the concepts behind Unit Testing and Test Driven Development. You should also be able to identify when unit testing is a good idea and when it’s a bad idea. (Yes, there are times when it’s a bad idea)

Day Camp 4 DevelopersJoin us!
Day Camp 4 Developers.
Invest a day in your career!

4: A Debugger

As with unit testing tools, there are multiple options for you when it comes to debuggers. dbg, Zend_Debug and xdebug all provide professional PHP developers with tools to break down their code and find problems. Debugging tools allow you to step through your code, stop execution and examine the environment at any point. Debuggers are a developer’s best friend and every developer should have one installed on their development server. Bonus points if you’ve also got FireBug installed. Find you a good debugger and invest the time necessary to use it, it will be time well spent.

3: An ERD Tool

If you are doing serious PHP work then chances are good that you are working with a database. At some point your database structure will grow too large to keep in your head, you will need a tool to keep everything straight; that’s where an Entity Relationship Diagram (ERD) tool comes into play. Tools like MySQL Workbench help you visualize your database structure. More expensive tools like ERWin or Embarcadero’s ER/Studio give you more options for importing and exporting models and keeping your database model in sync with your actual database.

No matter whether you are working on your personal project or the corporate database, an ERD Tool will help you manage it.

2: A Version Control System

CVS, SVN, Git, or a host of other options both free and commercial will help you keep your code safe. Whether that’s safe from your development server’s hard drive crashing or safe from you next coding binge where you change something at 2AM that you really shouldn’t have; keeping your code in a version control system will help. Which system you choose will largely depend on how you or your team work. You need to research the options available and work with your team to make choices like central vs. distributed.

1: A Framework

The most important tool any developer can have in their tool box these days is a framework. Let’s talk about two different types of frameworks.

The first type of framework is a Content Management System. These days CMS systems are complex enough to be thought of as specialized frameworks in their own right. You need to know one good enough to get it installed, up and running and extend it to get the job done. If your needs are easily definable and your CMS of choice has extensions available to fit more of the functionality then learning one could pay for itself in only one or two projects.

PHP has a lot of good CMS projects available and listing them here would simply mean that I would forget one so I’m not going to try. Dig around on Google and you’ll find one.

The second type of framework that PHP programmers need to have in their toolbox is a more generic programming framework. In the PHP world we have a lot of frameworks from which to choose. Most developers chose one of three or four major frameworks.

The framework you chose will largely depend around the type of projects you work on your style. Each of the above frameworks has it’s own strengths and weaknesses.

Regardless your choice, you need to know one framework well enough so that when a project comes along, you don’t burn a lot of time “Yak Shaving” but can get the project up and running quickly.

The Mission Option

There you have them, my 5 tools that every PHP developers should have in their toolbox. One thing that did not make the cut was an IDE. An IDE is great for those who use them. However, if you don’t want the overhead of an IDE, there are a lot of good Programmer’s Editors out there for you to use.

For me, I use Komodo. Yes, I know Komodo bills itself as an IDE and it has all of the important features of one. However, it doesn’t force me to code it’s way. I can use Komodo to write PHP or edit my hosts file. Active State realizes that every file is not a project and that a developer should only have to use a project when they actually want a project.

Until next time,
(l)(k)(bunny)
=C=

Sun VirtualBox as a virtual development environment for PHP

Dear Reader,

The problem

For the past year I’ve been looking at the way I develop web based projects and how I can make it easier, better, faster, more stable, but most of all, portable. Like many PHP developers out there, I work on multiple projects at the same time. It’s not unusual for me to have three projects under development at any given time with an additional five projects that I’ve abandoned that I’m not yet willing to delete. I’ve developed a way of working with them that works for me. I’ve even written a Zend Framework based cli tool that sets up my work environment the way I like it.

All of that is wonderful if I’m sitting here in my lair connected to my local network. However, if I’m moving around, I have two choices, setup something like Zend Core or XAMPP on my laptop and duplicate my development server. This is the model I’ve used for the past few years but what I end up with is projects on my development server that I wanted on my laptop and visa-versa. The more I thought about it though, the more I realized there had to be a better way. My current setup doesn’t allow me to do things like test PHP 5.3 without setting up a whole new server just for that purpose, or maintain an environment like my production server – it has it’s own little quirks – so that I can work on legacy code.

Here is a short list of my criteria:

  • Must work on my laptop.
  • Must allow me to easily test different environments
  • Must let me work on multiple projects

The solution that doesn’t work

Yesterday I was browsing phpdeveloper.org like all good PHP developers should when I ran across a link to Kevin van Zonneveld’s blog post, How virtualization will improve your code. Reading it over, I begin to think he had hit upon the solution. He was using Sun’s new VirtulBox 2.0 to virtualize the development server. The only problem with Kevin’s solution is that he is running Linux as his primary OS (Host) and runs Linux as the virtualized (Guest) OS. Actually, it’s not a problem for him but it is for me since I use Windows as my desktop environment. I did feel though that he was moving in the right direction.

Installing VirtualBox is very easy and grabbing a copy of Ubuntu Desktop (Don’t use Server, it won’t work According to this thread The problem was a setting in VirtualBox and not Ubuntu itself. It may be safe to use Server if you like.) was actually the longest part of the process. Once downloaded, setting up the virtual server was actually anti-climatic. You just let the wizard get you going and then watch as Ubuntu installs.

One of the great things about VirtualBox is that it has a “shared folders” option. I simply define a directory on my Windows OS (Host), c:\web, as a shared folder and then mount that share inside the Linux OS. Once you you get it working the way you want, you jsut add the mount to your virtual server’s /etc/fstab and never think of it again.

The end result is I can still use Windows/Komodo as my development environment. My virtual server has Apache, PHP and MySQL installed so it can serve up the pages from the same directory. So far, all was going well. Here is where Kevin and I parted company though. Kevin was content to browse the work area using the browsers installed on the virtualized server. This is the easy way to do it because the browser and Apache are on the same virtual machine. I however, wanted to be able to browse the server from my Windows environment so I can test with IE, FF, Safari, etc.

Following the instructions in the Users Guide I setup a “Host Interface”, bridged it to my wi-fi card and setup my virtual server to use the new interface. (It should be noted that I know enough networking to be dangerous so the sentence above actually covered about 3 hours of running down blind alleys) Each time I tried a different combination, my new virtual server fired up just fine but failed to connect to the network.

After a lot of failed tries and a lot of googeling, I found the answer. (Which was, of course, in the manual to begin with) Most wi-fi cards are not capable of promiscuous mode. For bridging to work, Windows has to put the card in promiscuous mode.

Mine card, an Intel® PRO/Wireless 3945ABG, is capable of it but you have to have an admin tool to do it and while I can find the manual for the admin tool, I can’t find anyplace to download the actual tool itself.

Just to confirm that this was actually the problem, I snaked a cable into my lair from my server closet and bridged the host interface and my wired interface. Voila! it worked exactly how I wanted it to. But alas, since the solution is not portable, it won’t fit all my criteria.

Conclusion

Even though VirtualBox won’t meet my need as a development server, it’s still a cool toy to play with. It scratches my Linux itch while letting me keep my Windows desktop. Running it in seamless mode is a little more processor intensive but very cool. It puts the Linux toolbar at the top of the screen and Linux apps open as regular Windows windows.

I’m still in search of the perfect development environment. If I find it, I’ll let you know.

Until next time,
(l)(k)(bunny)
=C=

ewt08

Dear Reader,

(YES! It’s been a long time since I blogged, why is another story for another time)

elePHPant plans his schedule for ZendCon 08elePHPant World Tour is now live! This was an idea Ivo and I came up with one day while chatting. Here’s the basic premise. It seems obvious that elePHPants love to travel. Equally obvious is the fact that a lot of PHP developers love to take pictures. So, let’s combine the two. If you spot an elePHPant while traveling, like near a landmark, or making it’s way through the airport, snap a picture. Upload it to flickr and tag it with ewt08. Thanks in no small part to a bit of Web 2.0 magic and WordPress, we’ll steal the picture from flickr and post it on the blog.

In January, the ever versatile and talented crew from phpwomen.org will look at all the pictures posted and pick the best one. (Best being a highly subjective term) The winner will get a prize package that, while is not complete yet, is described on the about us page.

So get in on the fun. Make sure you always have your camera with you because as you travel, you never know where you will spot them. (It also helps if you carry a spare elePHPant n case you are at a picturesque site and there’s not one just roaming about)

Hey, if you work for a company trying to reach PHP developers, and want to give a little link love and good will from the community, drop me a line. We’d love to have you as a sponsor and all it will cost you is a prize for the prize pool.

Until next time,
(l)(k)(bunny)(elePHPant)
=C=

p.s. Do us a favor love, tweet this post to help spread the word? Cheers!