[Laravel 6.x]Route::get()で設定したURLパラメーターの取得
Laravel6.xでRoute::get('/path/to/{id}')で設定したidの取得方法について。
Gitは常に bash シェル内で実行されます。
また、それがどのように動作するかを決定するために、多くのシェル環境変数を使用しています。
場合によっては、これらの環境変数が何であるか、Gitを望み通りに動かすためにどんなふうに使用できるかを知っていた方が便利です。
このリストは、Gitが参照する環境変数すべてを網羅してはいませんが、もっとも有用なものを取り上げています。
Gitのコンピュータプログラムとしての一般的な動作の中には、環境変数に依存しているものがいくつかあります。
Gitがサブプログラム(git-commit や git-diff など)を探すディレクトリを決定します。 git --exec-path で現在の設定を確認できます。
通常カスタマイズされることを考慮されてはいません(他にこの変数に依存しているものがありすぎる)が、Gitはこのディレクトリからグローバル設定ファイルを探します。
Gitを完全にポータブルな状態でインストールしたいなら、グローバル設定をすべて埋めた上で、ポータブルなGitのシェルプロファイルで HOME を上書きできます。
HOMEと似ていますが、こちらはシステム全体の設定です。 Gitはこのファイルを $PREFIX/etc/gitconfig から探します。
設定すると、システム全体の設定ファイルを無効にします。
これは、コマンドの実行にあたってシステム全体の設定が邪魔になるが、それを変更したり削除したりするアクセス権がない場合に便利です。
コマンドラインで複数ページにわたる出力を表示する際に使用されるプログラムを制御します。
設定されていない場合、PAGER が代わりに使用されます。
テキスト(例えばコミットメッセージ)を編集する必要があるときにGitから起動されるエディタです。
設定されていない場合、 EDITOR が代わりに使用されます。
Gitは、Gitと現在のリポジトリとのインタフェース方法を決定するのに、いくつかの環境変数を使用します。
.git フォルダの場所です。
指定されていない場合、Gitはディレクトリツリーを ~ または / にたどり着くまで上っていき、各ディレクトリで .git ディレクトリを探します。
.git ディレクトリを探す際の動作を制御します。
読み込みが遅いディレクトリにアクセスしている場合(例えばテープドライブ上のディレクトリや、低速なネットワーク越しにアクセスしている場合)、Gitが自動で停止するのを待たずに試行を停止させたくなることもあると思います。
特に、シェルプロンプトを構成している最中にGitが呼ばれた場合はそうでしょう。
ベアリポジトリ以外のリポジトリで、ワーキングディレクトリのルートとなる場所です。
指定されていない場合、 $GIT_DIR の親ディレクトリが代わりに使用されます。
インデックスファイルのパスです(ベアリポジトリ以外でのみ使用されます)。
通常 .git/objects にあるディレクトリの場所を指定するのに使用できます。
GIT_OBJECT_DIRECTORY にオブジェクトがなかった場合にチェックに行く場所を指示するのに使います。
コロン区切りのリスト( /dir/one:/dir/two:… のような書式)で指定します。
大量のプロジェクトに、全く同じ内容の巨大なファイルがあるという状況で、そのファイルを大量に重複して保存したくない場合に、これが利用できます。
pathspec とは、Gitに何かのパスを指定する方法のことで、ワイルドカードの使用法などが含まれます。
以下の環境変数は .gitignore ファイルだけでなく、コマンドライン( git add *.c など)でも使用されます。
pathspec において、ワイルドカードのデフォルトの動作を制御します。
GIT_GLOB_PATHSPECS に1がセットされている場合、ワイルドカード文字はワイルドカードとして働きます(これがデフォルトの挙動)。
GIT_NOGLOB_PATHSPECS に1がセットされている場合、ワイルドカード文字はそれ自身にのみマッチ、つまり *.c は .c で終わる名前のファイルすべてではなく、 “*.c” という名前の ファイルにのみマッチします。
pathspec に :(glob) や :(literal) を、 :(glob)*.c のように指定することで、個々のケースに対してより優先的な設定を行うこともできます。
上記の振る舞いを両方とも無効にします。ワイルドカード文字は機能を停止し、オーバーライド接頭辞も無効化されます。
すべての pathspec が大文字小文字を区別せず処理するように設定します。
Gitのコミットオブジェクトは通常、最終的に git-commit-tree によって作成されます。
このコマンドは、以下の環境変数に設定されている情報を優先的に使用します。これらの環境変数が存在しない場合にのみ、設定ファイルの値が代わりに使用されます。
author フィールドに使用される、人間に読める形式の名前です。
author フィールドで使用するメールアドレスです。
author フィールドで使用するタイムスタンプです。
committer フィールドで使用する人名です。
committer フィールドで使用するメールアドレスです。
committer フィールドで使用するタイムスタンプです。
設定値 user.email が設定されていない場合に代わりに使用されるメールアドレスです。 この環境変数自体が 設定されていない場合、Gitはシステムのユーザ名とホスト名を代わりに使用します。
Git はHTTP越しのネットワーク操作に curl ライブラリを使用しています。
そのため、 GIT_CURL_VERBOSE はそのライブラリが生成するメッセージをすべて出力するようGitに指示します。
これはコマンドラインで curl -v を実行するのと似たようなものです。
SSL証明書の検証を行わないようにGitへ指示します。
これは、GitリポジトリをHTTPS経由で利用するために自己署名証明書を使っている場合や、Gitサーバーのセットアップ中で正式な証明書のインストールが完了していない場合などに必要になります。
あるHTTP操作のデータレートが秒間 GIT_HTTP_LOW_SPEED_LIMIT バイトより低い状態が、GIT_HTTP_LOW_SPEED_TIME 秒より長く続いた場合、Gitはその操作を中断します。
これらの環境変数は設定ファイルの http.lowSpeedLimit および http.lowSpeedTime の値より優先されます。
GitがHTTPで通信する際のuser-agent文字列を設定します。 デフォルトの値は git/2.0.0 のような内容です。
これは名前の付け方に少し問題ありと言えます。 有効な値は -u <n> または --unified=<nv だけです。これは、 git diff コマンドで表示されるコンテキスト行の行数を制御します。
設定ファイルの diff.external の値をオーバーライドします。 設定されている場合、ここで指定したプログラムが git diff の実行時に呼び出されます。
GIT_EXTERNAL_DIFF または diff.external で指定したプログラムの内部で使用すると便利です。
前者は、処理中の一連のファイルの中で何番目のファイルの差分を処理しているか(1から始まる数値)、後者は処理中の一連のファイルの総数です。
再帰的なマージ戦略の出力を制御します。 指定できる値は以下の通りです。
0 | 何も出力しません。例外として、エラーがあった場合はエラーメッセージを1つだけ出力します。 |
---|---|
1 | マージコンフリクトのみ表示します。 |
2 | ファイルの変更点のみ表示します。 |
3 | 変更がなく処理をスキップしたファイルを表示します。 |
4 | 処理されたパスをすべて表示します。 |
5 | 5 以上を指定すると、上記のすべてに加えて詳細なデバッグ用の情報を表示します。 |
デフォルト値は2です。
Gitが何をしているか、 本当に 知りたいですか? Gitには、組み込みのトレースのほぼ完全なセットが備わっており、ユーザがする必要があるのは、それらをオンにすることだけです。 これらの環境変数に設定可能な値は次の通りです。
“true”、“1”、“2” – 対象のカテゴリのトレースは標準エラー出力へ書き出されます。
/ から始まる絶対パス文字列 – 対象のトレースの出力はそのファイルへ書き出されます。
どの特定のカテゴリにも当てはまらない、一般的なトレースを制御します。
これには、エイリアスの展開や、他のサブプログラムへの処理の引き渡しなどが含まれます。
パックファイルへのアクセスに関するトレースを制御します。
最初のフィールドはアクセスされているパックファイル、次のフィールドはそのファイル内でのオフセットです。
ネットワーク操作におけるパケットレベルのトレースを有効にします。
性能データのログ出力を制御します。 ログには、一つ一つのGit呼び出しにかかった時間が出力されます。
Gitがリポジトリや環境を操作する際に何を見ているかを表示します。
指定されている場合、GitがSSHホストへ接続する際に ssh の代わりに呼び出されるプログラムです。
これはのように呼び出されます。
注意事項として、これは ssh の呼び出し方をカスタマイズする最も手軽な方法というわけではありません。
追加のコマンドラインパラメタがサポートされないので、ラッパースクリプトを書いて、
GIT_SSH がそのスクリプトを指すようにする必要があります。 その場合は単に ~/.ssh/config ファイルを使用する方が簡単でしょう。
設定ファイルの core.askpass の値をオーバーライドします。
これはユーザによる認証情報の入力が必要なときに呼び出されるプログラムで、コマンドライン引数としてプロンプトのテキストを受け取り、応答を標準出力へ返すようになっている必要があります。
(このサブシステムの詳細については 認証情報の保存 を参照してください)
名前空間内の参照へのアクセス制御を行います。これは --namespace フラグと同様です。
これがもっとも便利なのは、サーバーで一つのリポジトリの複数のフォークを単一のリポジトリへ格納したいが、参照だけは別々に分けておきたい場合です。
Gitに非バッファI/Oを使用するように強制します。標準出力への書き出しを逐次的に行いたい場合に使用します。
1を設定すると、Gitは出力をより頻繁にフラッシュします。0を設定すると、すべての出力がバッファリングされます。
デフォルト(この環境変数が設定されていない場合)では、動作と出力モードに合わせて適切なバッファリングスキームが選択されます。
reflogへ出力される説明用のテキストを指定できます。