Skip to content

Bugfix/splfileobject fputcsv invalidnamedargument#8042

Merged
orklah merged 3 commits intovimeo:4.xfrom
KevinVanSonsbeek:bugfix/splfileobject-fputcsv-invalidnamedargument
Jun 2, 2022
Merged

Bugfix/splfileobject fputcsv invalidnamedargument#8042
orklah merged 3 commits intovimeo:4.xfrom
KevinVanSonsbeek:bugfix/splfileobject-fputcsv-invalidnamedargument

Conversation

@KevinVanSonsbeek
Copy link
Copy Markdown
Contributor

Fixes #8039

It seems that during the transition from php 7.4 to php 8.0 in some cases param names have changed. I can't find these changes documented on the php wiki (probably due to them not being BC breaking prior to 8.0).

This might however mean that this problem could occur in more places when using named arguments. But finding those changes is most likely a long and tedious (manual?) task, so i suggest fixing them when they pop up.

@KevinVanSonsbeek
Copy link
Copy Markdown
Contributor Author

From the php-src repo:
PHP 7.4 branch: spl_directory.c

ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetcsv, 0, 0, 0)
	ZEND_ARG_INFO(0, delimiter)
	ZEND_ARG_INFO(0, enclosure)
	ZEND_ARG_INFO(0, escape)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fputcsv, 0, 0, 1)
	ZEND_ARG_INFO(0, fields)
	ZEND_ARG_INFO(0, delimiter)
	ZEND_ARG_INFO(0, enclosure)
	ZEND_ARG_INFO(0, escape)
ZEND_END_ARG_INFO()

PHP 8.0 branch: spl_directory_arginfo.h

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fgetcsv, 0, 0, 0)
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, separator, IS_STRING, 0, "\",\"")
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, enclosure, IS_STRING, 0, "\"\\\"\"")
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, escape, IS_STRING, 0, "\"\\\\\"")
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileObject_fputcsv, 0, 0, 1)
	ZEND_ARG_TYPE_INFO(0, fields, IS_ARRAY, 0)
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, separator, IS_STRING, 0, "\",\"")
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, enclosure, IS_STRING, 0, "\"\\\"\"")
	ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, escape, IS_STRING, 0, "\"\\\\\"")
ZEND_END_ARG_INFO()

@AndrolGenhald
Copy link
Copy Markdown
Collaborator

AndrolGenhald commented Jun 2, 2022

I can't find these changes documented on the php wiki (probably due to them not being BC breaking prior to 8.0).
This might however mean that this problem could occur in more places when using named arguments.

Yep, there've been a lot of fixes for these types of issues already. I bet there are still some that haven't been found yet too.

@AndrolGenhald AndrolGenhald added the release:fix The PR will be included in 'Fixes' section of the release notes label Jun 2, 2022
@orklah
Copy link
Copy Markdown
Collaborator

orklah commented Jun 2, 2022

Callmap 80 don't seem to match with callmap_historical.

But if the only change is the parameter name, feel free to change the history too (parameter name were not important before PHP 8.0 so we usually change them retroactively)

@orklah orklah merged commit e72e448 into vimeo:4.x Jun 2, 2022
@orklah
Copy link
Copy Markdown
Collaborator

orklah commented Jun 2, 2022

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:fix The PR will be included in 'Fixes' section of the release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

InvalidNamedArgument

3 participants