我正在try 安装Coinbase PHP API,但它需要Composer:

https://github.com/coinbase/coinbase-php

我正在寻找一个通用的PHP解决方案(也许是一个函数),让我可以直接在服务器上安装composer软件包,而不必使用composer.

我认为Composer的开发者认为他们是在帮助人们,但实际上有成千上万的初学者被"Composer屏障"拒之门外.

如果有一个灵活的解决方案或某种方法,我们可以在不使用Composer的情况下进行安装,这真的会很有帮助吗?我该怎么做?

Please don't respond with some sarcastic comment美元.有些人不想使用Composer,我不明白为什么我们要被赶到特定的第三方软件中go 做Web开发.

推荐答案

composer.json file列出了依赖项.在你的例子中:

"require": {
    "php": ">=5.5.0",
    "guzzlehttp/guzzle": "^6.0",
    "psr/http-message": "^1.0",
    "psr/log": "^1.0"
},

然后,您必须在packagist站点中找到相应的包.对每个依赖项重复相同的过程:在相应的composer.json个文件中找到其他依赖项,然后再次搜索.

当您最终有了所需软件包的完整列表时,您只需要逐个安装它们.在大多数情况下,只需将文件放到项目目录中的某个位置即可.但是您还必须确保PHP可以找到所需的类.由于您没有使用Composer的自动加载器,因此需要将它们添加到您自己的自定义自动加载器中.您可以从相应的composer.json个文件中找出信息,例如:

"autoload": {
    "psr-4": { "Coinbase\\Wallet\\": "src/" }
},

如果不使用类自动加载器,则需要计算出单独的require_once条语句.您可能需要大量的试验和错误,因为大多数库作者不会在意记录这些内容.

此外,为了防止对此产生混淆:

  • Composer有一个针对Windows的官方GUI安装程序和一个针对所有平台的copy and paste命令行安装程序.
  • Composer可以在本地运行,其输出可以上传到其他地方.共享主机中不需要SSH.
  • 可以从软件包网站复制和粘贴安装库所需的命令-即使软件包维护人员并不关心记录它,默认情况下,Packagist.org会生成它.

Composer并不完美,也不适合所有用例,但是,当涉及到安装依赖于它的库时,它无疑是最好的 Select ,而且是一个相当不错的 Select .


我判断了我的答案之后的其他答案.它们主要分为两类:

  1. 安装库并使用它编写自定义下载脚本
  2. 为Composer使用基于web的在线界面

除非我遗漏了什么,否则他们都不会回应OP所表达的抱怨:

  • 学习曲线
  • 使用第三方软件
  • 在服务器上开发的可能性(我想是使用SSH)
  • 潜在深度依赖树

Php相关问答推荐

仅显示特定WooCommerce产品类别的额外产品字段

在AJX请求中使用简写后,FormData出现非法调用错误

基于验证动态更改输入字段类(名称密码)&

按制造商、型号和年份范围判断数据的存在性

自定义WooCommerce查询字符串仅显示前3个产品

累加平面数组中数字子集的所有组合,以生成组合及其乘积的二维数组

多行PHP属性声明中是否允许单行注释

在WooCommerce获取所有具有全球产品属性品牌的简单产品

返回WooCommerce中的所有已启用变体

Laravel服务Provider 没有向服务类注入价值

使用HPOS过滤WooCommerce中的订单列表

如果WooCommerce购物车在 checkout 时被清空,请重定向至store 页面

扩展 WooCommerce 类触发未捕获错误:未找到WC_Coupon类

WooCommerce 以编程方式添加的费用不会持续存在

订单完成后创建 WooCommerce 促销代码

Laravel路由中的符号在slug中会创建额外的斜杠

从图像URL中获取文件扩展名?

如何在 Laravel 中修改嵌套数组的键?

如何在构建 PHP 类别数组树的递归函数中将父面包屑传递给子项?

为 WordPress 页面创建新功能