Laravel11の公式パッケージ Promps の使い方の記録と解説の第1回です。
![](https://laravel.com/img/og-image.jpg)
Laravel Promptsとは
Laravel Promptsは、WEBと同様の入力コンポーネント
- テキストボックス
- ラジオボタン
- チェックボックス
等を使って、CLI上で対話入力を可能にするパッケージです。
リアルタイム検索結果からの選択入力も可能です。
![](http://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompt_28.png)
Laravel11ではデフォルトでインストールされますが、
Laravelを利用しないPHPプロジェクトにも導入可能です。
この記事のゴール
Laravel Promptsをインストールし、
ピュアPHPでtextプロンプトを実装をします。
実行結果の確認まで行います。
前提条件
- PHP8.2以降インストール済
- Composerインストール済
これからやる作業
- PHP新規プロジェクト作成
- Laravel Promptsインストール
- PHPコード作成
- PHPコード実行
PHP新規プロジェクト作成
作業ディレクトリ内にPHP新規プロジェクト用のフォルダ「laravel-prompts」を作成して中に入ります。
mkdir laravel-prompts
cd laravel-prompts
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_01.png)
Laravel Promptsインストール
Laravel Promptsをインストールします。
composer require laravel/prompts
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_02.png)
textプロンプトの基本的な使い方
▼PHPコード(src/text.php)
<?php
require_once(__DIR__ . '/../vendor/autoload.php');
use function Laravel\Prompts\text;
$name = text('あなたの名前を入力してください。');
echo "{$name}さん、こんにちは!\n";
▼実行結果
ラベルとテキストボックスが表示され入力待ち状態になります。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_03.png)
適当に入力して[Enter]で確定します。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_04.png)
入力した内容が変数「$name」に格納され、
標準出力に表示されました。
プレイスホルダーの設定
▼PHPコード
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
);
▼実行結果
プレイスホルダーがグレーで表示されています。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_05.png)
デフォルト値、補足説明の追加
▼PHPコード
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
default: 'やまだ たろう',
hint: 'ここで入力した名前はプロフィールに表示されます。',
);
▼実行結果
デフォルト値が入力欄に、補足説明が下に表示されています。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_06.png)
入力必須設定
▼PHPコード
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
default: 'やまだ たろう',
hint: 'ここで入力した名前はプロフィールに表示されます。',
required: true,
);
▼実行結果
入力しないで確定すると「Required.」と警告が出ます。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_07.png)
入力必須メッセージ設定
▼PHPコード
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
default: 'やまだ たろう',
hint: 'ここで入力した名前はプロフィールに表示されます。',
required: "名前の入力は必須です。",
);
▼実行結果
指定した文字列が警告として表示されます。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_08.png)
バリデーション
▼バリデーション(アロー関数)
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
default: '',
hint: 'ここで入力した名前はプロフィールに表示されます。',
required: "名前の入力は必須です。",
validate: fn (string $value) => match (true) {
mb_strlen($value) < 3 => '3文字以上で入力してください。',
mb_strlen($value) > 40 => '40文字以内で入力してください。',
default => null
}
);
▼バリデーション(無名関数)
$name = text(
label: 'あなたの名前を入力してください。',
placeholder: 'ななし はらぺこ',
default: '',
hint: 'ここで入力した名前はプロフィールに表示されます。',
required: "名前の入力は必須です。",
validate: function (string $value) {
return match (true) {
mb_strlen($value) < 3 => '3文字以上で入力してください。',
mb_strlen($value) > 40 => '40文字以内で入力してください。',
default => null
};
}
);
▼実行結果(アロー関数も無名関数も同じです)
3文字未満だと警告が出ます。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_09.png)
40文字を超えても警告が出ます。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_10.png)
コマンド実行の強制終了
入力待ち状態で[Ctrl]+[C]を押すと強制終了できます。
![](https://macocci7.net/blog/wp-content/uploads/2024/03/laravel11_prompts_purephp_11.png)
プレイスホルダーや入力値は取り消し線表示され、
「Cancelled.」と表示されます。
今回は以上です。
次回はpassword、confirm、select、multiselectの使い方です。
コメント