diff --git a/README.md b/README.md index 548b3af..0a67e2a 100644 --- a/README.md +++ b/README.md @@ -10,20 +10,27 @@ This extension provides following features: * `Nette\ComponentModel\Container::getComponent()` knows type of the component because it reads the return type on `createComponent*` (this works best in presenters and controls) +* Array access on components (`$component['name']`) resolves types via `createComponent*` methods * `Nette\DI\Container::getByType` and `createInstance` return type based on first parameter (`Foo::class`). * `Nette\Forms\Container::getValues` return type based on `$asArray` parameter. +* `Nette\Forms\Container::getUntrustedValues` return type based on mapping class parameter. +* `Nette\Forms\Controls\BaseControl` fluent methods return `static` instead of `BaseControl`. * `Nette\ComponentModel\Component::lookup` return type based on `$throw` parameter. * `Nette\Application\UI\Component::getPresenter` return type based on `$throw` parameter. +* `Nette\Application\UI\Presenter::getSession` returns `Session` or `SessionSection` based on arguments. * Dynamic methods of [Nette\Utils\Html](https://doc.nette.org/en/2.4/html-elements) * Magic [Nette\Object and Nette\SmartObject](https://doc.nette.org/en/2.4/php-language-enhancements) properties * Event listeners through the `on*` properties +* Presenter `@inject` properties are treated as initialized. * Defines early terminating method calls for Presenter methods to prevent `Undefined variable` errors * Understand the exact array shape coming from `Nette\Utils\Strings::match()` and `Nette\Utils\Strings::matchAll()` based on pattern +* `Nette\Utils\Strings::replace()` callback closure parameter type inferred from regex pattern It also contains these framework-specific rules (can be enabled separately): * Do not extend Nette\Object, use Nette\SmartObject trait instead * Rethrow exceptions that are always meant to be rethrown (like `AbortException`) +* Validate regex patterns passed to `Nette\Utils\Strings` methods ## Installation