Foros del Web » Programando para Internet » PHP » Zend »

Integrar Doctrine 2 con Zend framework

Estas en el tema de Integrar Doctrine 2 con Zend framework en el foro de Zend en Foros del Web. hola buenas tardes, estoy intentando integrar doctrine 2 con zend framework , he leido varias documentacions y no consigo ejecutar... Estoy siguiendo este manual para ...
  #1 (permalink)  
Antiguo 27/12/2010, 12:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Integrar Doctrine 2 con Zend framework

hola buenas tardes, estoy intentando integrar doctrine 2 con zend framework , he leido varias documentacions y no consigo ejecutar...

Estoy siguiendo este manual para poder usar Zend tool con Doctrine:

http://christian.soronellas.es/2010/...-y-doctrine-2/
http://christian.soronellas.es/2010/...octrine-2-cli/

Ahora cuando hago Zf show version por ejemplo , salta este warning.

PHP Warning: include_once(Doctrine\Zend\Tool\Project\Provider\D octrineConfigProvider.php): failed to open stream: No such file or directory in C:\Arc
hivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\Zend\Loader .php on line 146

En la carpeta library/bin...
Tengo doctrine.php configurado asi.
Código PHP:
$lib ='C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/';
require_once 
'C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine/Common/ClassLoader.php';
$classLoader = new DoctrineCommonClassLoader('Doctrine\Common'$lib);
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine');
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Doctrine\ORM'$lib);
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Doctrine\DBAL'$lib);
$classLoader->register();


$classLoader = new DoctrineCommonClassLoader('Doctrine\Symfony''C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine');
$classLoader->register();

$configFile getcwd() . DIRECTORY_SEPARATOR 'cli-config.php';

$helperSet null;
if (
file_exists($configFile)) {
    if ( ! 
is_readable($configFile)) {
        
trigger_error(
            
'Configuration file [' $configFile '] does not have read permission.'E_ERROR
        
);
    }

    require 
$configFile;

    foreach (
$GLOBALS as $helperSetCandidate) {
        if (
$helperSetCandidate instanceof SymfonyComponentConsoleHelperHelperSet) {
            
$helperSet $helperSetCandidate;
            break;
        }
    }
}

$helperSet = ($helperSet) ?: new SymfonyComponentConsoleHelperHelperSet();

DoctrineORMToolsConsoleConsoleRunner::run($helperSet); 
Aqui salta el warning :

Fatal error: Class 'Symfony\Component\Console\Helper\HelperSet' not found in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\bin\cli-config.php on line 26


y el cli-config.php asi.
Código PHP:
require_once 'C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine/Common/ClassLoader.php';

