PHP class 使用作曲家的其他 classes
PHP class use other classes from composer
我制作了一个 class,它使用 psr-4 自动加载。
在这个 class 中,我想使用一些库中的 classes,这些库是我用 composer 下载的,问题是我似乎无法弄清楚。
Class:
<?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 中我已经需要自动加载。 class 没有问题,只是我不能在 NewEpisodeCommand class 中使用 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
我能够修复我只需要插入使用路径的错误:
use Dotenv\Dotenv;
use ApiVideo\Client\Client;
我制作了一个 class,它使用 psr-4 自动加载。 在这个 class 中,我想使用一些库中的 classes,这些库是我用 composer 下载的,问题是我似乎无法弄清楚。 Class:
<?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 中我已经需要自动加载。 class 没有问题,只是我不能在 NewEpisodeCommand class 中使用 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
我能够修复我只需要插入使用路径的错误:
use Dotenv\Dotenv;
use ApiVideo\Client\Client;