PHP-C 项目的作曲家安装



我已经阅读了几个问题,因此如何在另一个"项目"中安装第三方库。不可避免地,答案是使用composer,他们都说我们需要一个composer.json文件。

我很困惑。我正在从事一个项目,其"来源"构建具有以下结构

web/
src/

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

src目录包含某些核心引擎文件的C/C 文件。

我现在需要,例如,例如,我可以将php-jwt添加到此"项目"(这是一个混合php c 项目(中,我可以将JWT库包含在web/views/myfile.php

中的某些文件中。

我也有以下其他要求:

  • 该项目非常大,其包装规则非常复杂。最后,创建了用户在其系统上安装的RPM或DEB文件。我想确保安装该项目的用户,其中jwt-php是不需要安装作曲家的一部分。

鉴于这一点,我到底在哪里使用作曲家下载JWT库?内部web/

也许,我们只是在这两个目录旁边添加一个composer.json

- web/
- src/
- vendor/---------
composer.json    -
composer.lock    -
                 ------ autoload.php
                 ------ composer
                 ------ jwt-php
                 ------ other-php-cpp-package-1
                 ------ other-php-cpp-package-2
                 ------ other-php-cpp-package-3
                 ------ other-php-cpp-package-4
                 -------

然后,我们的composer.json看起来像:

{
    "name": "project/cphp",
    "type": "library",
    "description": "PHP C++ Project X",
    "keywords": ["php","c++"],
    "copyright": "",
    "license": "",
    "version": "1.0.0",
    "authors": [{
        "name": "user1361529",
        "role": "Developer"
    }],
    "require": {
        "jwt-php": "*",
    },
    "require-dev": {},
    "autoload": {
        "classmap": [],
        "psr-0": {},
        "psr-4": {}
    },
    "config": {}
}

例如,如果我们使用的是macos,我们将安装作曲家:

cd path/to/main/dir
sudo composer install

我们以后可以随时更改目录。最初可能不是那么重要。

正如您所说,您的项目是多语言混合应用程序。

我不建议您将供应商的供应商目录安装在项目的根目录中。如果您的PHP主要存在于Web目录中,则可以在web目录中安装供应商。目录结构如下:

web/
---vendor/
------autoload.php
------...
---composer.json
---composer.lock
---...
src/

对于已安装的库的引用,您可以使用web/views/myfile.php中的include '../vendor/autoload.php'加载COPOSER自动注册脚本(或者您可以在统一的主条目脚本中引入自动加载(。然后通过命名空间致电第三方库:new FirebaseJWTJWT();

然后,将供应商提交给您的VCS并将其包装到RPM或DEB中,以便您的客户不需要安装Composer。

Google Translate的答案

编辑:将供应商目录放入并在Web服务器上打开权限的目录是危险的。请根据实际情况调整特定目录结构。顺便说一句,名称Web的目录不一定是Web服务器的开放许可。

如果您不想使用作曲家,则可以下载库并在代码中调用它。

<?php
  require _DIR.'path-to-librayr';
  use class;

相关内容

  • 没有找到相关文章

最新更新