Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment configurer correctement une connexion PDO

L'objectif

Selon moi, votre objectif dans ce cas est double :

  • créer et maintenir une connexion unique/réutilisable par base de données
  • assurez-vous que la connexion a été configurée correctement

Solution

Je recommanderais d'utiliser à la fois la fonction anonyme et le modèle d'usine pour gérer la connexion PDO. L'utilisation de celui-ci ressemblerait à ceci :

$provider = function()
{
    $instance = new PDO('mysql:......;charset=utf8', 'username', 'password');
    $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    return $instance;
};

$factory = new StructureFactory( $provider );

Puis dans un fichier différent ou inférieur dans le même fichier :

$something = $factory->create('Something');
$foobar = $factory->create('Foobar');

L'usine elle-même devrait ressembler à ceci :

class StructureFactory
{
    protected $provider = null;
    protected $connection = null;

    public function __construct( callable $provider )
    {
        $this->provider = $provider;
    }

    public function create( $name)
    {
        if ( $this->connection === null )
        {
            $this->connection = call_user_func( $this->provider );
        }
        return new $name( $this->connection );
    }

}

De cette façon, vous disposerez d'une structure centralisée, qui garantit que la connexion est créée uniquement lorsque cela est nécessaire. Cela faciliterait également le processus de test unitaire et de maintenance.

Dans ce cas, le fournisseur se trouverait quelque part au stade de l'amorçage. Cette approche donnerait également un emplacement clair où définir la configuration, que vous utilisez pour vous connecter à la base de données.

Gardez à l'esprit qu'il s'agit d'un exemple extrêmement simplifié . Vous pourriez également bénéficier du visionnage des deux vidéos suivantes :

Aussi, je recommanderais fortement de lire un tutoriel approprié à propos de l'utilisation de PDO (il existe un journal des mauvais tutoriels en ligne).