Pim-community-dev: La clase de proxy de Doctrine no se genera después de agregar una propiedad de categoría personalizada

Creado en 15 jun. 2017  ·  15Comentarios  ·  Fuente: akeneo/pim-community-dev

Estoy haciendo una pregunta

Hola,

Seguí el libro de

Todo funciona bien en el entorno de desarrollo, pero después de cambiar a prod me enfrento a app/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php): failed to open stream: No such file or directory .

Intenté calentar manualmente el caché, pero esto solo genera una clase de proxy de doctrina para mi nueva entidad de categoría personalizada que extiende BaseCategory. La única solución que encontré hasta ahora es copiar esta clase de proxy a __CG__PimBundleCatalogBundleEntityCategory.php que probablemente no sea exactamente la mejor práctica ;-)

¿Podrías darme una pista de lo que me estoy perdiendo?

¡Gracias!

question

Comentario más útil

Hola @DavidFeller ,

Puede intentar calentar su caché de producción con el siguiente comando:
php app/console cache:warmup --env=prod --no-debug

La mayoría de las veces soluciona problemas de caché.

Saludos

Todos 15 comentarios

Hola @DavidFeller ,

Puede intentar calentar su caché de producción con el siguiente comando:
php app/console cache:warmup --env=prod --no-debug

La mayoría de las veces soluciona problemas de caché.

Saludos

Hola @momoss ,

¡gracias por la respuesta rápida! :)

Desafortunadamente, eso es lo que ya intenté varias veces. Parece funcionar (sin salida de error), pero __CG__PimBundleCatalogBundleEntityCategory.php aún falta después.
Además, verifiqué las asignaciones de entidades a través de php app/console doctrine:mapping:info .

Sé que esto es más un problema de doctrina o Symfony que realmente relacionado con akeneo, pero supongo que me falta un pequeño detalle en la configuración de AcmeCatalogBundle en términos de anular la BaseCategory.

¿O crees que es peor intentar degradar php a 5.6?

Hola @DavidFeller ,

Después de discutir con @ damien-carcel, me informó que faltaba algo en la documentación, lo actualizamos ayer.

¿Puedes registrar tu Category class , tal vez falta un método?

public function getTranslationFQCN() { return CategoryTranslation::class; }

Saludos

Hola @momoss ,

Ah, está bien, lo comprobaré. Pensé que este método solo era necesario para la segunda parte de los documentos (propiedades traducibles). Como solo agregué una casilla de verificación, "ignoré" esa parte. ;-)

Creo que intentaré empezar de nuevo y crear una propiedad traducible.

Gracias por tu ayuda y saludos,
David

Tengo el mismo problema con la última versión 2.0. Exactamente el mismo problema y he seguido los mismos documentos.

Y agregué el campo como traducible. Se agrega a la base de datos, pero aún no funciona en el entorno de producción.
Esto es lo que obtuve del servidor de producciones y se me ocurre el mismo error. "" Error de compilación: require (): Error al abrir requerido '/opt/bitnami/apps/akeneo/htdocs/var/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php'

Hola @Nebojsaa .

Lamento escuchar que este libro de cocina no funciona para usted. Acabo de probarlo completamente desde un pim-community-standard , funciona para mí, solo hay un error en el FormType con respecto al widget: la notación anterior ya no funciona con Symfony 3.4.

Puede ver mi código en esta solicitud de extracción https://github.com/damien-carcel/pim-community-standard/pull/1. El error del que hablo está en el último compromiso. Actualizaré la documentación lo antes posible.

No seguí completamente el libro de recetas: todo se coloca en AppBundle y todos los servicios y parámetros se declaran en services.yml . También agregué PHP 7.1 typehint. Pero esto no cambia la validez del libro de cocina (excepto por el problema del área de texto, por supuesto).

Intente comparar su código con el mío, probablemente olvidó una anulación de servicio / parámetro.

Además, no olvide que los ejemplos de código en el libro de cocina se pueden desplazar. Me perdí el setDescription método en el CategoryTranslation clase al principio.

