PHP类使用composer中的其他类

时间:2018-11-19 10:00:07

标签: php composer-php php-telegram-bot

我制作了一个会随psr-4自动加载的类。 在本课程中,我想使用通过composer下载的某些库中的类,问题是我似乎无法弄清楚。 类:

<?php
namespace CusTelegram\CusCommand; 
use Telegram\Bot\Actions;
use Telegram\Bot\Commands\Command;
class NewEpisodeCommand extends Command
{
    public function handle($arguments)
    { 
        ...
        $dotenv = new Dotenv\Dotenv(__DIR__ . "/../..");
        $this->replyWithMessage(['text' => __DIR__ . "/../.."]);
        $dotenv->overload();
        $client = new ApiVideo\Client\Client($_ENV["API_EMAIL"], $_ENV["API_KEY"]);
        ...
}

方法句柄是从电报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 Telegram\Bot\Api;
$telegram = new Api(<token>);
$commands = [CusTelegram\CusCommand\StartCommand::class, CusTelegram\CusCommand\NewEpisodeCommand::class, Telegram\Bot\Commands\HelpCommand::class ];
$telegram->addCommands($commands);

$update = $telegram->commandsHandler(true);

-编辑- 我能够打印错误,这就是我得到的:

Fatal error: Uncaught Error: Class 'CusTelegram\CusCommand\Dotenv\Dotenv' not found in /membri/streamapi/CusTelegram/CusCommand/NewEpisodeCommand.php

1 个答案:

答案 0 :(得分:1)

我能够解决我只需要插入如下使用路径的错误:

use Dotenv\Dotenv;
use ApiVideo\Client\Client;