Is Array Rule provides a simple and strict array type validation for the Aegisora ecosystem.
The package is built on top of aegisora/rule-contract and follows its validation architecture, ensuring predictable and safe behavior.
- 🔹 Minimalistic implementation with no extra dependencies
- 🔹 Strict array validation using
is_array - 🔹 Fully compatible with Aegisora validation pipeline
- 🔹 Clear
Context → Resultflow - 🔹 No raw booleans — only structured
Result - 🔹 Safe execution via base
Ruleabstraction - 🔹 Convenient static factory method (
create) - 🔹 Lightweight and predictable behavior
composer require aegisora/is-array-ruleThis package performs array validation:
- accepts a value via
Context - checks whether the value is an array
- returns a standardized
Result
Supported values:
[]
['foo', 'bar']
['key' => 'value']Unsupported values:
null
true
123
'string'
new stdClass()use Aegisora\Rules\IsArrayRule;
use Aegisora\RuleContract\Models\Context;
$result = IsArrayRule::create()->validate(
Context::create(['name' => 'John'])
);
if ($result->isValid()) {
// value is array
} else {
// value is not array
}use Aegisora\Rules\IsArrayRule;
use Aegisora\RuleContract\Models\Context;
$result = IsArrayRule::create()->validate(
Context::create('not-array')
);
if ($result->isValid()) {
// will not happen
} else {
// validation failed
}IsArrayRule::create();Creates a new instance of IsArrayRule.
Validation internally uses PHP native function:
is_array($value)The rule returns:
- valid
Result→ if value is array - invalid
Result→ if value is not array
No exceptions are thrown for unsupported types.
This package relies on aegisora/rule-contract.
Validation flow:
validate()is calledContextis passedexecuteValidate()is executedis_array()check is performed- A
Resultis returned
All logic is encapsulated within the base Rule abstraction.
This package is open-source and licensed under the MIT License. See the LICENSE for details.
Contributions are welcome and greatly appreciated!. See the CONTRIBUTING for details.
If you find this project useful, please consider giving it a star on GitHub!
It helps the project grow and motivates further development.