On Mon, 17 Aug 2020 at 19:46, Mathieu Rochette <math...@rochette.cc> wrote:
> 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, Why do you use visibility modifier inside here? > > > parent string $name, > > ) { C# has something like this ) : base($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