如何避免 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'。当然,一旦你习惯了作曲,这就没什么大不了的了。
我正在处理一些文件转换 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'。当然,一旦你习惯了作曲,这就没什么大不了的了。