Skip to content

[Question] Module class made final, Codeception docs seem to indicate extends #110

Open
@qrazi

Description

@qrazi

(apologies if the title is too convoluted!)

So, one of the changes introduced between 1.1.10 & 1.1.11 is that the Module class is made final. See src/Codeception/Module/Yii2.php, line 168/169.

Craft CMS is a CMS that is built on Yii2. For its testing API it uses Codeception and this Codeception yii2 module. Amongst others it extends this module: https://github.com/craftcms/cms/blob/5.x/src/test/Craft.php#L65

And of course extending a final class is not possible, so our test suites now throw an error:

Fatal error: Class craft\test\Craft cannot extend final class Codeception\Module\Yii2 in /app/vendor/craftcms/cms/src/test/Craft.php on line 65

The documentation of Codeception 5 mentions the following when it comes to extending a Module: https://codeception.com/docs/ModulesAndHelpers#Extending-a-Module. So I think this means that the Codeception\Module\Yii2 class should not be final.

I'm submitting this more as a question, because I might be missing the context for which the change to final was made.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions