猿问

为PHP-C ++项目安装Composer

我已经在SO中阅读了几个有关如何在另一个“项目”中安装第三方库的问题。不可避免地,答案是使用它composer,并且所有人都说我们需要在项目根目录中包含composer.json文件。

我很困惑。我正在一个项目中,其“源”版本具有以下结构

web/
src/

web文件夹包含由项目实现的几个PHP文件。到目前为止该项目根本不使用作曲家。

src目录包含一些核心引擎文件的c / c ++文件。

现在,我需要以这种方式将php-jwt添加到该“项目”(这是一个PHP + C ++混合项目)中,以便可以将jwt库包含在其中的某个文件中web/views/myfile.php

我还具有以下附加要求:

  • 这个项目很大,包装规则也很复杂。最后,基本上会创建用户安装在他们的系统上的RPM或DEB文件。我想确保安装项目的用户jwt-php不需要安装作曲家,而该项目是其中的一部分。

鉴于此,我到底应该在哪里使用composer下载jwt库?里面web/


回首忆惘然
浏览 133回答 3
3回答

噜噜哒

如您所说,您的项目是一个多语言混合应用程序。我不建议您在项目的根目录中安装供应商的供应商目录。如果您的php主要存在于Web目录中,则可以在该web目录中安装供应商。目录结构如下:web/---vendor/------autoload.php------...---composer.json---composer.lock---...src/有关对已安装库的引用,可以使用include '../vendor/autoload.php'inweb/views/myfile.php加载作曲家自动注册脚本(或者您可以在统一的主条目脚本中引入自动加载功能)。然后通过名称空间调用第三方库:new Firebase\JWT\JWT();然后,将供应商提交给您的VCS,并将其打包到RPM或DEB中,这样您的客户就无需安装composer。谷歌翻译的答复编辑:将供应商目录放置在对Web服务器具有开放权限的目录中是危险的。请根据实际情况调整具体目录结构。顺便说一句,名为web的目录不一定具有Web服务器的打开权限。

交互式爱情

如果您不想使用作曲家,则只需下载该库并在您的代码中调用它即可。<?php&nbsp; require _DIR.'path-to-librayr';&nbsp; use class;
随时随地看视频慕课网APP
我要回答