# Día 2, Bienes Racíces POO: XDEBUG, PHPUNIT, PHPDOCUMENTOR Con lo que has podido ver ya apreciarás que esto se complica, al final los proyectos crecen y cada vez son más difíciles de mantener. Para empezar a subir nuestro nivel de programación antes de seguir vamos a empezar a usar tres cosas: - Debugging - Testeo - Documentación ## Debugging Hasta ahora estábamos haciendo nuestro debuggin simplemente haciendo un var_dump donde creíamos que podía haber un error, vamos a empezar a hacer debugging, lo vieron el año pasado en ETS en Java y para php los conceptos son los mismos, básicamente podemos poner breakpoints y watchers que nos permiten seguir el flujo de nuestro programa más fácilmente. Vamos a instalar el XDEBUG siguiendo este tutorial donde además aprenderemos algo más sobre los error logs en PHP: https://www.cloudways.com/blog/php-debug/#errorlogging Este es el link donde introducimos los datos del phpinfo(); https://xdebug.org/wizard Y haremos una demo básica que podrán ampliar en este curso: https://www.youtube.com/watch?v=HrQWtbxY1Hs ## Testeo Para probar nuestras habilidades debuggeadoras vamos comenzar un nuevo proyecto, creando la carpeta "codewars" en el htdocs de nuestro xampp. Tal y como hemos comentado en clase para poder pasar nuestras entrevistas técnicas sin problemas vamos a hacer en clase una serie de ejercicios donde nos retaremos a programar cada día mejor, estos ejercicios los tomaré de la web https://www.codewars.com/ En esta web vas ganando puntos a medida que haces retos, pero como no podemos decirles que se registren, pondré los retos en nuestro campus y si alguien quiere ganar puntos y experiencia de manera totalmente particular podrá suscribirse. ``` Nuestro primer reto nos obligará a manejar funciones de carateres. Complete the method/function so that it converts dash/underscore delimited words into camel casing. The first word within the output should be capitalized only if the original word was capitalized (known as Upper Camel Case, also often referred to as Pascal case). The next words should be always capitalized. Examples "the-stealth-warrior" gets converted to "theStealthWarrior" "The_Stealth_Warrior" gets converted to "TheStealthWarrior" "The_Stealth-Warrior" gets converted to "TheStealthWarrior" ``` Este es el test que tiene que pasar: ``` <?php require_once(__DIR__."/../tocamelcase.php"); use PHPUnit\Framework\TestCase; class SampleTest extends TestCase { public function testSampleCases() { $this->assertSame("theStealthWarrior", toCamelCase("the_stealth_warrior"), "toCamelCase('the_stealth_warrior') did not return correct value"); $this->assertSame("theStealthWarrior", toCamelCase("the-Stealth-Warrior"), "toCamelCase('the-Stealth-Warrior') did not return correct value"); } } ``` Y empezamos con este código que tiene que fallar: ``` <?php function toCamelCase($str){ $str = preg_replace("/-/","", $str); return ($str); } ``` Para poder instalarlo en VSCode seguimos este manual: https://www.youtube.com/watch?v=zL_uuk2rp44&t=42s&ab_channel=OpenWebinars Y para hacer los test en sí este otro: https://docs.phpunit.de/en/10.4/writing-tests-for-phpunit.html Seguiremos practicando!! ## Documentación Como creo que lo darán al final en DPL vamos adelantando ya que lo dieron también conmigo el año pasado en ETS. Tienen los materiales en el campus. En esta nueva iteración de mejora del código vamos a documentar todas las clases que programemos y luego generaremos la documentación. Repasen la información proporcionada y por ahora escriban la documentación de las clases!