En aquest tema, aprendrem sobre les tècniques de proves i depuració en PHP. Aquestes habilitats són essencials per assegurar que el teu codi funcioni correctament i per identificar i corregir errors de manera eficient.

Continguts

Introducció a les Proves

Les proves són una part fonamental del desenvolupament de programari. Ens ajuden a assegurar que el codi compleix amb els requisits i funciona com s'espera. Les proves poden detectar errors abans que el codi arribi a producció, estalviant temps i recursos.

Tipus de Proves

Hi ha diversos tipus de proves que es poden realitzar en PHP:

  • Proves Unitàries: Verifiquen la funcionalitat de components individuals del codi, com ara funcions o mètodes.
  • Proves d'Integració: Asseguren que diferents components del sistema funcionen correctament junts.
  • Proves Funcionals: Verifiquen que el sistema compleix amb els requisits funcionals especificats.
  • Proves de Regresió: Asseguren que els canvis en el codi no introdueixen nous errors en funcionalitats ja existents.

Eines de Proves en PHP

PHP ofereix diverses eines per a la realització de proves. Algunes de les més populars són:

  • PHPUnit: Una eina de proves unitàries per a PHP.
  • Behat: Una eina de proves de comportament.
  • Codeception: Un framework de proves que combina proves unitàries, d'acceptació i funcionals.

Escrivint Proves amb PHPUnit

PHPUnit és una de les eines més utilitzades per a les proves unitàries en PHP. A continuació, veurem com instal·lar i utilitzar PHPUnit per escriure proves.

Instal·lació de PHPUnit

Pots instal·lar PHPUnit utilitzant Composer:

composer require --dev phpunit/phpunit

Creant una Prova

A continuació, es mostra un exemple de com crear una prova unitària amb PHPUnit:

<?php
use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase
{
    public function testAdd()
    {
        $calculator = new Calculator();
        $result = $calculator->add(2, 3);
        $this->assertEquals(5, $result);
    }
}

Executant les Proves

Per executar les proves, utilitza la següent comanda:

vendor/bin/phpunit

Depuració en PHP

La depuració és el procés d'identificar i corregir errors en el codi. PHP ofereix diverses eines i tècniques per ajudar en aquest procés.

Eines de Depuració

Algunes de les eines de depuració més utilitzades en PHP són:

  • Xdebug: Una extensió de PHP que proporciona eines de depuració i anàlisi de rendiment.
  • PHP Debugger (DBG): Una altra extensió de depuració per a PHP.
  • FirePHP: Una eina que permet enviar dades de depuració al navegador.

Utilitzant Xdebug

Xdebug és una de les eines de depuració més populars per a PHP. A continuació, es mostra com instal·lar i utilitzar Xdebug.

Instal·lació de Xdebug

Pots instal·lar Xdebug utilitzant PECL:

pecl install xdebug

Després de la instal·lació, afegeix la següent línia al fitxer php.ini:

zend_extension=xdebug.so

Configuració de Xdebug

Afegeix les següents línies al fitxer php.ini per configurar Xdebug:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

Utilitzant Xdebug amb un IDE

Molts IDEs com PHPStorm i Visual Studio Code suporten Xdebug. Consulta la documentació del teu IDE per configurar la integració amb Xdebug.

Exercicis Pràctics

Exercici 1: Escriure una Prova Unitària

Escriu una prova unitària per a una funció que calcula el factorial d'un nombre.

Solució

<?php
use PHPUnit\Framework\TestCase;

class MathTest extends TestCase
{
    public function testFactorial()
    {
        $math = new Math();
        $result = $math->factorial(5);
        $this->assertEquals(120, $result);
    }
}

class Math
{
    public function factorial($n)
    {
        if ($n <= 1) {
            return 1;
        }
        return $n * $this->factorial($n - 1);
    }
}

Exercici 2: Depurar un Error

Utilitza Xdebug per depurar el següent codi i identificar l'error:

<?php
function divide($a, $b)
{
    return $a / $b;
}

echo divide(10, 0);

Solució

L'error en el codi és una divisió per zero. Utilitzant Xdebug, pots identificar l'error i corregir-lo:

<?php
function divide($a, $b)
{
    if ($b == 0) {
        throw new Exception("Divisió per zero no permesa.");
    }
    return $a / $b;
}

try {
    echo divide(10, 0);
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Conclusió

En aquesta secció, hem après sobre les tècniques de proves i depuració en PHP. Hem vist com utilitzar PHPUnit per escriure proves unitàries i com utilitzar Xdebug per depurar el codi. Aquestes habilitats són essencials per assegurar que el teu codi funcioni correctament i per identificar i corregir errors de manera eficient.

Curs de Programació PHP

Mòdul 1: Introducció a PHP

Mòdul 2: Estructures de Control

Mòdul 3: Funcions

Mòdul 4: Arrays

Mòdul 5: Treballant amb Formularis

Mòdul 6: Treballant amb Fitxers

Mòdul 7: Programació Orientada a Objectes (OOP)

Mòdul 8: Treballant amb Bases de Dades

Mòdul 9: Tècniques Avançades de PHP

Mòdul 10: Frameworks PHP i Millors Pràctiques

Mòdul 11: Projecte: Construint una Aplicació Web

© Copyright 2024. Tots els drets reservats