gpt4 book ai didi

php json-schema - fatal error : Class not found

转载 作者:行者123 更新时间:2023-12-02 21:00:19 29 4
gpt4 key购买 nike

PHP 新手!

我有/var/www/html/index.php 需要来自 https://github.com/justinrainbow/json-schema 的 json-schema

从 git 下载并将 JsonSchema 文件夹移动到/var/www/html

index.php 中的以下内容给出 fatal error :未找到类“JsonSchema\Constraints\Constraint”

require "JsonSchema/Validator.php";
use JsonSchema\Validator;
$validator = new JsonSchema\Validator();
$validator->check(json_decode($data), json_decode($schema));

如果我包含 Constraint.php,它会抛出另一个错误。我在这里缺少一些基础知识。使用外部库的正确方法是什么?

谢谢!

最佳答案

如果您查看项目根目录,则会有一个名为 composer.json 的特殊文件,您将在其中找到 on line 46命名空间自动加载器。

"autoload": {
"psr-4": { "JsonSchema\\": "src/JsonSchema/" }
},

当您使用 Composer 安装项目时,则 this will generate a file called autoload.php一旦包含在您的脚本中,您就可以访问所有类。否则你注定要一一要求每一门课。

此外,要求每个类在内存使用和运行时方面确实效率很低,因此 Composer 的 autoload.php 使用 spl_autoload_register这甚至更好,因为它只在实际调用类时加载类。否则,如果您需要大量的类并且不使用所有这些类,那么这只是浪费资源并减慢速度。

您首先需要的是 composer

wget http://getcomposer.org/composer.phar

通常人们会使用 Composer 来下载这样的包并将其包含为新的项目依赖项。

php composer.phar require justinrainbow/json-schema:~2.0

但是由于您已经克隆了源代码,因为您想要实际开发这个包,那么您可以简单地生成自动加载器:

php composer.phar dump-autoload

所以你的脚本应该如下所示:

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

use JsonSchema\Validator;
$validator = new JsonSchema\Validator();
$validator->check(json_decode($data), json_decode($schema));

关于php json-schema - fatal error : Class not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com