使用PackageLoader加载扳手类的问题

时间:2019-04-26 15:08:24

标签: php composer-php

我正在尝试使用PackageLoader加载Wrench库,但无法正常工作。我的代码在下面。

include __DIR__.'/PackageLoader.php';
$loader = new PackageLoader\PackageLoader();
$loader->load(__DIR__."/vendor/wrench/wrench");

$app = new class implements \Wrench\Application\DataHandlerInterface
{
    public function onData(string $data, \Wrench\Connection $connection): void
    {
        $connection->send($data);
    }
};

我收到此错误

  

致命错误:在第13行的C:\ Users \ desbest \ Documents \ UniServerZ \ www \ sugarchat \ includes \ actions.php中找不到接口'Wrench \ Application \ DataHandlerInterface'

虽然我在加载库时会找到composer.json文件。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

创建了屏幕截图中显示的结构,您的代码得以正确执行

enter image description here

您的脚本位于屏幕快照中的扳手.php文件中,我只是在cli上调用了它

php wrench.php

尚无任何有用的代码,但似乎至少一切正常。

如您所见,我在composer-file-loader的结构中克隆了扳手,并创建了代码中使用的结构。

答案 1 :(得分:-1)

您不能使用未注册的名称空间。 Composer会为您执行此操作,因此,我建议您使用composer。

如果您设置不使用作曲器,则需要使用功能spl_autoload_register

spl_autoload_register([
     'Wrench\\Application\\DataHandlerInterface' => 'PATH/TO/FILE.php'
]);