crear - ¿Cómo instalo los paquetes PHP de Composer sin Composer?
packagist (5)
Estoy tratando de instalar la API de PHP de Coinbase pero requiere Composer:
https://github.com/coinbase/coinbase-php
Estoy buscando una solución PHP universal (quizás una función) que me permita instalar paquetes de Composer directamente en mi servidor, sin tener que usar Composer.
Creo que los desarrolladores de Composer creen que están ayudando a las personas, pero en realidad hay miles de desarrolladores principiantes que se ven bloqueados por el aprendizaje de desarrollo web por la ''barrera Composer''.
¿Realmente ayudaría si hubiera una solución flexible o algún enfoque en el que pudiéramos instalar sin Composer? ¿Cómo puedo hacer esto?
Por favor no responda con algún comentario sarcástico . Hay personas que no quieren usar Composer y no entiendo por qué deberíamos ser conducidos a un software de terceros específico para realizar el desarrollo web.
El
archivo
composer.json
enumera las dependencias.
En tu ejemplo:
"require": {
"php": ">=5.5.0",
"guzzlehttp/guzzle": "^6.0",
"psr/http-message": "^1.0",
"psr/log": "^1.0"
},
Luego debe encontrar los paquetes correspondientes en el sitio de
packagist
.
Repita el mismo proceso para cada dependencia: encuentre dependencias adicionales en sus correspondientes archivos
composer.json
y busque nuevamente.
Cuando finalmente tenga una lista completa de los paquetes requeridos, solo necesita instalarlos uno por uno.
En su mayor parte, solo es cuestión de soltar los archivos en algún lugar del directorio de su proyecto.
Pero también debe asegurarse de que PHP pueda encontrar las clases necesarias.
Como no está utilizando el cargador automático de Composer, debe agregarlos a su propio cargador automático personalizado.
Puede averiguar la información de los respectivos archivos
composer.json
, por ejemplo:
"autoload": {
"psr-4": { "Coinbase//Wallet//": "src/" }
},
Si no utiliza un cargador automático de clase, deberá averiguar las instrucciones individuales
require_once
.
Probablemente necesitará mucha prueba y error porque a la mayoría de los autores de bibliotecas no les importará documentar eso.
Además, y en caso de que haya confusión sobre esto:
- Composer tiene un instalador oficial de GUI para Windows y un procedimiento de instalación de línea de comandos para copiar y pegar para todas las plataformas.
- Composer se puede ejecutar localmente y su salida se carga en otro lugar. No necesita SSH en su alojamiento compartido.
- El comando necesario para instalar una biblioteca se puede copiar y pegar desde el sitio web del paquete; incluso si el responsable del paquete no se preocupó de documentarlo, packagist.org lo genera de manera predeterminada.
Composer no es perfecto y no se adapta a todos los casos de uso, pero, cuando se trata de instalar una biblioteca que depende de él, es sin duda la mejor alternativa y es bastante decente.
He verificado otras respuestas que vinieron después de la mía. En su mayoría se dividen en dos categorías:
- Instale una biblioteca y escriba un script de descarga personalizado con ella
- Utilice una interfaz en línea basada en la web para Composer
A menos que me falte algo, ninguno de ellos aborda las quejas expresadas por el OP:
- Curva de aprendizaje
- Uso de software de terceros.
- Posibilidad de desarrollar directamente en el servidor (usando SSH, supongo)
- Árbol de dependencia potencialmente profundo
Esta no es la solución definitiva, pero para mí fue de gran ayuda para la mayoría de los casos: https://github.com/Wilkins/composer-file-loader
Le permite cargar el archivo composer.json tal como lo haría el compositor. Esto le permite cargar el archivo composer.json sin composer (por lo que teóricamente PHP 5.2 es suficiente)
Sé que la pregunta es antigua, pero espero que ayude a alguien.
Estoy usando alojamiento compartido para un sitio web y no puedo ejecutar comandos allí. Además de ejecutar Composer a través de la solicitud de script php que solicito a través del navegador, generalmente uso este flujo de trabajo:
- Asegúrese de tener php instalado localmente.
- Hacer directorio en el escritorio.
- descargue composer.phar desde https://getcomposer.org/download/ (bajo el encabezado * Descarga manual ) y colóquelo en el directorio.
-
hacer un archivo composer.json pegar en él los siguientes contenidos
{ "require": { "coinbase/coinbase": "~2.0" } }
-
Navegue hasta el directorio con el shell de su elección (bash, git-bash, cmd, windows bash)
-
escriba
php composer.phar update
- Cargue el directorio de proveedores en su servidor web a través de ftp o cualquier mecanismo que utilice.
-
incluir en su proyecto php donde carga sus bibliotecas (modifique la ruta donde cargó el directorio del proveedor para que incluya ese archivo de carga automática)
require_once(''vendor/autoload.php'');
De esta manera, obtiene el beneficio de la administración de dependencias y no tiene que incluir manualmente todos los miles de millones de archivos y descargar todas las dependencias manualmente, y actualizarlas es tan fácil como escribir
php composer.phar update
y luego reemplazar el directorio del proveedor en su servidor con el nuevo.
Puede probar
https://php-download.com/
que puede ayudarlo a descargar todas las dependencias la mayor parte del tiempo junto con la carpeta del
vendor
.
Promete compositor no requerido.
Lo intenté yo mismo.
Encuentra y crea todas las carpetas necesarias y las comprime para descargarlas.
Funciona perfectamente !!
Tenía que hacer esto para un servidor FTP al que no tenía acceso SSH. El sitio enumerado aquí funcionó, luego me di cuenta de que puedes hacer una instalación de compositor en tu propio servidor (usando la versión PHP de tu objetivo), y luego copiar todos los archivos.