mirror of
https://github.com/Respect/Validation.git
synced 2026-03-16 23:35:45 +01:00
This commit introduces REUSE compliance by annotating all files with SPDX information and placing the reused licences in the LICENSES folder. We additionally removed the docheader tool which is made obsolete by this change. The main LICENSE and copyright text of the project is now not under my personal name anymore, and it belongs to "The Respect Project Contributors" instead. This change restores author names to several files, giving the appropriate attribution for contributions.
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 |
See also: