Merge pull request #7833 from RaphaelAurieres/master

Allows the JsonFile class to be used for other json files than composer.json
main
Jordi Boggiano 6 years ago committed by GitHub
commit ebde0bab7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -34,6 +34,8 @@ class JsonFile
const JSON_PRETTY_PRINT = 128;
const JSON_UNESCAPED_UNICODE = 256;
const COMPOSER_SCHEMA_PATH = '/../../../res/composer-schema.json';
private $path;
private $rfs;
private $io;
@ -144,10 +146,11 @@ class JsonFile
* Validates the schema of the current json file according to composer-schema.json rules
*
* @param int $schema a JsonFile::*_SCHEMA constant
* @param string|null $schemaFile a path to the schema file
* @throws JsonValidationException
* @return bool true on success
*/
public function validateSchema($schema = self::STRICT_SCHEMA)
public function validateSchema($schema = self::STRICT_SCHEMA, $schemaFile = null)
{
$content = file_get_contents($this->path);
$data = json_decode($content);
@ -156,7 +159,9 @@ class JsonFile
self::validateSyntax($content, $this->path);
}
$schemaFile = __DIR__ . '/../../../res/composer-schema.json';
if (null === $schemaFile) {
$schemaFile = __DIR__ . self::COMPOSER_SCHEMA_PATH;
}
// Prepend with file:// only when not using a special schema already (e.g. in the phar)
if (false === strpos($schemaFile, '://')) {

Loading…
Cancel
Save