mirror of
https://github.com/Respect/Validation.git
synced 2026-03-14 22:35:45 +01:00
Introduces a Markdown linter for checking the Changelog format. "See Also" was transformed into a section to make it easier to handle it with the `Content` class. The "Related" linter was simplified to reflect that change too. An additional "alignment" parameter was added to markdown table generators, allowing the padding and headers to be explicitly marked with a specific left (-1), middle (0) or right(1) alignment. Existing files were fixed using the `fix` option after the changes.
2.6 KiB
2.6 KiB
PropertyExists
PropertyExists(string $propertyName)
Validates if an object property exists.
$object = new stdClass;
$object->name = 'The Respect Panda';
$object->email = 'therespectpanda@gmail.com';
v::propertyExists('name')->assert($object);
// Validation passes successfully
v::propertyExists('email')->assert($object);
// Validation passes successfully
v::propertyExists('website')->assert($object);
// → `.website` must be present
Notes
This validator will validate public, private, protected, uninitialised, and static properties.
- To validate a property against a given validator requiring the property to exist, use Property instead.
- To validate a property against a given validator only if the property exists, use PropertyOptional instead.
Templates
PropertyExists::TEMPLATE_STANDARD
| Mode | Template |
|---|---|
default |
{{subject}} must be present |
inverted |
{{subject}} must not be present |
Template placeholders
| Placeholder | Description |
|---|---|
subject |
The validated input or the custom validator name (if specified). |
Caveats
PropertyExists defines the given $propertyName as the path, and because it is a standalone validator without children, it's not possible to display a fully custom name with it.
When no custom name is set, the path is displayed as {{name}}. When a custom name is set, the validation engine prepends the path to the custom name:
v::propertyExists('foo')->assert([]);
// → `.foo` must be present
v::named('Custom name', v::propertyExists('foo'))->assert([]);
// → `.foo` (<- Custom name) must be present
If you want to display only a custom name while checking if a property exists, use Property with AlwaysValid:
v::property('foo', v::named('Custom name', v::alwaysValid()))->assert([]);
// → Custom name must be present
Categorization
- Objects
- Structures
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Created from Property |