$classLoader = new DoctrineCommonClassLoader('Application\Models'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Application\Models\Proxies'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$config = new DoctrineORMConfiguration();
$cache = new DoctrineCommonCacheArrayCache();
$config->setMetadataCacheImpl($cache);
$driverImpl $config -> newDefaultAnnotationDriver(dirname(dirname(dirname(__FILE__))) . '/application/models');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(dirname(dirname(dirname(__FILE__))) . '/application/models/proxies');
$config->setProxyNamespace('Application\Models\Proxies');

$connectionOptions = array(
    
'driver' => 'pdo_mysql',
    
'path' => dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR implode(DIRECTORY_SEPARATOR, array('data''db''database-dev.db'))
);

$em DoctrineORMEntityManager::create($connectionOptions$config);

$helperSet = new SymfonyComponentConsoleHelperHelperSet(array(
    
'db' => new DoctrineDBALToolsConsoleHelperConnectionHelper($em->getConnection()),
    
'em' => new DoctrineORMToolsConsoleHelperEntityManagerHelper($em)
)); 
Muchas gracias si alguien ha sabe como integrar doctrine con zend, aunq no haga falta el zend tool, podria ayudarme , muchas gracias
  #2 (permalink)  
Antiguo 27/12/2010, 13:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Cita:
Iniciado por niewpendejo Ver Mensaje
PHP Warning: include_once(Doctrine\Zend\Tool\Project\Provider\D octrineConfigProvider.php): failed to open stream: No such file or directory in C:\Arc
hivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\Zend\Loader .php on line 146
Registraste el provider con Zend_Tool ?, al final del segundo link que pasaste esta la solución a este problema, los Providers deben estar registrados y en el include_path(tenes que editar el .zf.ini).

Cita:
Iniciado por niewpendejo Ver Mensaje

Fatal error: Class 'Symfony\Component\Console\Helper\HelperSet' not found in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\bin\cli-config.php on line 26
Tenes symfony en el include_path?, si no es así deberías instalarlo ya que depende de este para operar.

Saludos.
  #3 (permalink)  
Antiguo 27/12/2010, 13:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

este es mi .zf.ini

php.include_path = "C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library;.;C:\Servid or\Php\pear"
basicloader.classes.0 = "Doctrine_Zend_Tool_Project_Provider_DoctrineConfi gProvider"
basicloader.classes.1 = "Doctrine_Zend_Tool_Project_Provider_DoctrineOrmPr ovider"

Y no se a que te refieres con registrar el provider con zend tool...puedes decirme un ejemplo...
  #4 (permalink)  
Antiguo 27/12/2010, 14:15
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Para poder utilizar un Provider debes habilitarlo, esto lo que hace es generarte la linea correspondiente en el .zf.ini

Código SHELL:
Ver original
  1. zf enable config.provider Doctrine_Zend_Tool_Project_Provider_DoctrineConfigProvider

por lo que me mostras ya estan habilitados, entonces te pregunto, existen los ficheros DoctrineConfigProvider.php y DoctrineOrmProvider.php dentro de

..zf\library\Doctrine\Zend\Tool\Project\Provider
o bien dentro de
\Php\pear\Doctrine\Zend\Tool\Project\Provider

lo mismo para symfony, esta en el include_path?
  #5 (permalink)  
Antiguo 27/12/2010, 14:41
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Perdon , habia una ruta que estabe incorrecta....
Ahora si hago zf doctrine , va...

Pero si ejecuto el http://localhost/zf/library/bin/doctrine.php:

salta el warning:
Fatal error: Class 'Symfony\Component\Console\Helper\HelperSet' not found in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\bin\cli-config.php on line 26

Ya va teniendo mejor color gracias...

Última edición por niewpendejo; 27/12/2010 a las 14:47 Razón: Error
  #6 (permalink)  
Antiguo 28/12/2010, 03:27
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Deberias tener en cuenta que son cosas diferentes, por un lado esta el Doctrine CLI(lo estas utilizando standalone en doctrine.php) y por otro lado esta la integración del Doctrine CLI con Zend_Tool, que es de lo que trata el segundo link, la idea de esta integración es utilizar el Doctrine CLI a través Zend_Tool, la forma correcta de utilizarlo es zf doctrine:...., igualmente el error es el mismo, la ruta hacia symfony no esta bien.

Por cierto esta integración con Doctrine 2 es la mas limpia que he visto, muchas gracias por los links .

Saludos.

Última edición por masterpuppet; 28/12/2010 a las 04:19
  #7 (permalink)  
Antiguo 29/12/2010, 11:21
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Busqueda Respuesta: Integrar Doctrine 2 con Zend framework

Los links estan muy bien ,pero hay que darle mejor las gracias a quien se lo ha currado , yo simplemente buscado por google...

Y sigo con el mismo problema y no encuentro la solucion :

Fatal error: Class 'Symfony\Component\Console\Helper\HelperSet' not found in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\zf\library\bin\cli-config.php on line 26

mi estructura es la siguiente , es algo de los path , pero no consigo resolverla...
library:
-Doctrine
-Common
-ORM
-DBAL
-Symfony
-Zend

-Zend
-bin
-cli-config.php
-doctrine.bat
-doctrine
-doctrine.php
-zf.sh
-zf.bat
-zf.php

mi
y mi cli-config.php es:
Código PHP:
<?php

require_once 'C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine/Common/ClassLoader.php';

$classLoader = new DoctrineCommonClassLoader('Application\Models'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Application\Models\Proxies'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$config = new DoctrineORMConfiguration();
$cache = new DoctrineCommonCacheArrayCache();
$config->setMetadataCacheImpl($cache);
$driverImpl $config -> newDefaultAnnotationDriver(dirname(dirname(dirname(__FILE__))) . '/application/models');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(dirname(dirname(dirname(__FILE__))) . '/application/models/proxies');
$config->setProxyNamespace('Application\Models\Proxies');

$connectionOptions = array(
    
'driver' => 'pdo_mysql',
    
'path' => dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR implode(DIRECTORY_SEPARATOR, array('data''db''database-dev.db'))
);

$em DoctrineORMEntityManager::create($connectionOptions$config);

$helperSet = new SymfonyComponentConsoleHelperHelperSet(array(
    
'db' => new DoctrineDBALToolsConsoleHelperConnectionHelper($em->getConnection()),
    
'em' => new DoctrineORMToolsConsoleHelperEntityManagerHelper($em)
));
y mi doctrine.php es.

Código PHP:
<?php
/*
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the LGPL. For more information, see
 * <http://www.doctrine-project.org>.
 */

$lib ='C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/';
require_once 
'C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine/Common/ClassLoader.php';
$classLoader = new DoctrineCommonClassLoader('Doctrine\Common'$lib);
$classLoader->register();

//$classLoader = new \Doctrine\Common\ClassLoader('C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine');
//$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Doctrine\DBAL'$lib);
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Doctrine\ORM'$lib);
$classLoader->register();



/*$classLoader = new \Doctrine\Common\ClassLoader('Doctrine\Zend', $lib);
$classLoader->register();*/
$classLoader = new DoctrineCommonClassLoader('Doctrine\Symfony''C:/Archivos de programa/Apache Software Foundation/Apache2.2/htdocs/zf/library/Doctrine');
$classLoader->register();


$configFile getcwd() . DIRECTORY_SEPARATOR 'cli-config.php';

$helperSet null;

if (
file_exists($configFile)) {
    if ( ! 
is_readable($configFile)) {
        
trigger_error(
            
'Configuration file [' $configFile '] does not have read permission.'E_ERROR
        
);
    }
   
    require 
$configFile;

   
    foreach (
$GLOBALS as $helperSetCandidate) {
        if (
$helperSetCandidate instanceof SymfonyComponentConsoleHelperHelperSet) {
            
$helperSet $helperSetCandidate;
            break;
        }
    }
}

$helperSet = ($helperSet) ?: new SymfonyComponentConsoleHelperHelperSet();

DoctrineORMToolsConsoleConsoleRunner::run($helperSet);
Un saludo , a ver si alguien ve el error...q yo ya no veo naaa de naaa
  #8 (permalink)  
Antiguo 29/12/2010, 11:39
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Me autocorrigo....

A veces pasa, pides ayuda y los ves mas claro...jajaja...

El error estabe en .doctrine.php
Asi es lo correcto.
$classLoader = new \Doctrine\Common\ClassLoader('Symfony', $lib.'Doctrine');

Gracias a todos...
  #9 (permalink)  
Antiguo 29/12/2010, 17:21
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 17 años, 2 meses
Puntos: 4
Respuesta: Integrar Doctrine 2 con Zend framework

Que tal amigos, leyendo este post veo que para utilizar Doctrine en Zend Famework, tambien hay que instalar Symfony.
Estoy en lo cierto?

Hay alguna otra posibilidad de usar Doctrine en ZF sin la necesidad de instalar Symfony?

Saludos.
  #10 (permalink)  
Antiguo 29/12/2010, 17:46
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Cita:
Iniciado por pur Ver Mensaje
Que tal amigos, leyendo este post veo que para utilizar Doctrine en Zend Famework, tambien hay que instalar Symfony.
Estoy en lo cierto?

Hay alguna otra posibilidad de usar Doctrine en ZF sin la necesidad de instalar Symfony?

Saludos.
Es un requerimiento de Doctrine, Doctrine-CLI Tool y el YAML Mapping driver dependen de componentes de Symfony, Console y YAML respectivamente, cuando bajas Doctrine 2 ya viene lo que necesitas.

Saludos.
  #11 (permalink)  
Antiguo 10/01/2011, 06:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Hola buenos dias, regreso con dudas sobre doctrine.

Me gustaria generar un archivo Yaml , de la base de datos y los entities con ./Doctrine.

Pero no consigo encontrar suficiente informacion o los comandos correctos.

Es posible hacer el Yaml de la base de datos automaticamente , un saludo y gracias por todo
  #12 (permalink)  
Antiguo 10/01/2011, 07:07
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Esta todo en la sección Tools del manual, Reverse Engineering(para generar Yml, Xml, etc...), y para generar las entities doctrine orm:generate-entities, esto depende del driver que tengas configurado en el cli, si estas utilizando el ejemplo que pasaste anteriormente, mapea a partir de annotations, si queres que sea a partir de Yml, deberias cambiar al driver correspondiente(YamlDriver).

Saludos.
  #13 (permalink)  
Antiguo 10/01/2011, 09:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Cuando ejecuto ./doctrine orm:convert-mapping --from-database yml + path
me salta el siguiente error.
[PDOException]
SQLSTATE[28000] [1045] Access denied for user 'name'@'localhost' (using password: NO)

Claro yo no me estoy conectando a la base de datos local , sino a la que esta configurada en mi config.ini...
Se le puede pasar a esta intruccion la cadena de conexion.
Puedes poner un ejemplo de como realizarlo ....
Muchas gracias

Última edición por niewpendejo; 10/01/2011 a las 09:19 Razón: error de edicion
  #14 (permalink)  
Antiguo 10/01/2011, 11:23
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

El problema que tenes ahora es la configuración en el cli-config.php, debería ser algo como esto:

http://www.doctrine-project.org/docs...iguration.html
  #15 (permalink)  
Antiguo 11/01/2011, 02:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

He probado ya , y salta el siguiente error:

Fatal error: Uncaught exception 'Doctrine\DBAL\DBALException' with message 'Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.

Y los datos de la conexion son correctos...
Este es mi cli-config.php:
Código PHP:

require_once LIB_PATH.'Doctrine/Common/ClassLoader.php';

$classLoader = new DoctrineCommonClassLoader('Application\Models'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$classLoader = new DoctrineCommonClassLoader('Application\Models\Proxies'dirname(dirname(dirname(__FILE__))));
$classLoader->register();

$config = new DoctrineORMConfiguration();
$cache = new DoctrineCommonCacheArrayCache();
$config->setMetadataCacheImpl($cache);

$driverImpl $config -> newDefaultAnnotationDriver(dirname(dirname(dirname(__FILE__))) . '/../application/models');
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(dirname(dirname(dirname(__FILE__))) . '/../application/models/proxies');
$config->setProxyNamespace('Application\Models\Proxies');

/*$connectionOptions = array(
    'driver' => 'pdo_mysql',
    'path' => dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, array('data', 'db', 'database-dev.db'))
);*/
$connectionOptions = array(
    
'dbname' => 'BaseDatos',
    
'user' => 'base',
    
'password' => 'datos',
    
'host' => 'test.es',
    
'driver' => 'pdo_mysql',
   
);

$em DoctrineORMEntityManager::create($connectionOptions$config);


$sm $em->getConnection()->getSchemaManager();

$em->getConfiguration()->setMetadataDriverImpl(
    new 
DoctrineORMMappingDriverDatabaseDriver(
        
$em->getConnection()->getSchemaManager()
    )
);




$cmf = new DoctrineORMToolsDisconnectedClassMetadataFactory($em);
$cmf->setEntityManager($em);

$metadata $cmf->getAllMetadata();



$cme = new DoctrineORMToolsExportClassMetadataExporter();


$exporter $cme->getExporter('yml'dirname(dirname(dirname(__FILE__))) . '/../application/schema');
$exporter->setMetadata($metadata);
$etg = new DoctrineORMToolsEntityGenerator;
$exporter->setEntityGenerator($etg);
$exporter->export();

$helperSet = new SymfonyComponentConsoleHelperHelperSet(array(
    
'db' => new DoctrineDBALToolsConsoleHelperConnectionHelper($em->getConnection()),
    
'em' => new DoctrineORMToolsConsoleHelperEntityManagerHelper($em)
)); 
Un saludo
  #16 (permalink)  
Antiguo 11/01/2011, 04:53
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Tenes campos enum en la bbdd ?, porque en \Doctrine\DBAL\Types no existe Enum(al menos en la version que tengo V2.0), así que supongo que todavía no tiene soporte para ese tipo de dato o puede ser un bug.

Saludos.
  #17 (permalink)  
Antiguo 11/01/2011, 12:03
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Gracias , ya he visto eso que no los tiene definido , he podido salvar ese fallo, creando el enum como string , pero me gustaria preguntar , es normal que genere un yml por cada tabla o deberia generar uno por base de datos con todas la tablas...
Un saludo
  #18 (permalink)  
Antiguo 11/01/2011, 12:54
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Esta en el manual amigo, que a esta altura debería ser la biblia.
  #19 (permalink)  
Antiguo 12/01/2011, 08:29
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Buenas tardes...cuando genero los entities, no consigo general el namespace correspondiente:

mi doctrine.php tengo:
Código PHP:
$classLoader = new DoctrineCommonClassLoader('Entities'LIB_PATH '../application/models/entities');
$classLoader->register(); 
En el
cli-config.php tengo:
Código PHP:
$config->setEntityNamespaces(array('Application\\Models\\Entities'),array('Entities')); 
aun asi no me genera los namespace para las clases de los modelos...

mi yaml de la clase es:

A:
type: entity
table: a
fields:
idA:
id: true
type: integer
unsigned: false
nullable: false
column: id_a
generator:
strategy: IDENTITY
lifecycleCallbacks: { }

Y las clases se generan en:
Application/models/entities

Pero sin los namespace para que las encuentre zend.
Las genera asi.

Código PHP:
class A
{
  } 
Como puedo agregar los namespace...un saludo
  #20 (permalink)  
Antiguo 12/01/2011, 09:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Según el manual
  1. Each entity/mapped superclass must get its own dedicated YAML mapping document.
  2. The name of the mapping document must consist of the fully qualified name of the class, where namespace separators are replaced by dots (.).
  3. All mapping documents should get the extension ”.dcm.yml” to identify it as a Doctrine mapping file. This is more of a convention and you are not forced to do this. You can change the file extension easily enough.
  #21 (permalink)  
Antiguo 12/01/2011, 10:12
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Estoy probando de mil maneras y he leido pero no consigo que salga correctamente
Modificando el cli-config.php.

Código PHP:
$driver = new DoctrineORMMappingDriverYamlDriver(array(APPLICATION_PATH.'/schema'));

$driver->setFileExtension('.yml');
$config->setMetadataDriverImpl($driver); 
el archivo es a.dcm.yml. como siempre pero el yml sigue con la misma estructura y la clases igual..
cual puede ser el error...algun ejemplo
  #22 (permalink)  
Antiguo 12/01/2011, 10:38
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

El fichero deberia ser Entities.A.dcm.yml y dentro del mismo:

Código YML:
Ver original
  1. Entities\A:
  2.   type: entity
  3.   table: a
  4.   fields:
  5. ...
  #23 (permalink)  
Antiguo 12/01/2011, 10:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Pero como llego a conseguir asi el yml , cuando ejecuto e
l
./doctrine orm:convert-mapping --from-database yml

No consigo hacerlo
  #24 (permalink)  
Antiguo 12/01/2011, 11:23
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Que es lo que queres hacer ?, generar los modelos a partir del Yml o generar los Yml a partir del schema ?, el primer caso es como te puse arriba y el segundo depende de tu schema, igualmente en el manual hay un notice que te aclara que esta opción requiere luego trabajo manual(osea todavía le falta).
  #25 (permalink)  
Antiguo 12/01/2011, 13:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Lo que pretendo hacer, partiendo de la Base de Datos general los yaml, y posteriormente general el modelo partiendo de los yaml...
Asi que esto tendria que hacerlo manualmente?
Ya que los yaml, no me los genera como debe...
  #26 (permalink)  
Antiguo 12/01/2011, 13:41
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Integrar Doctrine 2 con Zend framework

Podrías utilizar lo que te genera como base, pero luego deberías revisarlo todo, porque no te va a generar los namespace correspondientes y los diferentes tipos de relaciones(one-to-many - many-to-many) no los diferencia.
Por ejemplo si tuvieras una tabla entities_user el te genera en el yml EntitiesUser, ahi tendrias que manualmente arreglar el Yml y cambiarlo a Entities\User, por ahora es lo que hay.

Saludos.
  #27 (permalink)  
Antiguo 15/01/2011, 07:34
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Integrar Doctrine 2 con Zend framework

Muchas gracias por todo...

Etiquetas: doctrine, doctrine2, framework, integrar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:51.