PHP класс использовать другие классы из композитора - PullRequest
0 голосов
/ 19 ноября 2018

Я сделал класс, который автоматически загружается с 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"]);
        ...
}

Дескриптор метода вызывается из телеграммы, так что я не знаю, как его разархивировать, но я на 100% уверен, что он падает, когда Dotenv пытается получить экземпляр.Древовидное представление:

/CusTelegram
  /CusCommand
    /NewEpisodeCommand.php (this class)
/bot
  /bot.php
/vendor
...

В боте php мне уже требуется автозагрузка.Этот класс не имеет проблем, просто я не могу использовать DotEnv и ApiVideo в классе NewEpisodeCommand.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);

- EDIT - Мне удалось распечатать ошибку, и вот что я получаю:

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

1 Ответ

0 голосов
/ 19 ноября 2018

Мне удалось исправить ошибку, мне просто нужно было вставить путь использования, например:

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