我正在尝试安装Coinbase PHP API,但它需要Composer:
https://github.com/coinbase/coinbase-php
我正在寻找一个通用的PHP解决方案(也许是一个函数),让我直接安装 composer 包到我的服务器上,而不必使用 composer 。
我正在尝试安装Coinbase PHP API,但它需要Composer:
https://github.com/coinbase/coinbase-php
我正在寻找一个通用的PHP解决方案(也许是一个函数),让我直接安装 composer 包到我的服务器上,而不必使用 composer 。
6条答案
按热度按时间hgqdbh6s1#
composer.json
file列出了依赖项。在您的示例中:然后您必须在packagist站点中找到相应的软件包。对每个依赖项重复相同的过程:在相应的
composer.json
文件中查找其他依赖项,然后再次搜索。当您最终拥有所需软件包的完整列表时,您只需要逐个安装它们。在大多数情况下,只需将文件放到项目目录中的某个位置即可。但是您还必须确保PHP可以找到所需的类。由于您没有使用Composer的自动加载程序,因此需要将它们添加到您自己的自定义自动加载程序中。您可以从相应的
composer.json
文件中找出信息,例如:如果你不使用类自动加载器,你就需要弄清楚每个
require_once
语句。您可能需要大量的尝试和错误,因为大多数库作者都不关心记录这些。另外,为了避免混淆:
Composer并不完美,它并不适合所有的用例,但是,当涉及到安装依赖于它的库时,它无疑是最好的选择,而且相当不错。
我已经检查了我后面的其他答案。它们主要分为两类:
1.安装一个库并用它编写一个自定义下载脚本
1.为Composer使用基于Web的在线界面
除非我错过了什么,他们都没有解决OP表达的抱怨:
3npbholx2#
我正在为一个网站使用共享主机,无法在那里执行命令。除了通过浏览器请求的php脚本请求运行composer之外,我通常使用以下工作流:
php composer.phar update
x1c 0d1x通过这种方式,您可以获得依赖项管理的好处,并且不必手动包含所有大量文件并手动下载所有依赖项,并且更新它们就像键入
php composer.phar update
然后将服务器上的供应商目录替换为新目录一样简单。lawou6xi3#
另一个对我有用的解决方案(因为php-download已经关闭)可以通过制作自己的小型本地 composer 下载器来完成。
1.下载并在本地安装XAMPP:https://www.apachefriends.org/index.html
1.下载并在本地安装composer:https://getcomposer.org/download/
1.打开commandprompt,导航到
c:\temp
,然后简单地键入composer dependency,例如:composer require league/oauth2-client
1.使用FTP程序将文件从
c:\temp
文件夹复制到Web主机1.把这个添加到你的php的顶部:
require("vendor/autoload.php");
f0brbegy4#
这不是最终的解决方案,但对我来说,这对大多数情况都有很大的帮助:https://github.com/Wilkins/composer-file-loader
允许您加载composer.json文件,就像composer一样。这允许你在没有composer的情况下加载composer.json文件(所以理论上PHP 5.2就足够了)
我知道这个问题已经很老了,但我希望它能帮助到一些人。
x6492ojm5#
我不得不这样做的FTP服务器,我没有SSH访问。这里列出的网站工作,然后我意识到你可以做一个 composer 安装在自己的服务器上(使用您的目标的PHP版本),然后复制所有的文件。
9rbhqvlz6#
分析问题
安装依赖项不使用Composer的问题在于自动加载系统。
Composer使用一个基于数组Map的自制自动加载器,这是一个 * 事实上的标准 *。但是这个自动加载系统,“幸运的是”,在这种情况下,是不符合PSR-4。
PSR-4是PHP中自动加载类的 *de-iure标准 *,所以你不能逃避自动加载。你必须使用其中一个。
解决方案
在这种情况下,只要您在源代码的早期需要自定义的
autoload.php
文件,就可以手动配置this brilliant PSR-4 autoloader,以便在代码中的任何地方自动加载VendorNamespace
中的VendorClass
。真实的例子
让我们看看这个例子:我有一个遗留项目,他不能也不会使用Composer,即使上帝允许奇迹发生。这个项目可以在这个梦幻般的package for command line scripts的发展速度。这是我的项目目录结构:
此软件包具有以下目录结构:
我唯一需要的是
src
文件夹。将此文件夹放在我的供应商文件夹中就可以了。所以我的自定义自动加载器应该是这样的:现在我可以在我的项目中的任何地方使用命令包!
优缺点
此解决方案允许您:
VendorNamespace
和在VendorNamespace
中搜索VendorClass
的文件夹。缺点:
A.class.php
文件名)