Lo primero que vamos a hacer es modificar los datos de conexión a la base de datos en la ruta app/config/parameters.yml

# This file is auto-generated during the composer install
parameters:
    database_driver: pdo_pgsql
    database_host: 127.0.0.1
    database_port: 5432
    database_name: eva
    database_user: usuarioeva
    database_password: mipassword

Después se modifica el archivo app/config/config.yml en sólo una sección:

# Doctrine Configuration
doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

Creamos nuestro primer bundle:

php app/console generate:bundle --namespace=Acme/StoreBundle

Creamos una entidad para es bundle:

php app/console doctrine:generate:entity --entity="AcmeStoreBundle:Product"

Se ejecuta el comando para recrear los cambios en la base de datos que fue previamente creada:

php app/console doctrine:schema:create

Con esto creamos un CRUD de esa entidad llamad product:

php app/console generate:doctrine:crud --entity=AcmeStoreBundle:Product

Iniciamos nuestra instancia de symfony:

php app/console server:run 0.0.0.0:8081

Las validaciones se dan sobre el archivo src/Acme/StoreBundle/Controller/ProductController.php en el método del formulario src/Acme/StoreBundle/Controller/ProductController.php $form->isValid()

En cualquier línea de los diferentes formularios se puede hacer:

$product = new Product();
$validator = $this->get(‘validator’);
$errors = $validator->validate($product);

El resto de validaciones van del lado del servidor de bases de datos.