私たちは常に急いでおり、できるだけ早く開発したいと考えており、古い習慣を採用して古いソフトウェアを構築してしまうことがよくあります。大いに改善できる項目は、環境と呼ばれるこの小さなものです。 』について、もう少し理解してみましょう。
まず第一に、ここではlaravelの構成の概念に焦点を当てて説明したいと思います。リソースなどの残りのパターンについては気にしません。
1 - 知識を求めよう!
少し前に、私のクレイジーなコード内ではこの ENV パスを実行できないと聞きました。おお
したがって、目的は理由を理解することです。そうすることで、エンジニアとしてより良い意思決定を行うことができるからです。
1.1 - 正しい方法または視点?
それでは、さあ、小さな未来のマスター、環境変数に値を入れて遊んでみましょう。それで、それを次のように呼びましょう:
最初のポイントに行きましょう。この構成を環境変数として配置するという素晴らしい決断です。この方法により、さまざまな環境 (運用、承認、環境がある場合) の管理がすべて簡単になり、さらに安全になります。リポジトリ (git/bitbucket) でいたずらな git Push を実行しても公開されません。あなたの水の秘密がインターネット上に漏洩するなんて想像できますか、なんと悲しいことでしょう
。Laravel でこの値を取得するには、env() メソッドを使用するか、Illuminate の Support などの別のパッケージを使用することもできます (ミニオンを思い出しますが、理由はわかりません?)
env: Laravel ヘルパー ( Env::get を使用します)
Env::get: Support Illuminate パッケージの Env クラス
わあ、準備はできたのに、なぜファッションを発明し続けるのですか?実のところ、これは良い考えではありません。その理由はすぐに説明しますので、お付き合いください。
別の解決策として、作成された environment の値を取得する構成ファイルについて言及できます。そのため、構成ファイルは一元化されており、真剣に考えてください。コードを読むのにはるかに優れています。
この特定の状況では、services.php という既存の構成ファイルをすでに使用できますが、特定のコンテキスト用のファイルを作成することを妨げるものはありません。
パス config/services.php
したがって、コード内で次のように呼び出します:
2 - すばらしいですが、変数を取得するには、変数を直接フェッチするだけではなく、なぜ設定を使用する必要があるのでしょうか?
いくつかの理由を示してみます:
2.1 - パフォーマンスの向上と IO の有効活用
次の状況について考えてください。本番環境に常にアクセスされ、大量の IO が実行されるファイルがありますか。これにより、マシン リソースが増加し、状況によってはシステムの速度が低下しますか? (信じてください、実際に問題を見つけるまで、自分の知識すべてが問われるようなことを経験することになります)
本番環境について話すときは、美しい設定ファイルをキャッシュすることをお勧めします。Laravel では、artisan を使用できます。
php artisan config:cache
この美しいコマンドは、すべての構成ファイルとそれぞれの値を取得して単一の php ファイルにコンパイルし、パフォーマンスを向上させます。これは、IO 数が 1
に減少するためです。Curiosity: このコマンドを使用すると、この関数が無効になるため、env() は NULL を返し始めます。したがって、"Neida" からの env() が機能しなくなったら、それで終わりです。
Env() IO 操作を実行すると、コストが高く、時間がかかります。
環境が必要になるたびにこの操作を実行するのではなく、アプリケーションの開始時にこの操作を 1 回実行することをお勧めします。
2.2 - 可能な限り最良の方法での組織化と標準化
すべての設定を必要に応じて簡単に維持できます。必要な犬の名前を入力し、フォルダーを作成し、すべての配列を必要に応じて構造化することもできます。これにより、構造がよりきれいになります (適度に使用してください)
例えば:
このキーを見てください:
そして次のキーを見てください:
私の謙虚な意見では、1 番目の方がはるかに優れています。
さらに、同様の構成をコード内に「ランダムに」配置することなく、適切かつ一元的な場所に配置できます。アプリケーションにとって完全に意味のある配列を構築するというこのアイデアがとても気に入っています。
また、新しい開発者向けのガイダンスは、新しい設定を行う場所と方法を伝えることができるため、はるかに簡単です。
シンプルにして、周りと差をつけよう!
これまでありがとうございました。
ソース:
Laravel 11 ドキュメントの構成
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3