Wenn Sie in den Projektstamm schauen, gibt es eine spezielle Datei namens composer.json
, in der Sie den Namespace-Autoloader on line 46 finden.
"autoload": {
"psr-4": { "JsonSchema\\": "src/JsonSchema/" }
},
Wenn Sie Ihr Projekt mit dem Komponisten installieren, dann this will generate a file called autoload.php
, die einmal im Skript enthalten ermöglicht es Ihnen, alle Klassen zuzugreifen. Sonst sind Sie dazu verdammt, jede Klasse einzeln zu verlangen.
Außerdem erfordert die Verwendung jeder Klasse wirklich ineffiziente Speicherauslastung und Laufzeit, so dass des Composers spl_autoload_register
verwendet, was noch besser ist, da es nur die Klassen lädt, wenn sie tatsächlich aufgerufen werden. Ansonsten, wenn Sie eine Tonne von Klassen benötigen und nicht alle von ihnen verwenden, dann ist es nur eine Verschwendung von Ressourcen und verlangsamt die Dinge.
Das erste, was Sie brauchen, ist composer
wget http://getcomposer.org/composer.phar
der Regel Menschen, Komponist für das Herunterladen und einschließlich Pakete wie diese als neues Projekt Abhängigkeit verwendet wird.
php composer.phar require justinrainbow/json-schema:~2.0
Aber da Sie bereits den Quellcode geklont haben, weil Sie wollen eigentlich dieses Paket entwickeln, dann erzeugen Sie einfach den Autoloader mit:
php composer.phar dump-autoload
So Ihr Skript sollte wie folgt aussehen:
require __DIR__ . '/vendor/autoload.php';
use JsonSchema\Validator;
$validator = new JsonSchema\Validator();
$validator->check(json_decode($data), json_decode($schema));
Dank Jeff. Eine solche umfassende Antwort verdient mehr als ein Häkchen – Tims