PHP, GIT, location de componentes reutilizables

Gracias por su atención, esta es una cuestión de organización, trabajo con PHP y GIT para el control de versiones. Utilizo Netbeans IDE para progtwigr, GIT integrado (aunque todavía soy novato).

Normalmente, sigo el enfoque que Symfony2 especifica para organizar los files del proyecto, pero utilizo mi propio marco para mis proyectos. La pregunta (principal) es: ¿ cualquier componente o parte de código que tenga su propio control de versión debe ubicarse en el directory /vendor/ ?

Por ejemplo: tengo mis files de proyecto en src\Acme\ProjectX\ , también el package de utilidades que usa todos mis proyectos: src\Acme\Util\ , y también está bajo el control de versiones (GIT).

y ahora recordemos el esqueleto básico de un proyecto basado en Symfony o similar:

 /app (application related elements) /src (source code of the project) /vendor (third party libraries) /web (front end controller, the web directory, assets resources etc...) 

Entonces, ¿debe ser 'Acme \ Util' incluido en el directory del proveedor? Y, ¿es necesario usar compositor para declarar las dependencies?

Además, el package de utilidades tiene muchas classs, pero solo unas pocas se usan en proyectos. ¿Debo eliminar los que el proyecto no usa?

Resumiendo, sería bueno que alguien pueda aportar su conocimiento para ayudarme a representar un escenario como este.

Espero poder explicar … ¡Gracias de antemano!

Directorio de proveedores

Es una buena práctica separar las dependencies externas y el código de la aplicación. Si está utilizando Composer puede cambiarlo a otra cosa .

Clases no utilizadas

Las classs no utilizadas no deberían importar si no se están cargando. Simplemente tomarán un poco de espacio extra en el disco.

Puede ser una buena idea separar el package de utilidades en varios packages si se encuentra con frecuencia utilizando solo una pequeña parte de él.

Gerentes de dependencia

No es necesario usar un administrador de dependencies, pero sí ayuda. Tener que instalar, configurar y mantener todo de forma manual (especialmente con muchas dependencies y subdependencies) sería un horror.