Hi Saki,
Welcome to the internal mailing list! I had looked the pull request, and I'm pleased to have received your email promptly.
Thank you!
Now, I agree that it is often not possible to use `PDO::FETCH_CLASS` because DB column names are typically snake case and variables and properties are camel case. IMHO, passing arguments to the constructor in order is a good approach, but I think another option would be to give attributes to properties and map data appropriately when using PDO::FETCH_CLASS. e.g. ``` #[ColumnName('user_name')] private string $userName; ```
The main motivation for this new fetch mode is the fact that it is now infeasible to use the constructor. You would expect to use `PDO::FETCH_CLASS` for it, as you're trying to create a class, but that is impossible entirely. You need to resort to a hacky usage of `PDO::FETCH_FUNC`, which in my view is unwanted. A nice consequence of using the constructor is that the casings need not match. I like the idea of using annotations, but they solve a different problem I think.
In addition to the concerns mentioned in the pull request, I'm also concerned that more modes with similar functionality will confuse users.
That is a valid concern. When I first starting looking into this I was also a bit overwhelmed by the amount of possibilities one has. I think giving an appropriate name to this new fetch mode is therefore important. I thought of `PDO::FETCH_CONSTRUCTOR`, but I'm happy to hear other ideas. Kind regards, Frederik van der Els -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php