プロンプト
はじめに
Laravel Prompts は、ブラウザのような機能を備えた美しいユーザーフレンドリーなフォームをコマンドラインアプリケーションに追加するためのPHPパッケージです。プレースホルダーテキストやバリデーションなどの機能が含まれています。

Laravel Prompts は、Artisanコンソールコマンド でユーザー入力を受け入れるのに最適ですが、任意のコマンドラインPHPプロジェクトでも使用できます。
Laravel Prompts は macOS、Linux、および Windows with WSL をサポートしています。詳細については、非サポート環境とフォールバック のドキュメントをご覧ください。
インストール
Laravel Prompts は、最新リリースの Laravel にすでに含まれています。
他のPHPプロジェクトにも Composer パッケージマネージャーを使用してインストールできます:
composer require laravel/prompts
利用可能なプロンプト
テキスト
text
関数は、指定された質問でユーザーにプロンプトを表示し、入力を受け入れて返します:
use function Laravel\Prompts\text;
$name = text('What is your name?');
プレースホルダーテキスト、デフォルト値、情報ヒントを含めることもできます:
$name = text(
label: 'What is your name?',
placeholder: 'E.g. Taylor Otwell',
default: $user?->name,
hint: 'This will be displayed on your profile.'
);
必須値
値の入力が必要な場合は、required
引数を渡すことができます:
$name = text(
label: 'What is your name?',
required: true
);
カスタムの検証メッセージを指定する場合は、文字列を渡すこともできます:
$name = text(
label: 'What is your name?',
required: 'Your name is required.'
);
追加の検証
最後に、追加の検証ロジックを実行したい場合は、validate
引数にクロージャを渡すことができます:
$name = text(
label: 'What is your name?',
validate: fn (string $value) => match (true) {
strlen($value) < 3 => 'The name must be at least 3 characters.',
strlen($value) > 255 => 'The name must not exceed 255 characters.',
default => null
}
);
クロージャは入力された値を受け取り、検証が成功した場合はエラーメッセージまたはnull
を返すことができます。
または、Laravelのvalidatorの機能を活用することもできます。そのためには、validate
引数に属性の名前と必要な検証ルールを含む配列を提供してください:
$name = text(
label: 'What is your name?',
validate: ['name' => 'required|max:255|unique:users,name']
);
テキストエリア
textarea
関数は、指定された質問でユーザーにプロンプトを表示し、複数行のテキストエリアを介して入力を受け入れ、その後それを返します:
use function Laravel\Prompts\textarea;
$story = textarea('Tell me a story.');
プレースホルダーテキスト、デフォルト値、情報ヒントを含めることもできます:
$story = textarea(
label: 'Tell me a story.',
placeholder: 'This is a story about...',
hint: 'This will be displayed on your profile.'
);