Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Nevim 09. 12. 2015, 20:42:02

Název: PHP @new PDO
Přispěvatel: Nevim 09. 12. 2015, 20:42:02
Ahoj,
Můžete mi někdo vysvětlit proč  před vytvořením objektu je @?

Kód: [Vybrat]
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;
    }
Název: Re:PHP @new PDO
Přispěvatel: Kit 09. 12. 2015, 21:03:30
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
Kód: [Vybrat]
private static $spojeni;
public static function pripoj(...
které znemožňují otevření více databází. Statické proměnné a metody jsou prostě fuj.
Název: Re:PHP @new PDO
Přispěvatel: Nevim 09. 12. 2015, 21:18:02
Díky za vysvětlení.
Název: Re:PHP @new PDO
Přispěvatel: karel 10. 12. 2015, 07:34:33
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čí.
Název: Re:PHP @new PDO
Přispěvatel: Kit 10. 12. 2015, 07:46:17
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.