Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/09/2016, 11:50
X_fran
 
Fecha de Ingreso: octubre-2007
Mensajes: 273
Antigüedad: 16 años, 9 meses
Puntos: 5
Respuesta: Instalar StofDoctrineExtensionsBundle manualmente

Weno tengo que dar el tema por solucionado, al final terminé configurando DoctrineExtensions sin el uso del bundle. Estoy más que convencido que será a muy pocas personas les corresponda configurar un bundle manualmente.
La solución:
copiar la carpeta Gedmo que viene incluida en DoctrineExtensions.zip para el directorio /vendor/gedmo/doctrine-extensions/lib y esta ruta registrarla en el fichero app/autoload.php de la aplicación, justamente delante de la sentencia return:
$loader->add('Gedmo', __DIR__.'/../vendor/gedmo/doctrine-extensions/lib/');

con esto garantizamos que se cargue de forma global las clases de la librería Gedmo.

solo resta configurar en app/config/config.yml bajo la clave orm de doctrine:
#app/config/config.yml
Código:
orm:
        auto_generate_proxy_classes: "%kernel.debug%"        
        entity_managers:
            default: #the whole application entity manager
                naming_strategy: doctrine.orm.naming_strategy.underscore
                auto_mapping: true
                mappings:                   
                    tree:
                        type: annotation
                        alias: Gedmo
                        prefix: Gedmo\Tree\Entity
                        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity"
y en ese mismo fichero agregar un import a un fichero doctrine_extensions.yml en el mismo directorio app/config/
Código:
imports:
    - { resource: doctrine_extensions.yml }
que contendrá el registro de los listeners de la librería, en mi caso solo necesito por ahora el behaviour Tree, así que el fichero quedaría de la siguiente forma

#app/config/doctrine_extensions.yml
Código:
services:
gedmo.listener.tree:
        class: Gedmo\Tree\TreeListener
        tags:
            - { name: doctrine.event_subscriber, connection: default }
        calls:
            - [ setAnnotationReader, [ "@annotation_reader" ] ]
en caso de necesitarse el behaviour Translatable, este tiene una dependencia con behat/transliterator, es necesario descargarlo y agregarlo al autoload, o pudiera ser que cambiándole el namespace al mismo de las extensiones de doctrine funcione, eso no lo he probado aun, no estoy del todo seguro.

Existen otros behaviours que necesitan inyectarle dependencias, para acceder al ORM o al usuario, por lo tanto es necesario crearlas, pero para ese caso est'a muy bien explicado en la ayuda incluida en DoctrineExtensions.zip.

Hasta ahora me ha funcionado correctamente los mapping de la librería.