php json-schema - Fatal Error: Class not found
php json-schema - Fatal Error: Class not found
新 PHP!
我有 /var/www/html/index.php 需要来自 https://github.com/justinrainbow/json-schema
的 json-schema
从 git 下载并将 JsonSchema 文件夹移动到 /var/www/html
index.php 中的以下内容给出了致命错误:Class '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
一旦包含在您的脚本中将允许您访问所有 classes。否则你注定要一一要求class。
此外,要求每个 class 在内存使用和运行时上确实效率低下,因此作曲家的 autoload.php
使用 spl_autoload_register
更好,因为它只加载 class es 当他们实际被调用时。否则,如果您需要大量 classes 而没有使用它们,那只会浪费资源并减慢速度。
您首先需要的是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!
我有 /var/www/html/index.php 需要来自 https://github.com/justinrainbow/json-schema
的 json-schema从 git 下载并将 JsonSchema 文件夹移动到 /var/www/html
index.php 中的以下内容给出了致命错误:Class '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
一旦包含在您的脚本中将允许您访问所有 classes。否则你注定要一一要求class。
此外,要求每个 class 在内存使用和运行时上确实效率低下,因此作曲家的 autoload.php
使用 spl_autoload_register
更好,因为它只加载 class es 当他们实际被调用时。否则,如果您需要大量 classes 而没有使用它们,那只会浪费资源并减慢速度。
您首先需要的是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));