Guia Completa de PHP: Classes, Seguretat i Bones Pràctiques

Informática4,07 KB

Programació Orientada a Objectes en PHP

Classe Cotxe:

class Cotxe {
    public $marca;
    public $model;
    public $any;
}

Constructor i Destructor (Persona):

class Persona {
    public $nom;
    public $edat;

    public function __construct($nom, $edat) {
        $this->nom = $nom;
        $this->edat = $edat;
    }

    public function __destruct() {
        echo "L'objecte ha estat destruït.";
    }
}

Herència i Propietats

CotxeElèctric:

class CotxeElèctric extends Cotxe {
    public $capacitatDeBateria;
}

Polimorfisme

class Cotxe {
    public function conduir() {
        echo "Conduint un cotxe.";
    }
}

class CotxeElèctric extends Cotxe {
    public function conduir() {
        echo "Conduint un cotxe elèctric.";
    }
}

Mètodes i Propietats Estàtiques

class Cotxe {
    public static $nombreTotalCotxes = 0;

    public function __construct() {
        self::$nombreTotalCotxes++;
    }

    public static function obtenirNombreTotalCotxes() {
        return self::$nombreTotalCotxes;
    }
}

Sobrecàrrega vs Reemplaçament

PHP no admet sobrecàrrega de mètodes com altres llenguatges (per exemple, Java). Si es defineixen dos mètodes amb el mateix nom, el segon substitueix el primer. Per simular sobrecàrrega, es poden utilitzar arguments opcionals o func_get_args():

class Exemple {
    public function operacio($parametre1, $parametre2 = null) {
        if ($parametre2 === null) {
            // Comportament amb un paràmetre
        } else {
            // Comportament amb dos paràmetres
        }
    }
}

Implementació Singleton

class Singleton {
    private static $instancia;

    private function __construct() {}

    public static function obtenirInstancia() {
        if (!isset(self::$instancia)) {
            self::$instancia = new self();
        }
        return self::$instancia;
    }
}

PHP per a Pàgines Web

Sintaxi bàsica

<?php
// Codi PHP aquí
?>

Recuperar Dades de Formularis

$valor = $_POST['nom_camp']; // o $_GET per a dades via GET

Iniciar Sessió

session_start();

Generar Contingut Dinàmic

<?php
$usuari = "Usuari";
echo "Hola, $usuari!";
?>

Gestió de Càrrega de Fitxers

move_uploaded_file($_FILES['fitxer']['tmp_name'], 'directori/fitxer.extensio');

Enviar Correu Electrònic

$destinatari = "[email protected]";
$assumpte = "Assumpte del correu";
$cos = "Cos del correu";
$headers = "From: [email protected]";
mail($destinatari, $assumpte, $cos, $headers);

Seguretat, Rendiment i Errors

Mesures de Seguretat

  • Validació de dades
  • Escapament de caràcters
  • Ús de consultes preparades
  • Control d'accés

Optimització del Rendiment

  • Caching
  • Minificació de codi
  • Optimització de bases de dades

Tractament d'Errors

try {
    // Codi que pot generar una excepció
} catch (Exception $e) {
    echo "Excepció capturada: " . $e->getMessage();
}

Contingut Dinàmic i Dades

Visualització de Contingut Dinàmic

$productes = array("Producte1", "Producte2", "Producte3");
foreach ($productes as $producte) {
    echo $producte . "
"; }

Treball amb JSON

$array = array("nom" => "John", "edat" => 30);
$json = json_encode($array);
$nouArray = json_decode($json, true);

Lectura i Escriptura de Fitxers

$fitxer = fopen("fitxer.txt", "r"); // o "w" per escriure
$contingut = fread($fitxer, filesize("fitxer.txt"));
fclose($fitxer);

Utilitzant PHP amb Plantilla HTML

(Contingut pendent de completar en el document original.)

Descargar

PDF Word HTML