Add support non-public properties for dot notation in `Nested` rule
Open
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 167
- Forks
- 47
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 3
Description
final class Body
{
private ?Shipping $shipping = null;
}
final class Shipping
{
private string $phone = '';
}
'body' => new Nested(['shipping.phone' => new Regex('/^\+\d{11}$/')]);
So far it throws error:
Error: Cannot access private property Yiisoft\FormModel\Tests\Support\Form\NestedMixedForm\Shipping::$phone
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:264
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:224
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:312
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Rule/NestedHandler.php:86
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Validator.php:183
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Validator.php:136
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the supplied Nested rule example with private shipping and phone properties. Read the ArrayHelper.php frames and validator/src/Rule/NestedHandler.php, then trace how dot notation reaches the non-public property. Done means the example validates without the private-property access error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100