【问题标题】:Composer - CANNOT get package to work/load作曲家 - 无法让包工作/加载
【发布时间】:2018-10-27 14:20:37
【问题描述】:

因此,查看在线文档和用户 cmets,Composer 似乎是一个很棒的工具,我之前使用过 npm,所以我可以想象它使用起来会非常方便。只有一个问题,无论我尝试什么,我都无法让使用 Composer 安装的软件包正常工作。

我正在尝试安装 Lcobucci 的 JWT 软件包。我有一个想要添加的现有项目,但现有项目的设置方式是我在根目录中有一个 functions.php 文件,然后我的项目中的所有其他 php 脚本都包含该文件。函数文件包含数据库插件、数据库连接、包含等。

我直接使用 Composer 安装包

composer require lcobucci/jwt

我也尝试通过创建 JSON 文件并运行来安装它

composer install

就像它在文档中所说的那样。

然后我尝试在我的 include 中包含 autoload.php 文件

require __DIR__. "/vendor/autoload.php";

然后我添加了

use Lcobucci\JWT\Parser; //JWT Parser Class

但是当我尝试使用它时它一直抱怨该类不存在。

然后我尝试在 composer 包的 src 文件夹中的所有实际 PHP 文件上手动使用 require_once。依然没有。我尝试切换东西.. 尝试查看 PHP 使用了哪些文件

get_included_files();

我也试过了

composer dumpautoload

但我得到的只是

Generating autoload files

我似乎遗漏了一些东西,这就是为什么我在发布这个问题时犹豫不决,但我现在已经花了几个小时来解决这个问题,这令人沮丧。有什么我错过的吗?

如果有帮助,我正在使用 PHP 5.6.25 和 1.6.5 的 Windows 10 64 位运行 WAMP 服务器。

编辑: 我刚刚意识到如果我公开我的文件结构可能会有所帮助。 根 |-functions.php |-注册 |-index.php |供应商 |-autoload.php |-作曲家 |-科布奇 |-src

我正在尝试从 register 文件夹中的 index.php 文件访问 JWT 库,该文件包含 functions.php 文件。函数的工作原理如上所述。

【问题讨论】:

  • 我刚刚也尝试过使用 firebase/php-jwt 包,但我无法让它工作,所以我一定错过了一些愚蠢的东西。
  • 你能展示一下你是如何使用这个类的吗?
  • 使用 JWT 库是 $token = (new Parser())->parse((string) $token); // 从字符串中解析
  • 我也尝试过使用 Monolog/Monolog 和 $log = new Logger();同样包括我上面描述的过程。 @rob006

标签: include composer-php jwt require autoload


【解决方案1】:

所以我通过将use 语句放入 index.php 文件(即包含 functions.php 文件而不是包含在所包含的 functions.php 文件中的那个)解决了这个问题

原来命名空间/类的使用没有延续。或者我不完全确定,但如果我得到更多信息,我会更新这个答案。

【讨论】:

    猜你喜欢
    • 2016-08-13
    • 2018-09-29
    • 2022-07-06
    • 2013-05-26
    • 2023-03-03
    • 2020-12-27
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多