我创建了一个用psr-4自动加载的类。在这个类中,我想使用一些库中的类,这些库是我用composer下载的,问题是我似乎无法理解。类别:
<?php
namespace CusTelegramCusCommand;
use TelegramBotActions;
use TelegramBotCommandsCommand;
class NewEpisodeCommand extends Command
{
public function handle($arguments)
{
...
$dotenv = new DotenvDotenv(__DIR__ . "/../..");
$this->replyWithMessage(['text' => __DIR__ . "/../.."]);
$dotenv->overload();
$client = new ApiVideoClientClient($_ENV["API_EMAIL"], $_ENV["API_KEY"]);
...
}
方法句柄是从telegram webhook调用的,所以我不知道如何取消它,但我100%确信当Dotenv试图初始化时它会崩溃。树状视图:
/CusTelegram
/CusCommand
/NewEpisodeCommand.php (this class)
/bot
/bot.php
/vendor
...
在bot php中,我已经需要自动加载。这个类没有问题,只是我不能在NewEpisodeCommand类中使用DotEnv和ApiVideo。Bot.php:
ini_set('memory_limit', '-1');
require_once '../vendor/autoload.php';
use TelegramBotApi;
$telegram = new Api(<token>);
$commands = [CusTelegramCusCommandStartCommand::class, CusTelegramCusCommandNewEpisodeCommand::class, TelegramBotCommandsHelpCommand::class ];
$telegram->addCommands($commands);
$update = $telegram->commandsHandler(true);
--EDIT-我能够打印错误,这就是我得到的:
Fatal error: Uncaught Error: Class 'CusTelegramCusCommandDotenvDotenv' not found in /membri/streamapi/CusTelegram/CusCommand/NewEpisodeCommand.php
我能够修复我只需要插入使用路径的错误,比如:
use DotenvDotenv;
use ApiVideoClientClient;