J'ai lu une fois que les classes statiques sont très difficiles et même impossibles à déboguer. Est-ce vrai et pourquoi?J'ai lu une fois que les classes statiques sont très difficiles et même impossibles à déboguer. Est-ce vrai et pourquoi?
Si un exemple aiderait, voici une classe PHP
j'utiliser pour accéder à une base de données (je ne pense pas que ce soit une question spécifique à PHP, cependant):
<?php
class DB
{
private static $instance;
private function __construct() { }
public static function getInstance()
{
if(!self::$instance)
{
self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';', DB_USER, DB_PASS);
}
return self::$instance;
}
public static function getPreparedStatement($query)
{
$db = self::getInstance();
return $db->prepare($query);
}
public static function query($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
}
public static function getResult($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt;
}
public static function getSingleRow($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetch();
}
public static function getMultipleRows($query)
{
$stmt = self::getPreparedStatement($query);
$stmt->execute();
return $stmt->fetchAll();
}
}
?>
Espérons que vous êtes prêt pour une guerre ... il y a beaucoup de haine envers les classes/méthodes statiques, et cela devient encore pire quand vous évoquez des singletons ... – Nix
Ça va :-) Je suis curieux de connaître le sujet et attendons avec impatience les réponses que les gens fournissent. –