A must-know for professional PHP developer

Published on 26.04.2011, by Lubos Dzurik

• download sample PHP Mini test» (PDF, 50 kB)
• related link How can I test PHP skills in a interview?

Basic abilities

Web developer vs. Web designer
This article applies to web developers, not web designers. Web designer would focus on visual presentation of business logic implemented by a web developer.

Here is my list of abilities that professional PHP developer should posses...

T-shirt PHP Guru
T-shirt I suggested to my wife and she made it for me:-)

PEAR CODING STANDARDS
Must have good command of coding standards.
PHP IDE WITH DEBUG MODE
Must know how to set up debugging environment. Industrial applications with hundreds of complex objects cannot be effectively developed and maintained without possibility to stop execution of the script at any row of the code. Unfortunatelly, setting up debugging environment is often not quite a trivial task.

Most popular professional IDE might be:

VERSIONING

Versioning is inevitable part of any software life cycle. Therefore any *pro*:

  • must be able to work with history of development releases, e.g. prepare update package for version from 100 up to 110.
  • must be able to compare package differences between two update packages.

Examples of some popular source control management tools (SCM) / versioning tools nowadays include:

DATABASE

Most popular industrial relational database systems (RDBMS) used today are mySQL, Oracle, MSSQL, PostgreSQL. PHP developer must be able to write SQL queries for:

  • INSERT, SELECT, UPDATE, DELETE (CRUD operations)
  • WHERE conditions with AND, OR
  • SELECT .. LIMIT, OFFSET (for pagination purposes)
  • LEFT JOIN, RIGHT JOIN, INNER JOIN
  • GROUP BY, HAVING - must ve aware of various results defferences implemented by different vendors (mySQL gives different aggregate results than MSSQL or Oracle)
  • CREATE TABLE, ALTER TABLE

Besides the above basics, PHP developer should be able to prepare tables definitions with column types, add indexes on columns, add autoincremental columns, add new column into existing table without destroying existing data.

Few check-up questions:

  • What is a foreign key?
  • What is the difference between LEFT JOIN, RIGHT JOIN and INNER JOIN?
MVC BASED PHP FRAMEWORK

Development time may be significantly shortened by utilizing pre-programmed functionalities. PHP framework is basically low-level alternative to Microsoft Visual Studio or Delphi. It is not really important which framework is the favourite one, important is that you understand MVC model, singleton, code generation and few other aspects of modern PHP5 based framework. So PHP developer should:

  • be familiar with some modern PHP5 framework, e.g. Yii, Zend Framework, Cake, Codeigniter, Kohana, Nette
  • should be able to write ajax based applications by utilizing such a framework
  • should be able to utilize database cross-compatible ORM database layer (either built into framework or standalone, e.g. Propel, Doctrine)
WEBSERVER SETUP

Setting up secure webserver (Apache, lighttpd etc.) is one of the most important things at the beginning of any development. Don't blame administrators if your application gets hacked:-) PHP developer should:

  • be able to write virtual host, manage error handling and setup errors logging. This is tightly related to setting up debugging environment.
  • be able to set up correct SEO redirects (302, 303) and URL rewrites
  • be able to turn on/off compression filters (gzip, deflate for javascript and css files)
Other basic must-know for a PHP web developer:
  • must be able to do XSLT transformation. What is the difference between XML, XSL, XSLT and XSD?
  • must understand CSS, XHTML. How will you check CSS layout in IE6, IE7, IE8 and IE9?
  • must understand XPath

Advanced abilities

Here is list of knowledge of what *Da real PHP Guru* should know:

VIRTUALIZATION
  • Developer should be able to create new virtual machine by using any virtualization tool (VMWare Player, VirtualBox etc.)
  • Developer should be able to connect linux directory into windows via samba if developing on Windows IDE.
WRITING UNIT TESTS
Automated unit test are often underestimated by companies. Luckilly, most of advanced PHP frameworks already come with built-in support for running unit tests. PHP developer should at least have knowledge about available unit testing tools - Simpletest, PHPUnit or Selenium HQ.
PHP COMPILATION FROM SOURCES
Sometime you will not find needed extension on the internet. Or standard repositories are outdated and you may want to update to more secure PHP version... (e.g. CentOS repos). The only way for you is to compile PHP yourself from sources...

And that's why I wear t-shirt "PHP Guru" :-))))



Comments...

nickmokisasian AT gmail DOT com

13.12.2012 15:25
# 1 Reply to nickmokisasian AT gmail DOT com    
 

Thanks for this. It was great! Just wondering is github acceptable instead of SVN? I will be refining my PHP skill set along with this list of the summer holidays! This post was great! And every PHP Developer should know it!

lubosdz

16.12.2012 19:14
# 2 Reply to lubosdz    
 

nickmokisasian@gmail.com wrote on 13.12.2012 15:25:
Thanks for this. It was great! Just wondering is github acceptable instead of SVN? I will be refining my PHP skill set along with this list of the summer holidays! This post was great! And every PHP Developer should know it!

Hi, sure, any source management tools is sufficient, which ever you choose. The idea is to ensure, that the developer understands principles of programming in a team.

Leave your comment..
Email will be converted into something like [michael AT gmail DOT com]
Note: Offensive and unrelated comments will be deleted.
Please enter result from the picture above.