Hi,
I’m writing a message here to receive feedback on a two ideas related to
class constructors before going more in details with an RFC. I hope this is
appropriate behavior for this list
With the Constructor Property Promotion accepted in PHP 8, there’s a lot
less of boilerplate when writing class constructors. I’m suggesting two
additional ways of making thing even easier and I hope, readable.
First: I’d like to be able to automatically transfer a constructor
property to its parent constructor. I’m thinking of something like that:
```php
class MyCommand extends Command
{
public function __construct(
private Connection $connection,
parent string $name,
) {
}
}
```
This would be the equivalent of :
```php
class MyCommand extends Command
{
public function __construct(
private Connection $connection,
string $name,
) {
parent::__construct($name);
}
}
```
The second idea is to make the constructor body optional, the first example
would now be:
```php
class MyCommand extends Command
{
public function __construct(
private Connection $connection,
parent string $name,
)
}
```
This would call the parent constructor automatically even if no "parent"
parameter are present. I could even see this enforced by linter to avoid
having logic in the constructors.
If there is interest I’d like to try writing an rfc and implement it. I
have not much knowledge of the php-src code but I hope this is a small
enough change that I’ll be able to tackle. So, at that time if someone is
interested in mentoring this little project I’d appreciate it :)
regards,
Mathieu