如何避免 php 包的作曲家?

how to Avoid composer for php packages?

我正在处理一些文件转换 docx to pdf 的项目,我使用没有 ssh 连接的共享主机服务器,唯一可用的选项是 Ftp

那么有没有选项可以在不使用 composer 的情况下将包提取为库,例如 phpword,它是可移植的并且基本上可以复制到服务器文件夹中,但是转换器包仅适用于 composer . 我试图从包中提取所需的文件,但似乎它们是核心需求 autoloader.php,我看到的唯一选择是修改源文件以供便携使用。

如果可能的话,是否有选项可以让操作更简单?

我是 composer 的新手,这让我很难理解便携式提取包的可能性。

有什么建议吗? 谢谢!

您可以在您的计算机上执行 composer install,然后将所有文件复制到服务器。 vendor 文件夹包含所有作曲家依赖项。

请注意 Composer 不是库安装程序。它不应该 运行 在生产服务器上,因为每个人都在等待站点在更新后恢复。

我认为只提供 FTP 访问权限的托管公司可能不应该得到你的钱(出于安全原因,你的密码以明文形式传输,供所有人阅读),但当说到 Composer,你不需要在服务器上使用 SSH,只需要在你的本地机器上。

确保您在本地和远程 运行 使用相同的 PHP 版本,否则您将安装无法与远程 PHP 版本一起使用的库。

作曲家依赖

是的,我 运行 也遇到了这个 'composer' 问题。出于各种原因,许多开发人员似乎喜欢它,但是,如果您想尝试一个小包,或者您只有 FTP 访问权限,它只会引入另一个依赖项。对于大型框架我可以理解这一点,但是对于一小段代码,类,这没有意义。

例子:我想输出一个ODS格式的Excel文件,找到一段相对简单的代码来实现:

https://github.com/Lapinator/odsPhpGenerator

不幸的是,最新版本取决于作曲家。没有提供其他使用代码的方法。开发人员可能认为这是一个优势?好吧,我不知道。那么该怎么办?被迫沿着作曲家的道路前进,还是对代码进行一些修改?

后者可能比您想象的要简单得多。我们只需要 autoload.php 文件的内容。该文件可能会告诉 PHP 使用 SPL 函数在哪里可以找到包的 类。你可以尝试编写自己的自动加载器,但我的包需要它的所有 php 文件,所以我简单地写了这个:

require_once('../src/ods.php');
require_once('../src/odsDraw.php');
require_once('../src/odsFontFace.php');
require_once('../src/odsStyle.php');
require_once('../src/odsTable.php');
require_once('../src/odsTableCell.php');
require_once('../src/odsTableColumn.php');
require_once('../src/odsTableRow.php');

将其作为 autoload.php 添加到包中后,无需使用 composer 即可运行。

在我看来,开发人员应该提供一种方法来试用这么小的包,而无需经过编写程序。他们可能不这样做是因为他们想做事 'the right way'。当然,一旦你习惯了作曲,这就没什么大不了的了。