singleton pour la connection PDO
This commit is contained in:
45
src/Pdo/PdoConnect.php
Normal file
45
src/Pdo/PdoConnect.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Pdo;
|
||||
|
||||
use PDO;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
|
||||
class PdoConnect extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @var Singleton
|
||||
* @access private
|
||||
* @static
|
||||
*/
|
||||
private static $_instance = null;
|
||||
/**
|
||||
* Constructeur de la classe
|
||||
*
|
||||
* @param void
|
||||
* @return void
|
||||
*/
|
||||
private function __construct() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Méthode qui crée l'unique instance de la classe
|
||||
* si elle n'existe pas encore puis la retourne.
|
||||
*
|
||||
* @param void
|
||||
* @return PdoConnect
|
||||
*/
|
||||
public static function getInstance() {
|
||||
|
||||
if(is_null(self::$_instance)) {
|
||||
self::$_instance = new PdoConnect();
|
||||
}
|
||||
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
public function connect($urlDatabase, $dbUser, $dbPassword)
|
||||
{
|
||||
return new PDO($urlDatabase, $dbUser, $dbPassword);
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Pdo\PdoConnect;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
@ -16,15 +17,11 @@ class PdoServices extends AbstractController
|
||||
$this->params = $params;
|
||||
}
|
||||
|
||||
public function connection()
|
||||
{
|
||||
return new PDO($this->params->get('urlDatabase'), $this->params->get('dbUser'), $this->params->get('dbPassword'));
|
||||
}
|
||||
|
||||
public function fetchDatas($email)
|
||||
{
|
||||
try {
|
||||
$dbh = $this->connection();
|
||||
$pdo = PdoConnect::getInstance();
|
||||
$dbh = $pdo->connect($this->params->get('urlDatabase'), $this->params->get('dbUser'), $this->params->get('dbPassword'));
|
||||
$query = $dbh->prepare($this->getParameter('queryFetchDatas'));
|
||||
$query->execute(['email'=> $email]);
|
||||
$datas = $query->fetch(PDO::FETCH_ASSOC);
|
||||
|
Reference in New Issue
Block a user