Estrategia de carga automática ZF2 para desarrollo y producción con git / composer

Estoy usando Zend Framework 2 y comencé con ZendSkeletonApplication. Localmente trabajo con compositor y usa el vendor/autoload.php para carga automática. El problema es que el vendor/autoload.php y el vendor/composer no están incluidos en git. (gitignore)

Entonces mis preguntas son:

  • ¿Tengo que editar el init_autoloader.php que se envía con ZendSkeletonApplication?
  • ¿Cuál es la mejor práctica para manejar compositor, git y carga automática en desarrollo y producción?
  • ¿Debo usar un map de class grande para la carga automática en producción?
  • ¿Composer nunca se usa en el entorno de producción?

Por cierto, trabajo con un server Zend donde la biblioteca ZF2 está preinstalada y tengo un package privado en la carpeta del vendor que no está en packagist.

Composer debe administrar todas las dependencies de la aplicación dentro del vendor/ . Incluso si ya tiene una copy de ZF2 en el server, debe dejar que el compositor lo haga e instalar una copy específica de la aplicación. Además de mantener todas las dependencies en un solo lugar, esto significa que puede tener fácilmente aplicaciones en el mismo server utilizando diferentes versiones de ZF2, y actualizar / degradar fácilmente a medida que lo necesite.

Composer puede instalar packages que no figuran en packagist, ya sea directamente desde el control de origen o desde files zip / gzip, y así sucesivamente. Así que deje que se ocupe de su package privado también.

Debería poder eliminar completamente su vendor/ carpeta y luego restaurarlo de nuevo simplemente ejecutando la composer install . Si todavía no estás en esa position, te sugiero que intentes llegar, te hará la vida más fácil.

Respondiendo a sus preguntas específicas:

¿Tengo que editar el init_autoloader.php que se envía con ZendSkeletonApplication?

No.

¿Cuál es la mejor práctica para manejar compositor, git y carga automática en desarrollo y producción?

La aplicación esqueleto usa las mejores prácticas:

  • vendor/ debe ser excluido del control de fuente
  • composer.json y composer.lock deberían estar ambos en control de fuente

¿Debo usar un map de class grande para la carga automática en producción?

Los maps de class siempre proporcionan un aumento de performance sobre el autocargador estándar. La diferencia que esto hace depende de tu aplicación.

¿Composer nunca se usa en el entorno de producción?

El autocargador del compositor es, sí. Personalmente, tengo la composer install como parte de mi process de implementación automatizada para rellenar el vendor/ carpeta cuando deployment una nueva versión.

están en gitignore porque tienes que download el compositor del lado del server y empujar composer.json para instalar los packages necesarios

    Intereting Posts