Finalmente, no olvides borrar tu caché (eliminarlo por completo con rm -rf var/cache/* ), reiniciar FPM y solo luego actualizar tu esquema de Doctrine.

También puede tener problemas de caché si el demonio de cola de Akeneo (para las importaciones / exportaciones) se está ejecutando: evitará que se limpie su caché de APC y luego contaminará su caché de Symfony nuevamente. Si está utilizando el demonio de cola, el procedimiento correcto es:

  • Detén al demonio
  • rm -rf var/cache/*
  • reiniciar FPM
  • iniciar el demonio de nuevo
  • actualiza tu esquema de Doctrine

Por cierto, no publiques sobre temas cerrados, porque nadie suele responder / verlos. Solo vi tu comentario porque me etiquetaron en la conversación y recibí una notificación de GitHub al respecto. Prefiera abrir un nuevo número y vincular el original.

Déjame saber si esto te ayudó.

Saludos,
Damien

Hmmm, eso es extraño. Hice todo lo sugerido, pero no puedo hacer que funcione. También estoy tratando de agregar la categoría sin traducción. Entonces creo que esto no me molestó.

[2018-01-12 05:55:50] request.CRITICAL: Excepción PHP no detectada Symfony \ Component \ Debug \ Exception \ FatalErrorException: "Error de compilación: require (): Falló la apertura requerida '/ opt / bitnami / apps / akeneo / htdocs / var / cache / prod / doctrine / orm / Proxies / __ CG__PimBundleCatalogBundleEntityCategory.php '(include_path ='.: / opt / bitnami / php / lib / php ') "en / opt / bitnami / apps / akeneo / htdocs / vendor /doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php línea 209 {"excepción": "[objeto] (Symfony \ Component \ Debug \ Exception \ FatalErrorException (código: 0): Error de compilación: require (): Error al abrir requerido '/opt/bitnami/apps/akeneo/htdocs/var/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php' (include_path = '.: / Opt / bitnami / php / lib / php') en /opt/bitnami/apps/akeneo/htdocs/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php:209) "} []

Saludos,
Nebojsaa

pim_enrich.form.type.category.class es incorrecto, estás usando Acme lugar de tu paquete.

Todo lo demás está bien. Acabo de usar su paquete con un pim-community-standard 2.0, eliminé el enrutamiento (es inútil) y configuré la anulación de entidad en app/config/config.yml . Pude editar y guardar una categoría con sus nuevos campos sin ningún problema.
También necesitaba desactivar su validación en su campo, o no pude instalar los accesorios de icecat (usted valida que sus campos no pueden estar en blanco, pero no existen en mis accesorios 😉).

Entonces realmente creo que el problema proviene de su servidor. Y mirando el error en su publicación anterior, se ve claramente como un problema de caché de PHP. Es posible que se esté ejecutando algo en el servidor bitnami que impida que se borre la caché cuando reinicia FPM.

Saludos,
Damien.

Oye Damien,
Muy bien, nunca fui administrador de sistemas en mi vida. Ahora es el momento.

Quizás algunos consejos excepto los de arriba.
¿Sabe dónde puedo detener e iniciar el demonio y reiniciar fpm?
Estoy usando php 7.1.
¿Sabes qué comandos debo usar?

Para reiniciar FPM, dependerá de su servidor. ¿Qué distribución de Linux estás usando? La mayoría de ellos ahora usan systemd como init, por lo que debería poder reiniciar FPM ejecutando sudo systemctl restart php7.1-fpm (el nombre del proceso FPM puede cambiar de un sistema a otro).

La cola es un proceso php simple que puede iniciar manualmente o usando un supervisor. Puede encontrar instrucciones detalladas aquí: https://docs.akeneo.com/latest/install_pim/manual/daemon_queue.html.

Hmm, he tenido éxito mientras tanto.
Ahora muestra "¡Hola mundo!" - Mi index.html.twig predeterminado ??

Oh sí. Normal. Usas el comando generate:bundle , ¿verdad?
Debe eliminar la vista Default/index.html.twig , el controlador y el enrutamiento de su paquete (no olvide eliminarlo de app/config/routing.yml también). Son inútiles.
Entonces debería funcionar.

Siguiente error :-D
No, solo estoy bromeando ...
Muchas gracias.

buenos dias, saludos a todos. tengo un pequeño problema, estoy trabajando en un proyecto con Symfony 4, tengo la base de datos de mi proyecto en postgressql, instale dicho gestor, y estableci conexion con el con dicho framework, pero cuando trato de generar las entidades a partir de esa base de datos con el comando php bin/console doctrine:mapping:import "App\Entity" annotation --path=src/Entity , me da el siguiente error :

In ImportMappingDoctrineCommand.php line 151:

Warning: file_put_contents(src/Entity/"tsubtipoanestesia".php): failed to open stream: No such file or directory.

quisiera saber como solucionarlo.
gracias.

¿Fue útil esta página
0 / 5 - 0 calificaciones