Laravel のインストール直後にインストールされたバージョンを自動で表示させる方法
注意書き
ややマニアな方向けの記事となっております。(改造は、自己責任でお願いします)
前書き
Laravel をインストールした直後、まず私の場合何をするかと言うと、インストールされたバージョンを調べます。もっとも、私に限らず、皆様どこかの段階でするのではないでしょうか。
Laravel のバージョンは、プロジェクトのルートで
php artisan --version
又は
php artisan -V
で調べられる訳ですが、それが地味に面倒と感じる年頃だったりします。😣
そこで、インストール直後にインストールされたバージョンが表示されるようにしてみました。
Laravel のインストール方法には
- Laravel インストーラを使ってインストール
- composer を使ってインストール(プロジェクトは既にあり)
- composer を使ってインストール(新規にインストール)
のパターンがあると思いますが、3番目は流石に本体で対応していただかないと、という感じですので、この記事では対象外です。
言い換えると、
composer create-project laravel/laravel project_name
のインストール方法には非対応です。
composer を使ってインストール(プロジェクトは既にあり)の場合
普段、テンプレートとなるプロジェクトファイルを用意していて、そのプロジェクトファイルを元にインストールする場合です。(vendor だけが無い状態)
この場合、
composer install
又は
composer update
などでインストールすると思います。この場合は、composer.json に以下を追加します。
"scripts": {
// 略
"post-install-cmd": [
"@php artisan --version"
],
"post-update-cmd": [
"@php artisan --version"
]
}
これで、インストール直後にインストールされたバージョンが表示されます。
Package manifest generated successfully.
81 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan --version
Laravel Framework 9.5.1 ← ここ!
Laravel インストーラを使ってインストールする場合
(注意)
Laravel インストーラをバージョンアップすると、当然ここで行った改造は消えてしまいます。
なお、Laravel Installer 4.2.10 で動作を確認しています。
という事で、
laravel new project_name
でインストールする場合の話です。まず、Laravel インストーラの一式が保存された場所を探します。
私の場合は、ホームディレクトリの .config/composer/vendor/laravel/installer というフォルダにインストールされています(が、皆様の場合 .composer/ 以下などにあるかも知れません)。更にこの中の src/NewCommand.php を改造します。
140行目辺りの $output->writeln(...) の上に、chdir() と runCommands() の2行分追加します。
chdir($directory);
$this->runCommands([PHP_BINARY.' artisan --version'], $input, $output);
$output->writeln(PHP_EOL.'<comment>Application ready! Build something amazing.</comment>');
}
これで、Laravel インストーラを使ってインストールすると、インストール後、下記のようになります。
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
No publishable resources for tag [laravel-assets].
Publishing complete.
> @php artisan key:generate --ansi
Application key set successfully.
Laravel Framework 9.5.1 ← ここ!
Application ready! Build something amazing.
これで開発も捗りますね!😀
ちなみに
Laravel インストーラを使ってインストールし始めたその瞬間、チラリとバージョン情報が見えたりしますが、これは、上記の Laravel フレームワーク(laravel/framework)のバージョンとは別物です。
こちらは、プロジェクトの土台(ユーザー側ファイル)(laravel/laravel)のバージョンですので、通常言う Laravel のバージョンとは別物になります。
_ _
| | | |
| | __ _ _ __ __ ___ _____| |
| | / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V / __/ |
|______\__,_|_| \__,_| \_/ \___|_|
Creating a "laravel/laravel" project at "./hoho8"
Info from https://repo.packagist.org: #StandWithUkraine
Installing laravel/laravel (v9.1.2) ← ここ!
雑感
上記の Laravel インストーラに改良を加える件、調子に乗ってプルリク送ってみましたが、あえなく空振り(マージされず)に終わりました。
https://github.com/laravel/installer/pull/222
また次回頑張ります。
不具合等見つけたらコメント下さい。
Discussion