0

我是 PHP 7 开发的新手,我已经开始使用 Composer 和 PHP。我需要使用 PHP 7 数据结构,如 Vector 和 Stack 等。为此,我在我的根目录中创建了一个 composer.json 来要求 php DS。在 composer install 之后,它创建了一个名为 Vendor 的文件夹,PHP ds 文件夹就在其中。

我在根目录内的 robots.php 文件中使用以下代码。

<?php
use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

我收到致命错误,说找不到类。我不知道自动加载是如何完全工作的。我可以从根文件夹中的 php 文件调用这些类吗?

4

2 回答 2

2

自动加载

对于指定自动加载信息的库,Composer 会生成一个vendor/autoload.php文件。您可以简单地包含此文件并开始使用这些库提供的类,而无需任何额外工作:

require __DIR__ . '/vendor/autoload.php';

use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

我建议你看看https://getcomposer.org/doc/01-basic-usage.md

于 2019-09-27T19:50:43.020 回答
0

那是因为Php DS是一个 PHP 扩展,你必须先安装它。

$ apt-get install php7.4-ds

这可能会帮助您:

还有一个 polyfill 包,这意味着即使没有安装扩展,也可以使用Php Ds类,尽管我认为这有一些性能成本。

于 2020-11-06T08:42:39.210 回答