php - 找不到类 Firebase\JWT\JWT

标签 php composer-php autoloader

我想使用纯 firebase/php-jwt我的代码中的库。首先,我转到 /var/www/html/,就像官方图书馆页面建议的那样,我这样做

composer require firebase/php-jwt

运行此命令后,我看到在 /var/www/html/ 中创建了一个新的 vendor 文件夹,其中包含许多文件和子文件夹。然后,我在 /var/www/html/ 中创建我的 token.php 文件,其内容与官方页面中的内容类似:

<?php
use \Firebase\JWT\JWT;

$key = "example_key";
$token = array(
    "iss" => "http://example.org",
    "aud" => "http://example.com",
    "iat" => 1356999524,
    "nbf" => 1357000000
);

$jwt = JWT::encode($token, $key);
$decoded = JWT::decode($jwt, $key, array('HS256'));

print_r($decoded);

但是,当我转到 localhost/token.php 时,我收到此错误消息:

Fatal error: Uncaught Error: Class 'Firebase\JWT\JWT' not found in /var/www/html/token.php:12 Stack trace: #0 {main} thrown in /var/www/html/token.php on line 12

我不确定这是否重要,但我的 PHP 版本是 7.0。

最佳答案

根据 documentation ,您需要包括自动加载器。

例如,在您的 php 文件中:

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

但是...通常您的 vendor 文件夹与您的 html 文件夹(您提供内容的文件夹)处于同一级别 ).

例如:

- Project root
--- vendor
--- html
----- index.php

然后在你的 index.php 中你会做:

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

很高兴您尝试使用 composer 和模块,但如果我是您,我会尝试阅读一些关于 php 的 autoloading features 的内容,这样您就可以了解正在发生的事情,以及如何从中获利。

关于php - 找不到类 Firebase\JWT\JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41795034/

相关文章:

php - 如何在index.php文件中使用config()函数?

PHP:将依赖项打包在一个文件中

低于 5.6 版的 PHP cafile

php - PSR-0 自动加载器 : Namespaces and the directory structure

php - 自动加载功能

powershell - 模块自动加载是否意味着可靠?

php - 在具有空格的PHP中通过URL从数据库传递值

php - SQL 未选择所有行

php - COMPOSER : choose the command line php you want to use. 那里什么都没有

php - 如何从字符串中去除特定标签和特定属性?