Skip to content

Commit 20988f8

Browse files
phpstan-botclaude
authored andcommitted
Update README with missing feature descriptions
Add undocumented features found by inspecting src/: - Array access component type resolution via createComponent* - Forms\Container::getUntrustedValues return type - BaseControl fluent method static return type - Presenter::getSession return type based on arguments - Presenter @Inject properties treated as initialized - Strings::replace() callback closure type from regex pattern - RegularExpressionPatternRule for Nette\Utils\Strings methods Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7c31499 commit 20988f8

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,27 @@
1010
This extension provides following features:
1111

1212
* `Nette\ComponentModel\Container::getComponent()` knows type of the component because it reads the return type on `createComponent*` (this works best in presenters and controls)
13+
* Array access on components (`$component['name']`) resolves types via `createComponent*` methods
1314
* `Nette\DI\Container::getByType` and `createInstance` return type based on first parameter (`Foo::class`).
1415
* `Nette\Forms\Container::getValues` return type based on `$asArray` parameter.
16+
* `Nette\Forms\Container::getUntrustedValues` return type based on mapping class parameter.
17+
* `Nette\Forms\Controls\BaseControl` fluent methods return `static` instead of `BaseControl`.
1518
* `Nette\ComponentModel\Component::lookup` return type based on `$throw` parameter.
1619
* `Nette\Application\UI\Component::getPresenter` return type based on `$throw` parameter.
20+
* `Nette\Application\UI\Presenter::getSession` returns `Session` or `SessionSection` based on arguments.
1721
* Dynamic methods of [Nette\Utils\Html](https://doc.nette.org/en/2.4/html-elements)
1822
* Magic [Nette\Object and Nette\SmartObject](https://doc.nette.org/en/2.4/php-language-enhancements) properties
1923
* Event listeners through the `on*` properties
24+
* Presenter `@inject` properties are treated as initialized.
2025
* Defines early terminating method calls for Presenter methods to prevent `Undefined variable` errors
2126
* Understand the exact array shape coming from `Nette\Utils\Strings::match()` and `Nette\Utils\Strings::matchAll()` based on pattern
27+
* `Nette\Utils\Strings::replace()` callback closure parameter type inferred from regex pattern
2228

2329
It also contains these framework-specific rules (can be enabled separately):
2430

2531
* Do not extend Nette\Object, use Nette\SmartObject trait instead
2632
* Rethrow exceptions that are always meant to be rethrown (like `AbortException`)
33+
* Validate regex patterns passed to `Nette\Utils\Strings` methods
2734

2835

2936
## Installation

0 commit comments

Comments
 (0)