I would also suggest supporting readonly classes and creating special attributes to help map data fields to constructor arguments. Something like this:
readonly class User { public function __construct( #[PDOField('user_id')] public string $userId, #[PDOField('user_name')] public string $userName, #[PDOField('user_address')] public ?string $userAddress = '', // Optional field with default value ); } -- Best regards, Alex On Fri, Jan 19, 2024 at 9:05 AM Saki Takamachi <s...@sakiot.com> wrote: > Hi Frederik > > > First off, please excuse me if I’ve done something wrong related to the > usage of the mailing list. This all is completely new to me. > > Welcome to the internal mailing list! I had looked the pull request, and > I'm pleased to have received your email promptly. > > > Thank you, the link was originally on the text "on GitHub" but it seems > to have been stripped. > > Since mailing lists are text rather than HTML, you cannot attach links to > strings. > > > I hereby want to propose a new fetch mode for PDO. I’ve detailed the > motivation for it on GitHub. I haven’t actually written the code for it, > but it should not be too difficult. > > 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; > ``` > > In addition to the concerns mentioned in the pull request, I'm also > concerned that more modes with similar functionality will confuse users. > > Regards. > > Saki > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php > >