本文整理汇总了PHP中JsonSchema\Validator类的典型用法代码示例。如果您正苦于以下问题:PHP Validator类的具体用法?PHP Validator怎么用?PHP Validator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Validator类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: getValidator
/**
* @param \stdClass $responseBody
*
* @return Validator
*/
protected function getValidator($responseBody)
{
$responseSchema = $this->schemaManager->getResponseSchema($this->path, $this->httpMethod, $this->httpCode);
$validator = new Validator();
$validator->check($responseBody, $responseSchema);
return $validator;
}
开发者ID:Beanhunter,项目名称:SwaggerAssertions,代码行数:12,代码来源:ResponseBodyConstraint.php
示例2: doValidation
protected function doValidation(Response $response)
{
$data = json_decode($response->getBody());
if ($data === null) {
throw new ValidationFailedException("The given JSON data can not be validated (last error: '" . $this->json_errors[json_last_error()] . "').");
} else {
$error = false;
$messageParts = array();
foreach ($this->jsonSchemaFiles as $jsonSchemaFile) {
$factory = new Factory(null, null, Constraint::CHECK_MODE_TYPE_CAST | Constraint::CHECK_MODE_COERCE);
$validator = new Validator($factory);
$jsonSchemaObject = (object) json_decode(file_get_contents($jsonSchemaFile['jsonschemafileurl']));
$validator->check($data, $jsonSchemaObject);
if (!$validator->isValid()) {
$error = true;
$errorMessage = '';
foreach ($validator->getErrors() as $error) {
$errorMessage = $errorMessage . sprintf("[%s] %s\n", $error['property'], $error['message']);
}
$messageParts[] = $jsonSchemaFile['jsonschemafilename'] . ' - ' . $jsonSchemaFile['jsonschemafileurl'] . '(last error: ' . $errorMessage . ').';
}
}
if ($error == true) {
$message = 'JSON file (' . (string) $response->getUri() . ') does not validate against the following JSON Schema files: ' . implode(", ", $messageParts);
throw new ValidationFailedException($message);
}
}
}
开发者ID:phmlabs,项目名称:smoke,代码行数:28,代码来源:JsonSchemaRule.php
示例3: checkEntityAgainstSchema
/**
* Check data against a given entity type from the schema
*
* @param array|object $data Data from the API. Associative arrays will be reparsed into objects
* @param string $entity Entity type, from the schema
*/
protected function checkEntityAgainstSchema($data, $entity)
{
$absolute_ref = self::SCHEMA_BASE . 'definitions/' . $entity;
$schema = $this->retriever->retrieve($absolute_ref);
if (is_array($data)) {
// Data was decoded as an array instead of an object, reencode for
// schema checking
$data = json_decode(json_encode($data));
}
$validator = new Validator(Validator::CHECK_MODE_NORMAL, $this->retriever);
$validator->check($data, $schema);
if (!$validator->isValid()) {
$message = "JSON does not validate against schema:\n";
$i = 0;
foreach ($validator->getErrors() as $error) {
$i++;
$message .= $i . ') ';
if (!empty($error['property'])) {
$message .= sprintf("[%s] %s\n", $error['property'], $error['message']);
} else {
$message .= $error['message'] . "\n";
}
}
$this->fail($message);
}
}
开发者ID:NikDevPHP,项目名称:client-php,代码行数:32,代码来源:Server.php
示例4: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
$path = $input->getArgument('path');
if (!$path) {
$path = getcwd() . DIRECTORY_SEPARATOR . 'resolver.json';
}
if (!is_file($path)) {
$output->writeln(sprintf('<error>The file "%s" does not exists.</error>', $path));
return 1;
}
// Get the schema and data as objects:
$schema = json_decode(file_get_contents(__DIR__ . '/../../resources/schema.json'));
$data = json_decode(file_get_contents($path));
// Validate:
$validator = new Validator();
$validator->check($data, $schema);
if ($validator->isValid()) {
$output->writeln($path . ' is valid');
return 0;
}
$output->writeln(sprintf('<error>The file "%s" contains errors.</error>', $path));
foreach ($validator->getErrors() as $error) {
if ($error['property']) {
$output->writeln(sprintf('- %s: %s', $error['property'], $error['message']));
} else {
$output->writeln(sprintf('- %s', $error['message']));
}
}
return 1;
}
开发者ID:pixelpolishers,项目名称:resolver,代码行数:30,代码来源:Validate.php
示例5: assertJsonResponse
/**
* @param string $schemaName
*/
protected function assertJsonResponse($response, $statusCode = Response::HTTP_OK, $schemaName = null)
{
// Assert HTTP response status code
$this->assertEquals($statusCode, $response->getStatusCode(), $response->getContent());
$content = $response->getContent();
$data = null;
if ($content) {
// Assert response is JSON content-type (unless response content is empty)
$this->assertTrue($response->headers->contains('Content-Type', 'application/json'), $response->headers);
// Parse the response body
$data = json_decode($response->getContent());
}
// Validate JSON data with given schema
if (null !== $schemaName) {
$schemaUri = 'file://' . realpath(__DIR__ . '/../Resources/json_schemas/' . $schemaName . '.json');
$retriever = new JsonSchema\Uri\UriRetriever();
$schema = $retriever->retrieve($schemaUri);
$validator = new JsonSchema\Validator();
$validator->check($data, $schema);
if (!$validator->isValid()) {
$errorMessage = 'JSON response does not validate the schema';
foreach ($validator->getErrors() as $error) {
$errorMessage .= sprintf("\n[%s] %s", $error['property'], $error['message']);
}
$this->fail($errorMessage);
}
}
return $data;
}
开发者ID:andreaswarnaar,项目名称:openl10n,代码行数:32,代码来源:WebTestCase.php
示例6: parseSingleSchema
public function parseSingleSchema($schemeSpec)
{
if ($schemeSpec === null) {
throw new ParseException('scheme must not be empty');
}
if (!is_string($schemeSpec)) {
throw new ParseException('scheme must be a string');
}
$schemaJson = json_decode($schemeSpec);
if (json_last_error() == JSON_ERROR_NONE) {
$schemeUri = $schemaJson->{'$schema'};
$retriever = new \JsonSchema\Uri\UriRetriever();
$scheme = $retriever->retrieve($schemeUri);
$validator = new Validator();
$validator->check($schemaJson, $scheme);
if ($validator->isValid()) {
$arrayScheme = json_decode($schemeSpec, true);
unset($arrayScheme['$schema']);
return $arrayScheme;
} else {
foreach ($validator->getErrors() as $error) {
echo sprintf("[%s] %s\n", $error['property'], $error['message']);
}
}
}
}
开发者ID:limenius,项目名称:arambla,代码行数:26,代码来源:SchemasParser.php
示例7: additionalFailureDescription
/**
* @inheritdoc
*/
protected function additionalFailureDescription($other)
{
$other = $this->forceToObject($other);
$validator = new Validator();
$validator->check($other, $this->schema);
return implode("\n", array_map(function ($error) {
return $error['message'];
}, $validator->getErrors()));
}
开发者ID:martin-helmich,项目名称:phpunit-json-assert,代码行数:12,代码来源:JsonValueMatchesSchema.php
示例8: initValidator
/**
* @param $jsonStr
* @return Validator
*/
private static function initValidator($jsonStr)
{
/** @var $this JsonValidatableTrait */
$validator = new Validator();
$data = json_decode($jsonStr);
$schema = static::jsonViceVersa(static::getJsonSchema());
$validator->check($data, $schema);
return $validator;
}
开发者ID:akentner,项目名称:incoming-ftp,代码行数:13,代码来源:JsonValidatableTrait.php
示例9: testValidCases
/**
* @dataProvider getValidTests
*/
public function testValidCases($input, $schema, $checkMode = Validator::CHECK_MODE_NORMAL)
{
$schema = json_decode($schema);
$refResolver = new RefResolver(new UriRetriever());
$refResolver->resolve($schema);
$validator = new Validator($checkMode);
$validator->check(json_decode($input), $schema);
$this->assertTrue($validator->isValid(), print_r($validator->getErrors(), true));
}
开发者ID:Flesh192,项目名称:magento,代码行数:12,代码来源:BaseTestCase.php
示例10: GetTestFiles
public static function GetTestFiles()
{
$dir = dirname(dirname(__DIR__));
$retriever = new UriRetriever();
$schema = $retriever->retrieve('file://' . realpath($dir . '/schema/tests.json'));
return new CallbackFilterIterator(new DirectoryIterator($dir . '/tests'), function (SplFileInfo $file) use($schema) {
$validator = new Validator();
return $file->isFile() && $file->isReadable() && preg_match('/\\.json$/', $file->getBasename()) && $validator->check($schema, json_decode(file_get_contents($file->getRealPath()))) == null && $validator->isValid();
});
}
开发者ID:SignpostMarv,项目名称:Verbal-Expressions-Tests,代码行数:10,代码来源:DynamicTestGenerator.php
示例11: validateJsonObject
/**
* Validates a json object
*
* @param string $json
*
* @throws \Exception
*
* @return boolean
*/
public function validateJsonObject($json)
{
$validator = new Validator();
$jsonSchema = $this->json;
$validator->check($json, $jsonSchema);
if (!$validator->isValid()) {
throw new InvalidSchemaException($validator->getErrors());
}
return true;
}
开发者ID:TheKnarf,项目名称:php-raml-parser,代码行数:19,代码来源:JsonSchemaDefinition.php
示例12: check
private function check($json)
{
$schema = json_decode(file_get_contents(__DIR__ . '/../../../../res/composer-schema.json'));
$validator = new Validator();
$validator->check(json_decode($json), $schema);
if (!$validator->isValid()) {
return $validator->getErrors();
}
return true;
}
开发者ID:Flesh192,项目名称:magento,代码行数:10,代码来源:ComposerSchemaTest.php
示例13: validateSchema
public function validateSchema($json, $schema)
{
$validator = new Validator();
$validator->check(json_decode($json), json_decode($schema));
if ($validator->isValid()) {
return true;
} else {
return $validator->getErrors();
}
}
开发者ID:takeit,项目名称:updater,代码行数:10,代码来源:JsonManager.php
示例14: check
/**
* Zkontroluje data proti zadanému schématu
*
* @param array|\StdClass
* @param string
* @return bool
*/
public function check($data, $schemaFile)
{
$validator = new Validator();
$schema = $this->getSchema($schemaFile);
$validator->check($data, Json::decode($schema));
if ($validator->isValid()) {
return TRUE;
}
$this->errors = $validator->getErrors();
return FALSE;
}
开发者ID:gorocacher,项目名称:RestApiBase,代码行数:18,代码来源:JsonSchemaValidator.php
示例15: getValidator
/**
* @param \stdClass $headers
*
* @return Validator
*/
protected function getValidator($headers)
{
$schema = new \stdClass();
$headers = (object) array_change_key_case((array) $headers, CASE_LOWER);
$properties = $this->schemaManager->getResponseHeaders($this->path, $this->httpMethod, $this->httpCode);
$schema->properties = (object) array_change_key_case((array) $properties, CASE_LOWER);
$schema->required = array_keys((array) $schema->properties);
$validator = new Validator();
$validator->check($headers, $schema);
return $validator;
}
开发者ID:Beanhunter,项目名称:SwaggerAssertions,代码行数:16,代码来源:ResponseHeadersConstraint.php
示例16: testDisplayErrors
/**
* Tests right errors output.
*
* @covers ::displayErrors
*
* @return void
*/
public function testDisplayErrors()
{
$validator = new Validator();
$validator->addError(null, 'Foo');
$validator->addError('subpath', 'Bar');
$output = new StreamOutput(fopen('php://memory', 'r+'), StreamOutput::VERBOSITY_NORMAL, false);
Utils::displayErrors($validator, $output);
rewind($output->getStream());
$this->assertStringEqualsFile(__DIR__ . '/fixtures/Utils/testDisplayErrors', stream_get_contents($output->getStream()));
fclose($output->getStream());
}
开发者ID:emanueleminotto,项目名称:schemer,代码行数:18,代码来源:UtilsTest.php
示例17: validateMessage
/**
* @param string $message
* @return array
*/
protected function validateMessage($message)
{
if (empty($message) === true) {
return [];
}
$refResolver = new RefResolver(new UriRetriever(), new UriResolver());
$schema = $refResolver->resolve('file://' . realpath(__DIR__ . "/json-api-schema.json"));
$validator = new Validator();
$validator->check(json_decode($message), $schema);
return $validator->getErrors();
}
开发者ID:woohoolabs,项目名称:yin,代码行数:15,代码来源:AbstractMessageValidator.php
示例18: __construct
public function __construct(array $config)
{
$config += $this->default;
$schema = file_get_contents(__DIR__ . '/../res/config-schema.json');
$validator = new JsonSchema\Validator();
$validator->check((object) $config, json_decode($schema));
if (!$validator->isValid()) {
throw new \InvalidArgumentException(var_export($validator->getErrors(), true));
}
$this->config = $config;
}
开发者ID:harimau99,项目名称:prestissimo,代码行数:11,代码来源:Config.php
示例19: validateRequest
/**
* @param Request $request
*
* @throws InvalidParametersException
* @throws UnsupportedException
*/
public function validateRequest(Request $request)
{
$validator = new Validator();
$validator->check($this->assembleParameterDataForValidation($request), $this->assembleRequestSchema());
if (!$validator->isValid()) {
/**
* TODO Better utilize $validator->getErrors() so we can assemble a more helpful vnd.error response
* @see https://github.com/kleijnweb/swagger-bundle/issues/27
*/
throw new InvalidParametersException("Parameters incompatible with operation schema: " . implode(', ', $validator->getErrors()[0]), 400);
}
}
开发者ID:krizon,项目名称:swagger-bundle,代码行数:18,代码来源:RequestValidator.php
示例20: validate
public function validate(Json $json, Validator $validator)
{
$validator->check($json->getContent(), $this->getContent());
if (!$validator->isValid()) {
$msg = "JSON does not validate. Violations:" . PHP_EOL;
foreach ($validator->getErrors() as $error) {
$msg .= sprintf(" - [%s] %s" . PHP_EOL, $error['property'], $error['message']);
}
throw new \Exception($msg);
}
return true;
}
开发者ID:GabrielCW,项目名称:contexts,代码行数:12,代码来源:JsonSchema.php
注:本文中的JsonSchema\Validator类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论