使用作曲家时如何从供应商文件夹中调用一个类?

Posted

技术标签:

【中文标题】使用作曲家时如何从供应商文件夹中调用一个类?【英文标题】:How to call a class from vendor folder when using a composer? 【发布时间】:2021-12-16 06:12:47 【问题描述】:

我正在调查此链接中的 jwt 令牌示例 - https://github.com/firebase/php-jwt

所以我跑了:

composer require firebase/php-jwt

现在我的站点根目录中有新文件和文件夹:vendor、composer.json 和 composer.lock。文件夹“vendor”内容“firebase/php-jwt”文件夹。

所以我尝试在我的根站点文件夹(例如 test.php)中运行一个示例脚本,其中包含以下内容:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
use Firebase\JWT\JWT;

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

/**
 * IMPORTANT:
 * You must specify supported algorithms for your application. See
 * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40
 * for a list of spec-compliant algorithms.
 */
$jwt = JWT::encode($payload, $key);
$decoded = JWT::decode($jwt, $key, array('HS256'));

print_r($decoded);



$decoded_array = (array) $decoded;


JWT::$leeway = 60; // $leeway in seconds
$decoded = JWT::decode($jwt, $key, array('HS256'));
?>

当我运行它时,我看到了:

致命错误:未捕获的错误:未在中找到类“Firebase\JWT\JWT” /var/www/html/jwt/test.php:20 堆栈跟踪:#0 main 抛出 /var/www/html/jwt/test.php 第 20 行

那么我该如何使用 Firebase\JWT\JWT 类呢?

【问题讨论】:

【参考方案1】:

来自作曲家的Autoloading 页面:

"对于指定自动加载信息的库,Composer 会生成一个 vendor/autoload.php 文件。您可以包含该文件并开始使用这些库提供的类,而无需任何额外工作:"

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

【讨论】:

是的,伙计,这很容易......非常感谢,现在可以了)

以上是关于使用作曲家时如何从供应商文件夹中调用一个类?的主要内容,如果未能解决你的问题,请参考以下文章

安装作曲家后我没有供应商文件夹?

在 Laravel 中安全地编辑第三方作曲家(供应商)包并防止在发布新版本的包时丢失自定义更改

如何防止在“作曲家更新”命令时覆盖文件

我应该用 GIT 运送我的作曲家供应商目录吗

当供应商在 Symfony 2.1 中不受作曲家管理时,在哪里注册自动加载?

作曲家自动加载在生产服务器上不起作用