Skip to content

[2.1]: get_defined_functions_in_file() fails to detect multiline method signatures, marking valid integration hooks as missing #9243

@dragomano

Description

@dragomano

Basic Information

Some IDEs (e.g., PHPStorm) automatically suggest using a multiline format for long parameters. Therefore, in code you can often find entries like this:

public function modifyBoard(
	int $id,
	array $boardOptions,
	array &$boardUpdates,
	array &$boardUpdateParameters
): void
{
	// Code
}

However, currently SMF only supports the single-line format for such parameters:

public function modifyBoard(int $id, array $boardOptions, array &$boardUpdates, array &$boardUpdateParameters): void
{
	// Code
}

As a result, some hooks are marked as missing, even though they actually exist.

Steps to reproduce

  1. Install Optimus 3.0
  2. Check the Integration Hooks table in the forum's settings

Expected result

No response

Actual result

No response

Version/Git revision

2.1.7

Database Engine

All

Database Version

No response

PHP Version

No response

Logs

Additional Information

Possible fix: https://www.simplemachines.org/community/index.php?msg=4202555

Metadata

Metadata

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions