En ocasiones la solución acarrea más problemas que beneficios. Esto es lo que me ocurre con Composer. Este gestor de paquetes, similar al NPM, pero para PHP, se supone que nos ayuda en el mantenimiento de las librerías que necesitemos en nuestro entorno de desarrollo PHP. Se supone porque como no tengas instalado el Composer o el hosting donde esté tu aplicación no te lo permita instalar, estamos jodidos.
En este post voy a explicar dos alternativas para poder hacer uso de la instalación de librerías sin utilizar el software Composer.
Opción 1 – PHP-Download.com
Es la opción más sencilla y rápida. Lo que permite este sitio es descargarte la librería sin las dependencias y ficheros que utiliza Composer. O sea, es una descarga libre de Comporser (Free Composer).
Este sitio te permite descargar también las dependencias que tenga la librería que te interese. Realmente, para que veas cómo son las cosas, este sitio utiliza internamente Composer, pero a ti no te hace pasar por este mal trago y te devuelve un ZIP con todo listo para que lo instales.
Opción 2 – A pelo
Esta es la opción más rudimentaria y la que te hará valorar la opción 1 jeje. Cuando encuentras un librería que quieres utilizar, lo más común es que lo descargues de un repositorio tipo Github. El paquete que te descargues contiene un fichero llamado composer.json y en cuyo contenido puedes visualizar las dependencias que tu librería necesita. Algo del estilo siguiente:
"require": {
"php": ">=5.4",
"ext-bcmath": "", "ext-date": "",
"ext-gd": "", "ext-pcre": "",
"tecnickcom/tc-lib-color": "^1.12.15"
}
Esto es lo que haría Composer por ti, localizar estas dependencias e instalarlas por ti, pero como estamos evitando al gestor, pues debemos hacerlo, también, a mano. Ojo, lo mismo es lo mismo, analizar el composer.json de cada dependencia y ejecutar lo mismo que con la librería. Es un proceso recursivo.
Ya que estamos tratando de evitar el autoloader de Composer, tendremos que añadir estos archivos a nuestro propio autoloader personalizado. Los archivos individuales de composer.json pueden ayudarte a averiguar la información del autoloader.
"autoload": {
"psr-4": {
"Com\Tecnick\Barcode\": "src"}
}
Si no quieres usar un class autoloader, tendrás que calcular tú mismo las declaraciones individuales de require_once. Esto puede no ser fácil (puede implicar algún ensayo y error) porque los creadores de la biblioteca casi nunca se molestan en documentar esa información.