werneckbh
4/20/2015 - 5:31 PM

Classe para conexão com banco de dados e Inserção de Clientes

Classe para conexão com banco de dados e Inserção de Clientes

<?php

// autoload

use Seu\Namespace\Cliente;
use Seu\Namespace\Connection;
use Seu\Namespace\ClientePersister;

$config = include 'config.php';
$conn = new Connection($config);
$cp = new ClientePersister($conn->getPDO());

$cliente1 = new Cliente();
$cliente1->setNome("Fulano")...etc...;
$cliente2 = new Cliente();
$clinete2->setNome("Beltrano")...etc...;

$cp->persist($cliente1);
$cp->persist($cliente2);

$cp->flush();
<?php
return array(
    'driver' => 'mysql',
    'host'   => 'localhost',
    'dbname' => 'nome_do_banco',
    'user'   => 'root',
    'pass'   => 'root'
);
<?php

namespace Seu\Namespace;

class Connection
{
    /**
     * @var \PDO
     */
    protected $pdo;

    public function __construct(array $config = array())
    {
        try {
            $this->pdo = new \PDO(
                "{$config['driver']}:host={$config['host']};dbname={$config['dbname']}", 
                $config['user'], 
                $config['pass'], 
                array(
                    \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION        
                )
            );
        } catch(\PDOException $ex) {
            die('Erro ao conectar: ' . $ex->getMessage());
        }         
    }
    
    /**
     * @return \PDO Objeto PDO
     */
    public function getPDO()
    {
        return $this->pdo;
    }
}
<?php
namespace Seu\Namespace\;

use Seu\Namespace\Cliente;

class ClientePersister
{
    /**
     * @var \PDO
     */
    protected $pdo;
    
    protected $clientes = array();
    
    public function __construct(\PDO $pdo)
    {
        $this->pdo = $pdo;
    }
    
    public function persist(Cliente $cliente)
    {
        $this->clientes[] = $cliente;
    }
    
    public function flush()
    {
        foreach ($this->clientes as $cliente) {
            // sua lógica para gravar os clientes no banco de dados
            $this->pdo->prepare("INSERT ...etc...");
            // ...etc...
        }
    }
}