* Add .idea folder to .gitignore
* Remove useless concatenation
* Add phpunit cache directory to .gitignore
* Use iterable type instead of unnecessary checks
* Remove unnecessary null coalescing
If the return value is `null`, it will return `null` anyway. If the method doesn't exist, it will throw an `Error` because of the undefined method.
* Add typehint
* Merge meta properties in one go instead of in a loop
* Simplify control flow
* Use non-deprecated phpstan configuration value
* Add missing types
* Fix style with php-cs-fixer
* Add tests that satisfy the ArrayIterator branch
* Use is() for comparison in in()
* from(int|string), tryFrom(int|string)
---------
Co-authored-by: Samuel Štancl <samuel@archte.ch>