Laravel通過Symfony Console組件提供ask、secret、confirm和choice等方法實現(xiàn)命令行交互,可創(chuàng)建用戶輸入、密碼隱藏、選項選擇等功能;結合Laravel Zero及第三方庫如laravel-console-menu,還能構建更復雜的交互式CLI應用,適用于高級菜單與獨立工具開發(fā)。
在 Laravel 生態(tài)中,雖然沒有原生的 Laravel Prompts 組件,但你可以使用社區(qū)廣泛采用的 spatie/laravel-artisan-prompt 或基于 symfony/console 的交互功能來創(chuàng)建交互式命令行工具。不過最近,Laravel Zero 和一些前端提示庫(如 bobthecow/psysh 風格)也推動了更現(xiàn)代的交互式 CLI 開發(fā)方式。下面介紹如何在 Laravel 中創(chuàng)建交互式命令行工具。
Laravel 自帶的 Artisan 命令系統(tǒng)基于 Symfony Console 組件,支持多種用戶交互方式:
示例:創(chuàng)建一個可交互的用戶創(chuàng)建命令
php artisan make:command CreateUserCommand
編輯生成的命令文件:
namespace App\Console\Commands; use Illuminate\Console\Command; use App\Models\User; class CreateUserCommand extends Command { protected $signature = 'user:create'; protected $description = '創(chuàng)建新用戶'; public function handle() { $name = $this->ask('請輸入用戶名'); $email = $this->ask('請輸入郵箱'); $password = $this->secret('請輸入密碼'); $confirmed = $this->confirm('確定要創(chuàng)建這個用戶嗎?', true); if (! $confirmed) { $this->info('操作已取消'); return; } User::create([ 'name' => $name, 'email' => $email, 'password' => bcrypt($password), ]); $this->info('用戶創(chuàng)建成功!'); } }
如果你希望用戶提供多個選項中的一個,可以使用 choice() 方法:
$role = $this->choice( '請選擇用戶角色', ['admin', 'editor', 'viewer'], 'viewer' );
這會顯示一個選擇列表,用戶可通過鍵盤上下鍵選擇,默認值為 viewer。
如果你想獲得更現(xiàn)代的交互體驗(比如自動補全、多選、滑塊等),可以考慮使用 PHP 的 Webuni\Symfony\Console\Prompts 或結合 dialog、inquirer.php 類似庫。
目前有一個流行的趨勢是使用 Laravel Zero 搭建獨立的 CLI 應用,它集成了 nunomaduro/laravel-console-menu 等包:
composer require laravel-zero/framework php application app:install nunomaduro/laravel-console-menu
然后可在命令中使用圖形化菜單:
use LaravelZero\Framework\Components\ConsoleMenu\Menu; $menu = $this->menu('選擇操作', [ '創(chuàng)建用戶', '刪除用戶', '列出用戶' ]); $option = $menu->open(); match($option) { 0 => $this->createUser(), 1 => $this->deleteUser(), 2 => $this->listUsers() };
確保你的命令已注冊到 app/Console/Kernel.php 的 $commands
數(shù)組中:
protected $commands = [ Commands\CreateUserCommand::class, ];
運行命令:
php artisan user:create
基本上就這些。Laravel 自身提供的交互方法已經(jīng)足夠應對大多數(shù) CLI 場景。如果需要更復雜的界面,建議使用 Laravel Zero 構建專用命令行應用。交互設計的關鍵是清晰提示和良好反饋,避免讓用戶迷失在流程中。
以上就是laravel Prompts如何創(chuàng)建交互式命令行工具_Laravel Prompts交互式命令行工具創(chuàng)建方法的詳細內容,更多請關注php中文網(wǎng)其它相關文章!
每個人都需要一臺速度更快、更穩(wěn)定的 PC。隨著時間的推移,垃圾文件、舊注冊表數(shù)據(jù)和不必要的后臺進程會占用資源并降低性能。幸運的是,許多工具可以讓 Windows 保持平穩(wěn)運行。
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號