Guia Completa de PHP: Classes, Seguretat i Bones Pràctiques
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 GETIniciar 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.)