In a previous job when I was responsible for hiring PHP developers, I always used to ask questions about database abstraction in my interviews. It's amazing how often candidates with the best-looking CV's, and impressive looking project lists, were tripped up by their lack of knowledge of what a database abstraction layer is, and were unfamiliar with any of the main database abstraction layers.
I can't really blame them. It's not obvious to newbies learning PHP development from the PHP website, many books, or other online resources, that abstraction layers even exist, or why one should use them. To many who've put in the time of learning the PHP functions, suddenly being faced with a whole new set of functions that don't (on the surface) provide much benefit can be daunting.
Needless to say, none of the candidates who were clueless about abstraction layers got the job. But, to make things easier for others in a similar situation, this month's article covers reasons for using abstraction layers, and takes a look at some of the more popular ones in this rapidily changing field.
The article continues at http://www.phpbuilder.com/columns/ian_gilfillan20050906.php3