找不到类Firebase \ JWT \ JWT

I want to use pure firebase/php-jwt library in my code. Firstly, I go to /var/www/html/ and like the official library page is suggesting, I do this

composer require firebase/php-jwt

After I run this command, I see that a new vendor folder is created inside /var/www/html/ with a lot of files and subfolders. I then create my token.php file right in /var/www/html/ with contents similar to that from the official page:

<?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);

However, when I go to localhost/token.php, I get this error message:

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

I'm not sure if it matters, but my PHP version is 7.0.

php
douliang2167
douliang2167 伙计们,你很聪明!:)
接近 4 年之前 回复
ds34222222
ds34222222 乳清:)是的应该
接近 4 年之前 回复
drsh30452
drsh30452 所以,如果我使用require__DIR__。'/vendor/autoload.php';,会有效吗?
接近 4 年之前 回复
douwu7168
douwu7168 基本上,你正在加载作曲家的自动加载器。但是您的项目结构也需要照顾。
接近 4 年之前 回复
dongyi9023
dongyi9023 这是什么意思?为什么官方收据不起作用?
接近 4 年之前 回复
dsdapobp26141
dsdapobp26141 codementor.io/php/tutorial/...
接近 4 年之前 回复
dongyihao1099
dongyihao1099 getcomposer.org/doc/01-basic-usage.md
接近 4 年之前 回复

3个回答



根据文档,您需要包含自动加载器。</ p>

例如,在您的php文件中:</ p>

 要求__DIR__。  '/vendor/autoload.php'; 
</ code> </ pre>

但是......通常你的 vendor </ code>文件夹在同一级别 </ strong>比您的 html </ code>文件夹(您提供内容的文件夹)。</ p>

例如:</ p>

 <  code>  - 项目root 
--- vendor
--- html
----- index.php
</ code> </ pre>

然后在index.php中 你会这样做:</ p>

 需要__DIR__。  '../vendor/autoload.php';

nn

你试图使用作曲家和模块很好,但如果我是你,我会尝试 请阅读有关php的自动加载功能的内容,以便了解正在发生的事情 ,以及如何从中获利。</ p>
</ div>

展开原文

原文

As per the documentation, you need to include the autoloader.

E.g., in your php file:

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

But... typically your vendor folder would be at the same level than your html folder (the one where you are serving content).

E.g.:

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

Then in your index.php you'd do:

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

It is nice that you trying to use composer and modules, but if I were you I'd try to read on a bit about php's autoloading features, so you understand what's going on, and how you can profit from them.

douzhang8144
douzhang8144 在我的情况下,您不需要使用use \ Firebase \ JWT \ JWT; 如果您使用require DIR。 '/vendor/autoload.php';
2 年多之前 回复



取决于你是否使用作曲家,

如果不使用作曲家尝试删除使用部分:</ p> \ n

 名称空间Firebase \ JWT; 
use \ DomainException;
use \ InvalidArgumentException;
use \ UnexpectedValueException;
use \ DateTime;
</ code> </ pre>

如果您使用的是作曲家,请确保您的自动加载器已加载</ p>
</ div>

展开原文

原文

depends whether you are using composer or not, in case of not using composer try to remove the use part:

namespace Firebase\JWT;
use \DomainException;
use \InvalidArgumentException;
use \UnexpectedValueException;
use \DateTime;

and if you are using composer make sure your autoloader if loaded

If not using composer for maintaining the structure. just remove

namespace Firebase\JWT;
use \DomainException;
use \InvalidArgumentException;
use \UnexpectedValueException;
use \DateTime;

* 
* JSON Web Token implementation, based on this spec:
* https://tools.ietf.org/html/rfc7519
 *
* PHP version 5
*
* @category Authentication
* @package  Authentication_JWT
* @author   Neuman Vong <neuman@twilio.com>
* @author   Anant Narayanan <anant@php.net>
* @license  http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
* @link     https://github.com/firebase/php-jwt

form your JWT.php file. It works fine for me know.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