Repository navigation
Base the install command on package-tools' InstallCommand - #54
Merged
Merged
Conversation
Owner decision 6: subclass laranail/package-tools' InstallCommand and keep laranail/console's display API through its two traits, so neither package depends on the other. A contract test pins the name, options, description, visibility, output and exit codes against the old base. The private publish helpers are renamed because the new base declares public methods of the same names.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Owner decision 6 ("traits"), following laranail/captcha#24.
laranail::authkit-preset.installnow extends laranail/package-tools'InstallCommandand keeps laranail/console's display API and run lifecycle by using itsInteractsWithConsoleServicesandInteractsWithConsoleWritertraits. No new dependency direction: both packages were already required.SIGNATURE/DESCRIPTIONconstants; the constructor takes thePackage, passeshidden: false(the command was listed before and still is), restores the description, and boots console support eagerly.packageRegistered(), since the container cannot autowirePackage; it stays registered by class name.publish()andpublishMigrations()are renamedpublishTag()andpublishMigrationOnce(), because the new base declares public fluent methods with those names. They are private, so nothing outside the class could call them.tests/Feature/InstallCommandContractTest.phpwas written first and run against the old base: the behaviour assertions (name, no aliases, description, listed, all 11 options and their value modes, no arguments, exit 1 with its message for an unsupported stack and for an unknown--model, container resolution) passed, and the inheritance assertion failed. All of them pass now. Full suite: 85 passed locally.