2016-12-07 41 views
0

我正在使用文件转换docx to pdf的一些项目,我使用共享主机服务器没有ssh连接,只能使用选项是Ftp如何避免作曲家的PHP软件包?

因此,是否有任何选项可以将包提取为库而不使用作曲者,如phpword,它的便携性可以基本复制到服务器文件夹中,但转换器包仅适用于composer。 我试图从包中提取需要的文件,但似乎他们在核心需要autoloader.php,只有我看到的选项只是修改源文件的便携式使用。

有没有选择如何做到这一点更容易,如果这是可行的?

我与composer这是新的,这使我很难理解可移植使用提取包的可能性。

有什么建议吗? 谢谢!

回答

3

作曲家依赖

是的,我就遇到了这个“作曲家”的问题,以及。许多开发人员似乎都喜欢它,因为各种原因,但是,如果您想尝试一个小软件包,或者您只有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到封装,它的工作,而无需使用作曲家。

在我看来,开发人员应该提供一种方法来尝试这样一个小包,而无需通过作曲家过程。他们可能不这样做,因为他们想以正确的方式做事。当然,一旦你习惯了作曲家,这没什么大不了的。

+0

我最近写了我自己的autoload.php文件,这是使包工作没有使用作曲家。谢谢你的回答。 – Ingus

0

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

+0

因此我尝试安装与作曲家的所有软件包,我有类的问题,他们无法找到,因为我包括类路径它说我有dublicate。作曲家或包装本身有问题吗? – Ingus

+0

您应该删除供应商文件夹,然后执行'composer install'并在代码中需要'vendor/autoload.php'。 –

0

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

我认为只提供FTP访问的托管公司可能不应该得到您的钱(由于安全原因,您的密码以明文形式传输,供大家阅读),但是对于Composer而言,您不需要服务器上的SSH,只需要在本地计算机上。

确保您在本地和远程运行相同的PHP版本,否则您将安装不能用于远程PHP版本的库。

+0

这是大学项目的工作,所以是啊,我不想花钱在服务器上,这是使用了几个月... – Ingus

相关问题