Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/splfileobject fputcsv invalidnamedargument #8042

Merged
merged 3 commits into from Jun 2, 2022
Merged

Bugfix/splfileobject fputcsv invalidnamedargument #8042

merged 3 commits into from Jun 2, 2022

Conversation

KevinVanSonsbeek
Copy link
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
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
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
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
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