Support Mixin's with constructor arguments #51918
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When defining a macro we can make use of dependencies by passing them to the closure's context via the
use
keyword. For example, we could define the following macro in a Service Provider and it would work with no issues:When creating a macro, we can pass any dependencies that may be needed by using the
use
keyword when defining the closure. For example, we could define the following macro in a Service Provider and it would work:However, there was no way to achieve the same result using a mixin, as trying to do so resulted in an exception:
This PR excludes the constructor method from mixin objects, allowing us to specify constructor arguments, which can be used within the macro methods.
Once merged, the following will work as expected: