From 4720c49a853839d230cc04e436c67eda36cc0aa5 Mon Sep 17 00:00:00 2001 From: fristi Date: Thu, 26 Sep 2019 10:43:38 +0200 Subject: [PATCH] Laravel dependency removed; Package now solely depends on Symfony's Console component. + Moved classes, modified paths to reflect dependency change. --- README.md | 6 +-- .../composer.json | 8 ++- .../Helper/InheritableQuestionHelper.php | 6 +-- .../src/Console/Helper/QuestionHelper.php | 6 +-- .../src/Console/Question/ChoiceQuestion.php | 31 +++++++++++ .../Console/Question/ConfirmationQuestion.php | 30 +++++++++++ .../src/Console/Question/Question.php | 30 +++++++++++ .../Console/Writer/DefaultOutputWriter.php} | 36 ++++++------- .../Console/Writer}/OutputWriterInterface.php | 6 +-- .../src/Console/Command/BaseCommand.php | 54 ------------------- .../Console/Question/BaseChoiceQuestion.php | 31 ----------- .../Question/BaseConfirmationQuestion.php | 30 ----------- .../src/Console/Question/BaseQuestion.php | 30 ----------- 13 files changed, 123 insertions(+), 181 deletions(-) rename danmaku/{laravel-console-writer => console-writer}/composer.json (77%) rename danmaku/{laravel-console-writer => console-writer}/src/Console/Helper/InheritableQuestionHelper.php (98%) rename danmaku/{laravel-console-writer => console-writer}/src/Console/Helper/QuestionHelper.php (96%) create mode 100644 danmaku/console-writer/src/Console/Question/ChoiceQuestion.php create mode 100644 danmaku/console-writer/src/Console/Question/ConfirmationQuestion.php create mode 100644 danmaku/console-writer/src/Console/Question/Question.php rename danmaku/{laravel-console-writer/src/Console/Output/BaseOutputWriter.php => console-writer/src/Console/Writer/DefaultOutputWriter.php} (93%) rename danmaku/{laravel-console-writer/src/Console/Output => console-writer/src/Console/Writer}/OutputWriterInterface.php (97%) delete mode 100644 danmaku/laravel-console-writer/src/Console/Command/BaseCommand.php delete mode 100644 danmaku/laravel-console-writer/src/Console/Question/BaseChoiceQuestion.php delete mode 100644 danmaku/laravel-console-writer/src/Console/Question/BaseConfirmationQuestion.php delete mode 100644 danmaku/laravel-console-writer/src/Console/Question/BaseQuestion.php diff --git a/README.md b/README.md index 643c5e1..a53ed0d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Laravel Console Writer +# Console Writer -Console input/output writer for Laravel. Features a dedicated class for console -interactivity for use with the Laravel Framework 5.8 and higher, allowing +Console input/output writer for Symfony. Features a dedicated class for console +interactivity based on Symfony's Console component, allowing easier styling through proper class inheritance while providing a simple and non-obstructive interface for use in your console commands. \ No newline at end of file diff --git a/danmaku/laravel-console-writer/composer.json b/danmaku/console-writer/composer.json similarity index 77% rename from danmaku/laravel-console-writer/composer.json rename to danmaku/console-writer/composer.json index 7d9067c..3603829 100644 --- a/danmaku/laravel-console-writer/composer.json +++ b/danmaku/console-writer/composer.json @@ -1,7 +1,7 @@ { - "name": "danmaku/laravel-console-writer", + "name": "danmaku/console-writer", "type": "library", - "description": "Easily adaptable console input/output writer for Laravel.", + "description": "Easily adaptable console input/output writer for Symfony.", "authors": [ { "name": "Marvin Schreurs", @@ -14,7 +14,6 @@ "email": "fristi@danmaku.moe" }, "keywords": [ - "laravel", "console", "symfony" ], @@ -22,12 +21,11 @@ "minimum-stability": "dev", "require": { "php": ">=7.2.0", - "illuminate/console": "^5.8", "symfony/console": "^4.2" }, "autoload": { "psr-4": { - "Danmaku\\LaravelConsoleWriter\\": "src/" + "Danmaku\\Console\\": "src/Console" } } } diff --git a/danmaku/laravel-console-writer/src/Console/Helper/InheritableQuestionHelper.php b/danmaku/console-writer/src/Console/Helper/InheritableQuestionHelper.php similarity index 98% rename from danmaku/laravel-console-writer/src/Console/Helper/InheritableQuestionHelper.php rename to danmaku/console-writer/src/Console/Helper/InheritableQuestionHelper.php index 70a0b6a..9cb4a87 100644 --- a/danmaku/laravel-console-writer/src/Console/Helper/InheritableQuestionHelper.php +++ b/danmaku/console-writer/src/Console/Helper/InheritableQuestionHelper.php @@ -6,11 +6,11 @@ * * PHP version 7.2 * - * @package Danmaku\LaravelConsoleWriter\Console\Helper + * @package Danmaku\Console\Helper * @author Marvin Schreurs */ -namespace Danmaku\LaravelConsoleWriter\Console\Helper; +namespace Danmaku\Console\Helper; use Symfony\Component\Console\Exception\RuntimeException; @@ -27,7 +27,7 @@ use Symfony\Component\Console\Question\Question; /** * Class InheritableQuestionHelper * - * @package Danmaku\LaravelConsoleWriter\Console\Helper + * @package Danmaku\Console\Helper * @author Marvin Schreurs */ class InheritableQuestionHelper extends \Symfony\Component\Console\Helper\QuestionHelper diff --git a/danmaku/laravel-console-writer/src/Console/Helper/QuestionHelper.php b/danmaku/console-writer/src/Console/Helper/QuestionHelper.php similarity index 96% rename from danmaku/laravel-console-writer/src/Console/Helper/QuestionHelper.php rename to danmaku/console-writer/src/Console/Helper/QuestionHelper.php index 40b8672..d94b5d1 100644 --- a/danmaku/laravel-console-writer/src/Console/Helper/QuestionHelper.php +++ b/danmaku/console-writer/src/Console/Helper/QuestionHelper.php @@ -6,11 +6,11 @@ * * PHP version 7.2 * - * @package Danmaku\LaravelConsoleWriter\Console\Helper + * @package Danmaku\Console\Helper * @author Marvin Schreurs */ -namespace Danmaku\LaravelConsoleWriter\Console\Helper; +namespace Danmaku\Console\Helper; use Symfony\Component\Console\Exception\RuntimeException; @@ -28,7 +28,7 @@ use Symfony\Component\Console\Style\SymfonyStyle; /** * Class QuestionHelper * - * @package Danmaku\LaravelConsoleWriter\Console\Helper + * @package Danmaku\Console\Helper * @author Marvin Schreurs */ class QuestionHelper extends InheritableQuestionHelper diff --git a/danmaku/console-writer/src/Console/Question/ChoiceQuestion.php b/danmaku/console-writer/src/Console/Question/ChoiceQuestion.php new file mode 100644 index 0000000..05ce56d --- /dev/null +++ b/danmaku/console-writer/src/Console/Question/ChoiceQuestion.php @@ -0,0 +1,31 @@ + + */ + +namespace Danmaku\Console\Question; + + +use Symfony\Component\Console\Exception\InvalidArgumentException; +use Symfony\Component\Console\Question\ChoiceQuestion as SymfonyChoiceQuestion; + +/** + * Class ChoiceQuestion + * + * @package Danmaku\Console\Question + * @author Marvin Schreurs + */ +class ChoiceQuestion extends SymfonyChoiceQuestion +{ + protected function isAssoc($array) + { + return true; + } +} \ No newline at end of file diff --git a/danmaku/console-writer/src/Console/Question/ConfirmationQuestion.php b/danmaku/console-writer/src/Console/Question/ConfirmationQuestion.php new file mode 100644 index 0000000..f333517 --- /dev/null +++ b/danmaku/console-writer/src/Console/Question/ConfirmationQuestion.php @@ -0,0 +1,30 @@ + + */ + +namespace Danmaku\Console\Question; + + +use Symfony\Component\Console\Question\ConfirmationQuestion as SymfonyConfirmationQuestion; + +/** + * Class ConfirmationQuestion + * + * @package Danmaku\Console\Question + * @author Marvin Schreurs + */ +class ConfirmationQuestion extends SymfonyConfirmationQuestion +{ + protected function isAssoc($array) + { + return true; + } +} \ No newline at end of file diff --git a/danmaku/console-writer/src/Console/Question/Question.php b/danmaku/console-writer/src/Console/Question/Question.php new file mode 100644 index 0000000..2354590 --- /dev/null +++ b/danmaku/console-writer/src/Console/Question/Question.php @@ -0,0 +1,30 @@ + + */ + +namespace Danmaku\Console\Question; + + +use Symfony\Component\Console\Question\Question as SymfonyQuestion; + +/** + * Class Question + * + * @package Danmaku\Console\Question + * @author Marvin Schreurs + */ +class Question extends SymfonyQuestion +{ + protected function isAssoc($array) + { + return true; + } +} \ No newline at end of file diff --git a/danmaku/laravel-console-writer/src/Console/Output/BaseOutputWriter.php b/danmaku/console-writer/src/Console/Writer/DefaultOutputWriter.php similarity index 93% rename from danmaku/laravel-console-writer/src/Console/Output/BaseOutputWriter.php rename to danmaku/console-writer/src/Console/Writer/DefaultOutputWriter.php index f07a831..e3706ea 100644 --- a/danmaku/laravel-console-writer/src/Console/Output/BaseOutputWriter.php +++ b/danmaku/console-writer/src/Console/Writer/DefaultOutputWriter.php @@ -1,22 +1,22 @@ */ -namespace Danmaku\LaravelConsoleWriter\Console\Output; +namespace Danmaku\Console\Writer; use Danmaku\LaravelConsoleWriter\Console\Helper\QuestionHelper; -use Danmaku\LaravelConsoleWriter\Console\Question\BaseChoiceQuestion; -use Danmaku\LaravelConsoleWriter\Console\Question\BaseConfirmationQuestion; -use Danmaku\LaravelConsoleWriter\Console\Question\BaseQuestion; +use Danmaku\LaravelConsoleWriter\Console\Question\ChoiceQuestion; +use Danmaku\LaravelConsoleWriter\Console\Question\ConfirmationQuestion; +use Danmaku\LaravelConsoleWriter\Console\Question\Question; use Symfony\Component\Console\Exception\RuntimeException; use Symfony\Component\Console\Formatter\OutputFormatter; use Symfony\Component\Console\Formatter\OutputFormatterStyle; @@ -27,18 +27,16 @@ use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Console\Output\OutputInterface; -use Symfony\Component\Console\Question\ChoiceQuestion; -use Symfony\Component\Console\Question\ConfirmationQuestion; -use Symfony\Component\Console\Question\Question; +use Symfony\Component\Console\Question\Question as SymfonyQuestion; use Symfony\Component\Console\Terminal; /** - * Class BaseOutputWriter + * Class DefaultOutputWriter * - * @package Danmaku\LaravelConsoleWriter\Console\Output + * @package Danmaku\Console\Writer * @author Marvin Schreurs */ -class BaseOutputWriter implements OutputWriterInterface +class DefaultOutputWriter implements OutputWriterInterface { /** * Console input interface. @@ -268,7 +266,7 @@ class BaseOutputWriter implements OutputWriterInterface public function ask(string $question, $default = null, $validator = null) { - $question = new BaseQuestion($question, $default); + $question = new Question($question, $default); $question->setValidator($validator); return $this->askQuestion($question); @@ -276,7 +274,7 @@ class BaseOutputWriter implements OutputWriterInterface public function password(string $question, $validator = null) { - $question = new BaseQuestion($question); + $question = new Question($question); $question->setHidden(true); $question->setValidator($validator); @@ -286,12 +284,12 @@ class BaseOutputWriter implements OutputWriterInterface public function confirm(string $question, $default = true): bool { - return $this->askQuestion(new BaseConfirmationQuestion($question, $default)); + return $this->askQuestion(new ConfirmationQuestion($question, $default)); } public function choice(string $question, array $choices, $default = null) { - return $this->askQuestion(new BaseChoiceQuestion($question, $choices, $default)); + return $this->askQuestion(new ChoiceQuestion($question, $choices, $default)); } public function startProgress(int $max = 0): void @@ -367,11 +365,11 @@ class BaseOutputWriter implements OutputWriterInterface } /** - * @param Question $question + * @param SymfonyQuestion $question * @return mixed * @throws \Exception */ - protected function askQuestion(Question $question) + protected function askQuestion(SymfonyQuestion $question) { if ($this->input->isInteractive()) { $this->autoPrependBlock(); diff --git a/danmaku/laravel-console-writer/src/Console/Output/OutputWriterInterface.php b/danmaku/console-writer/src/Console/Writer/OutputWriterInterface.php similarity index 97% rename from danmaku/laravel-console-writer/src/Console/Output/OutputWriterInterface.php rename to danmaku/console-writer/src/Console/Writer/OutputWriterInterface.php index 8231470..a3ff7c6 100644 --- a/danmaku/laravel-console-writer/src/Console/Output/OutputWriterInterface.php +++ b/danmaku/console-writer/src/Console/Writer/OutputWriterInterface.php @@ -6,11 +6,11 @@ * * PHP version 7.2 * - * @package Danmaku\LaravelConsoleWriter\Console\Output + * @package Danmaku\Console\Writer * @author Marvin Schreurs */ -namespace Danmaku\LaravelConsoleWriter\Console\Output; +namespace Danmaku\Console\Writer; use Symfony\Component\Console\Helper\ProgressBar; @@ -19,7 +19,7 @@ use Symfony\Component\Console\Output\OutputInterface; /** * Interface OutputWriterInterface * - * @package Danmaku\LaravelConsoleWriter\Console\Output + * @package Danmaku\Console\Writer * @author Marvin Schreurs */ interface OutputWriterInterface diff --git a/danmaku/laravel-console-writer/src/Console/Command/BaseCommand.php b/danmaku/laravel-console-writer/src/Console/Command/BaseCommand.php deleted file mode 100644 index 333e9b9..0000000 --- a/danmaku/laravel-console-writer/src/Console/Command/BaseCommand.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ - -namespace Danmaku\LaravelConsoleWriter\Console\Command; - - -use Danmaku\LaravelConsoleWriter\Console\Output\BaseOutputWriter; -use Danmaku\LaravelConsoleWriter\Console\Output\OutputWriterInterface; -use Illuminate\Console\Command; -use Illuminate\Console\OutputStyle; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Output\OutputInterface; - -/** - * Class BaseCommand - * - * @package Danmaku\LaravelConsoleWriter\Console\Command - * @author Marvin Schreurs - */ -abstract class BaseCommand extends Command -{ - /** - * OutputWriterInterface instance. - * - * @var OutputWriterInterface $writer - */ - protected $writer; - - /** - * @inheritDoc - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $this->setOutputWriter($input, $output); - return parent::execute($input, $output); - } - - /** - * Set the output writer to use with this command. - */ - protected function setOutputWriter(InputInterface $input, OutputInterface $output): void - { - $this->writer = new BaseOutputWriter($input, $output); - } -} \ No newline at end of file diff --git a/danmaku/laravel-console-writer/src/Console/Question/BaseChoiceQuestion.php b/danmaku/laravel-console-writer/src/Console/Question/BaseChoiceQuestion.php deleted file mode 100644 index 553e798..0000000 --- a/danmaku/laravel-console-writer/src/Console/Question/BaseChoiceQuestion.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ - -namespace Danmaku\LaravelConsoleWriter\Console\Question; - - -use Symfony\Component\Console\Exception\InvalidArgumentException; -use Symfony\Component\Console\Question\ChoiceQuestion; - -/** - * Class BaseChoiceQuestion - * - * @package Danmaku\LaravelConsoleWriter\Console\Question - * @author Marvin Schreurs - */ -class BaseChoiceQuestion extends ChoiceQuestion -{ - protected function isAssoc($array) - { - return true; - } -} \ No newline at end of file diff --git a/danmaku/laravel-console-writer/src/Console/Question/BaseConfirmationQuestion.php b/danmaku/laravel-console-writer/src/Console/Question/BaseConfirmationQuestion.php deleted file mode 100644 index 2082d18..0000000 --- a/danmaku/laravel-console-writer/src/Console/Question/BaseConfirmationQuestion.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ - -namespace Danmaku\LaravelConsoleWriter\Console\Question; - - -use Symfony\Component\Console\Question\ConfirmationQuestion; - -/** - * Class BaseConfirmationQuestion - * - * @package Danmaku\LaravelConsoleWriter\Console\Question - * @author Marvin Schreurs - */ -class BaseConfirmationQuestion extends ConfirmationQuestion -{ - protected function isAssoc($array) - { - return true; - } -} \ No newline at end of file diff --git a/danmaku/laravel-console-writer/src/Console/Question/BaseQuestion.php b/danmaku/laravel-console-writer/src/Console/Question/BaseQuestion.php deleted file mode 100644 index 4e37cd3..0000000 --- a/danmaku/laravel-console-writer/src/Console/Question/BaseQuestion.php +++ /dev/null @@ -1,30 +0,0 @@ - - */ - -namespace Danmaku\LaravelConsoleWriter\Console\Question; - - -use Symfony\Component\Console\Question\Question; - -/** - * Class BaseQuestion - * - * @package Danmaku\LaravelConsoleWriter\Console\Question - * @author Marvin Schreurs - */ -class BaseQuestion extends Question -{ - protected function isAssoc($array) - { - return true; - } -} \ No newline at end of file