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

fix: RouteCollection::getRegisteredControllers() may not return all controllers #7174

Conversation

kenjis
Copy link
Member

@kenjis kenjis commented Jan 25, 2023

Description

  • fix logic

Before this PR, the following test fails. Because array_merge() overwrites handlers.

    public function testGetRegisteredControllersReturnsAllControllers()
    {
        $collection = $this->getCollector();
        $collection->get('test', '\App\Controllers\HelloGet::get');
        $collection->post('test', '\App\Controllers\HelloPost::post');
        $collection->post('hello', '\App\Controllers\TestPost::hello');

        $routes = $collection->getRegisteredControllers('*');

        $expects = [
            '\App\Controllers\HelloGet',
            '\App\Controllers\HelloPost',
            '\App\Controllers\TestPost',
        ];
        $this->assertSame($expects, $routes);
    }

Checklist:

  • Securely signed commits
  • Component(s) with PHPDoc blocks, only if necessary or adds value
  • Unit testing, with >80% coverage
  • User guide updated
  • Conforms to style guide

@kenjis kenjis added the bug Verified issues on the current code behavior or pull requests that will fix them label Jan 25, 2023
@kenjis kenjis merged commit 9381e48 into codeigniter4:develop Jan 29, 2023
@kenjis kenjis deleted the fix-RouteCollection-getRegisteredControllers branch January 29, 2023 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Verified issues on the current code behavior or pull requests that will fix them
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants