【问题标题】:Unable to load class php-ds classes in PHP 7 as I get fatal error:class not found由于出现致命错误,无法在 PHP 7 中加载类 php-ds 类:找不到类
【发布时间】:2020-01-28 02:59:57
【问题描述】:

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

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

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

$Vector = new Vector();

$stack = new  Stack(); 

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

【问题讨论】:

  • 文件顶部需要require_once 'vendor/autoload.php'

标签: php data-structures namespaces composer-php


【解决方案1】:

自动加载

对于指定自动加载信息的库,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

【讨论】:

    【解决方案2】:

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

    $ apt-get install php7.4-ds
    

    这可能会对您有所帮助:

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

    【讨论】:

      猜你喜欢
      • 2015-03-20
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2013-09-27
      • 2013-08-16
      • 2016-08-21
      • 2014-05-08
      相关资源
      最近更新 更多