Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Nevim 09. 12. 2015, 20:42:02
-
Ahoj,
Můžete mi někdo vysvětlit proč před vytvořením objektu je @?
class Databaze {
private static $spojeni;
private static $nastaveni = Array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
);
public static function pripoj($host, $uzivatel, $heslo, $databaze) {
if (!isset(self::$spojeni)) {
self::$spojeni = @new PDO(
"mysql:host=$host;dbname=$databaze",
$uzivatel,
$heslo,
self::$nastaveni
);
}
return self::$spojeni;
}
-
Zavináč se dává tam, kde je potřeba potlačit chybové hlášení. V daném případě zbytečně.
Jako zbytečná se mi jeví skoro celá třída a asi nejzbytečnější jsou tam řádky
private static $spojeni;
public static function pripoj(...
které znemožňují otevření více databází. Statické proměnné a metody jsou prostě fuj.
-
Díky za vysvětlení.
-
Není zbytečná jde o klasický způsob sdílení připojení do databáze.
V 99% php projektů a nebude to platit jen pro php ti jedno spojení na jednu databázi stačí.
-
Není zbytečná jde o klasický způsob sdílení připojení do databáze.
V 99% php projektů a nebude to platit jen pro php ti jedno spojení na jednu databázi stačí.
To ještě neznamená, že by se Singleton měl používat tam, kde se používat nemá.
V projektech běžně používám 2-3 databáze. Na jednu databázi mám vždy jen jedno spojení, ale Singleton na to opravdu nepotřebuji.