PHP skills assessment, tests and coding exercises
The test focuses on PHP 5 and is available in English and French. Questions are presented as coding exercises:
the candidate needs to write some code that achieves some objectives presented in the question.
The code is then executed and the result is analysed.
Individual questions or the overall test can have a time limit. When an overall time limit is set, the candidate can navigate between the various exercises.
Tests are built by selecting questions from a database of approximatively 60 questions dealing with the following subjects:
PHP core languages and functions
This category covers features at the core of PHP ranging from the simple output of messages (the inevitable “hello world” script) to quite complex language features and data handling functions. Skills include core flow control statements and operators. Also language constructs and functions for creating and manipulating data. The category examines the creation and calling of functions, the passing of parameters, and value return.
This category concerns itself with real world tasks. It covers functions and techniques for getting practical things done. A key skill addressed, for example, is the ability to query and update databases. Other common areas covered include: output buffering, cookies, sessions, and encoding with JSON and URL. PHP scripts must commonly work with the file system, and the category includes reading and writing both files and directories.
PHP objects, patterns and design
This category examines some of PHP's advanced object-oriented features of PHP including closures, namespaces, advanced object reflection, late static bindings, and cloning. It also covers aspects of software design. It takes in some key design patterns including Singleton, Composite, Visitor, Command, Abstract Factory and Front Controller. Some development best practices are also included. In particular, the category covers the creation and authoring of unit tests, including test setup and tear down routines, and a range of assert calls.
Each test ends with an algorithmic question whose difficulty is in line with the rest of the test. In this question, the skill tested is not the knowledge of the language but rather the candidate's capacity to sole a mathematical problem using the language.