A must-know for professional PHP developer
- 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 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 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:
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
- 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
Here is list of knowledge of what *Da real PHP Guru* should know:
- 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...