2016-07-29 8 views
0

PHPには初めて!php json-schema - 致命的なエラー:クラスが見つかりません

私はhttps://github.com/justinrainbow/json-schema

からJSONスキーマを必要と/var/www/html/index.phpはgitからダウンロードされ、index.phpの中で/ var/www/htmlと設定

に以下をJsonSchemaフォルダを移動しました致命的なエラーになります:クラスの制約\ JsonSchema \制約は、「私はConstraint.phpを含む場合、それは別のエラーをスローし

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

が見つかりません。ここにいくつかの基本がありません。外部ライブラリを使用する適切な方法は何ですか?

ありがとうございました!

答えて

2

プロジェクトルートを見ると、composer.jsonという特別なファイルがあり、そこにはon line 46名前空間オートローダーがあります。一度スクリプトに含まれ、その後

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

あなたが作曲して、プロジェクトをインストール

this will generate a file called autoload.phpはあなたのすべてのクラスにアクセスできるようになります。さもなければ、あなたは各クラスを一つずつ要求することになります。

さらに、それぞれのクラスを必要とするのはメモリ使用量とランタイムで実際には非効率なので、コンポーザのautoload.phpspl_autoload_registerを使用します。実際に呼び出されたときだけクラスをロードするためです。それ以外の場合は、クラスのトンを必要とし、それらのすべてを使用しないでください、それは単に資源の浪費であり、物事を遅らせる。あなたが必要となります

まず最初は、通常の人がダウンロードして、新しいプロジェクトの依存関係として、このようなパッケージなどのために作曲を使用しますcomposer

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

です。

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)); 
+0

Thanks Jeff。そのような包括的な答えは、チェックマーク以上の価値がある – Tims

関連する問題