El objetivo de esta prueba es comprobar un mínimo de conocimientos básicos de PHP en lo relativo a sintaxis y semántica.
Para completar la prueba de forma satisfactoria se tendrán que ejecutar los tests del proyecto (situados en la carpeta "tests") pasando todos los requerimientos.
Pueden (y deben) ser agregados todos los ficheros y clases necesarias y complementarias sin limitación alguna. Pueden ser utilizados todos los recursos propios o externos que se consideren oportunos. La estructura del proyecto puede ser modificada si fuera necesario para una mejor comprensión si se necesitara. Se pueden modificar y añadir tests para mejorar la fiabilidad del código y eliminar comprobaciones innecesarias según cambie la implementación.
Se valorará ante todo la forma en la que se resuelve el problema: estructura y organización del código, uso correcto de la sintaxis, reutilización de código y buenas prácticas.
El problema consiste en crear una serie de servicios que sustituyan a las operaciones aritméticas más básicas, como son la suma y la resta. Estos servicios harán las comprobaciones necesarias para que se asegure un buen funcionamiento sin errores. Se valorará el uso de la sintaxis de PHP para evitar comprobaciones manuales.
La última de las operaciones (Composition) se deberá apoyar en las operaciones previamente implementadas. El nombre de esta operación da una sutil pista sobre cómo debe de ser implementada.