作曲家グローバルは有害と見なされる必要がありますか?
キーポイント
- グローバルにインストールされているパッケージに依存関係がない限り、複数のプロジェクトに使用されるパッケージをインストールするための悪い慣行と見なされています。これは、パッケージが同じスペースを共有すると、依存関係の競合が発生する可能性があるためです。
composer global require
別のソリューションは、各コマンドラインツールを - 、手動で管理する
composer require
、またはバイナリファイルを使用して独自のローカルプロジェクトにインストールすることです。ただし、これは複雑さと退屈さを追加することができます。グローバルコマンドへの推奨される変更は、「グローバル」であるが孤立したプロジェクトが特定の場所にインストールされ、ベンダーとビンディレクトリが通常の場所に表示される場合があります。$PATH
新しいツールCGR(Composer Global Reams)は、グローバル実装の代替として開発されました。グローバルな依存関係の問題を回避し、各パッケージの孤立したインストールを作成します。ただし、このツールはまだ概念実証段階にあり、変更される可能性があります。テストすることをお勧めしますが、現時点ではあまり依存しすぎないでください。
を使用して提唱してきました。それから、ある日、私はこの議論に出会いました。 composer global require
要するに、ほとんどの人は、グローバルにインストールされたパッケージに依存関係がない限り、グローバルな要求は悪い練習であると考えているようです。技術的には、これはすべてのプロジェクトに単一の環境を使用するときに理にかなっていますが、その議論でコメントしたように、各プロジェクトが仮想マシンまたはDockerのような適切に孤立した環境を使用する場合、この問題は無関係であり、全体的な状況は実際にはありませんダメージを引き起こします。
opです
別の方法として、ユーザーは
を使用して各コマンドラインツールを独自のローカルプロジェクトにインストールし、またはバイナリファイルを手動で管理する必要があります(たとえば、binディレクトリから既に存在することにより、シンボリックリンクを作成する必要があります)。
composer require
$PATH
私にとって、これはまったく受け入れられない合併症です。作曲家は、使いやすく、パッケージ管理の初心者に優しいものになるため、常にPHPの誇りでした。シンボルリンクを周囲に作成する必要があります(特に、Windowsのような非シンリンクのオペレーティングシステムを考慮すると)。次に、OPはさらに、グローバルコマンドがどのように機能するかを変更することを示唆しています:$PATH
「グローバル」が孤立したプロジェクトは、そのベンダーとビンディレクトリに通常の場所に表示され、ディレクトリの内容を
完全に同意します。グローバルにインストールされた各コンポーザーを独自の検疫ディレクトリにインストールし、他のグローバルにインストールされているパッケージと潜在的に矛盾するのではなく、独自の検疫依存関係を持つことができるのは驚くべきことです。~/.composer/global/[something]
でミラーリングできます(Symlinkを通じて) 、またはより良いオプションは~/.composer/global/[something]/bin
である場合があります。文字列は、さまざまな方法で選択できます。~/.composer/vendor/bin
~/.composer/bin
[something]
私はこのアプローチに完全に同意します、それは両方の世界の中で最高のようです。明らかに、これはいくつかの後方互換性の問題を引き起こす可能性がありますが、それは作曲家のバージョン2.0で発生しないという意味ではありません。 Taylor Otwellは、以下のこの見解にさらに応答します:org/project
~/.composer/global/org/project/vendor/org/project
この後、The True Open Source Spiritで、OPは代替グローバル実装を別のツールに構築します:Cgr。それがどのように機能するか見てみましょう。
が必要です ホームステッドの改善されたインスタンスで次のすべてのコマンドを実行しますCGRを開始するには、グローバルパッケージとしてインストールします。 作曲家のビンフォルダーがパス変数にない場合は、CGR - Composer Globalには代替
上記のコマンドは、ComposerのGlobal Bin Directoryのパスを使用して
環境変数を拡張します(Homesteadのデフォルトの場所が改善されました - 場所は異なる場合があります)。 2番目のコマンドは、CGRが使用するBINディレクトリを構成し、3番目のコマンドはこれらの変更をロードします。また、これらは、端子インターフェイスがそのユーザーとして実行されるたびに自動的にロードされます(私の場合は、Viveviveを使用して)。
その後、CGRにアクセスしてcomposer global require consolidation/cgrログイン後にコピーログイン後にコピーを実行できます。これにより、Composerの一般的なヘルプファイルが出力されます。
グローバルコンポーザーパッケージを適切にインストールしますecho "export PATH=$PATH:$HOME/.composer/vendor/bin/" >> ~/.bashrc echo "export CGR_BIN_DIR=$HOME/.composer/vendor/bin" >> ~/.bashrc source ~/.bashrcログイン後にコピーHomesteadが改善された場合、有用なエイリアスが構成されています。このエイリアスは、
をインストールするときに非常に便利なため、ルートフォルダーから実行できます。 PHPunitのグローバルインストールをテストするには、最初にこのエイリアスを削除する必要があり(対応するラインに$PATH
タイピングがvagrant ssh
に拡張されます。これは、各プロジェクトににコメントします)、シェルを終了して再入力して、エイリアスがリロードされるようにします。次に、バージョン出力を使用してPHPunitのこの新しいグローバルインストールを実行すると、次のようなものが生成されるはずです。
2つの互換性のないパッケージをインストールしてみましょう。cgr
もちろん、それらはすべて正常にインストールできます。彼らが働いているかどうかを確認しましょう。cgr phpunit/phpunitログイン後にコピーcomposer global require consolidation/cgrログイン後にコピーログイン後にコピーすべてがうまくいきます!依存関係の不一致のために以前に矛盾していたグローバルパッケージは、今では並んで共存し、問題なくオペレーティングシステム全体で使用できるようになりました!
このツールは何をすべきか/できないものは何ですか?
場合によっては、Composerプラグインをインストールする場合があります。制限セクションで述べたように、これらのプラグインは、各グローバルパッケージを独自のフォルダーにインストールし、独自の依存関係ツリーを持っているため、すべてのグローバルプロジェクトでグローバルに利用できません。したがって、Composerの共通の動作を変更するプラグインをインストールする場合は、CGRの代わりに
composer global require
を使用する必要があります。たとえば、CGR自体はそのようなプラグインです。次は何ですか?
テスト、テスト、テスト! Global Reackコマンドの頻繁なユーザーである場合、この新しいツールをテストし、グローバルなニーズを満たしている金額と改善があるかどうかについてのフィードバックを与えることを強くお勧めします。
このツールは現在、概念の証明のみであり、実装が名前が変更され、再パッケージ化され、最終的には作曲家のコアに統合されている場合があることに注意してください。言い換えれば、できる限り使用しますが、当面は過度に依存しないでください。
グローバルパッケージがインストールされている間、
作曲家グローバルに関するFAQはcomposer global require
についてどう思うか教えてください。多くの人が今考えているのと同じくらい有害ですか?それとも、それは慎重であり、孤立した開発環境を持っているだけの問題ですか?ほかに何か?以下にコメントを表明してください!です
作曲家のグローバルな要件を使用することが有害と見なされるのはなぜですか?作曲家のグローバルな要件は、依存関係の競合につながる可能性があるため、有害と見なされます。パッケージをグローバルにインストールすると、それらはすべて同じスペースを共有します。つまり、同じ依存関係のセットを共有します。 2つのパッケージに同じ依存関係の異なるバージョンが必要な場合、競合やエラーにつながる可能性があります。このような問題を回避するために、各プロジェクトの独自の依存関係セットをインストールすることをお勧めします。
Composer Globalの代替手段は何ですか?
Composerのグローバル要件を使用しないでください。必要な各ツールに新しいComposerプロジェクトを作成できます。これにより、各ツールには独自の依存関係があり、競合のリスクが低下します。また、CGRなどのツールを使用して、各パッケージに分離されたインストールを作成し、グローバルな依存関係の問題を回避できます。
CGRグローバルな依存関係の問題を回避するにはどうすればよいですか?
CGR(Composer Global Reams)は、各パッケージに孤立したインストールを作成するためのツールです。これは、各パッケージとその依存関係が独自の個別のディレクトリにインストールされ、異なるパッケージの依存関係間の競合のリスクを回避することを意味します。これにより、Composer Global Reamsを使用するためのより安全な代替手段になります。
CGRのインストールと使用方法は?
cgrをインストールするには、コマンド
composer global require consolidation/cgr
を使用できます。インストール後、CGRを使用して、Composerのグローバル要件を使用できます。たとえば、パッケージをインストールするには、コマンドcgr require package-name
を使用できます。作曲家のローカルインストールとグローバルインストールの違いは何ですか?
作曲家では、ローカルインストールとは、パッケージとその依存関係がプロジェクトのディレクトリにインストールされていることを意味します。これは、依存関係の競合を回避するため、パッケージをインストールする推奨方法です。一方、グローバルインストールは、グローバルディレクトリにパッケージとその依存関係をインストールします。これにより、異なるパッケージに同じ依存関係の異なるバージョンが必要な場合、競合につながる可能性があります。
作曲家のグローバル依存関係を管理する方法は?
作曲家のグローバル依存関係を管理することは、紛争のリスクがあるため困難な場合があります。ただし、CGRのようなツールは、各パッケージの孤立したインストールを作成することで役立ちます。また、必要なツールごとに新しいコンポーザープロジェクトを作成し、各ツールに独自の依存関係セットがあることを確認することで、グローバル依存関係を管理することもできます。
作曲家にローカルとグローバルの両方のインストールを使用できますか?
はい、Composerでローカルとグローバルの両方のインストールを使用できます。ただし、依存関係の競合を回避するために、可能な場合はローカルインストールを使用することをお勧めします。グローバルにパッケージを使用する必要がある場合は、CGRなどのツールを使用して孤立したインストールを作成することを検討してください。
作曲家の依存関係を誤って管理するリスクは何ですか?
作曲家の依存関係を誤って管理すると、競合やエラーにつながる可能性があります。 2つのパッケージが異なるバージョンの同じ依存関係を必要とする場合、問題のデバッグが困難になる可能性があります。また、依存関係の異なるバージョンが異なる機能と動作を持つ可能性があるため、アプリケーションの予期しない動作を引き起こす可能性があります。
作曲家の依存関係の競合を解決する方法は?
Composerの依存関係の競合を解決するには、競合が解決する可能性があるため、パッケージを最新バージョンに更新しようとすることができます。これがうまくいかない場合は、使用しているパッケージを再考し、矛盾する依存関係がない代替品を見つけたいかもしれません。 CGRのようなツールは、各パッケージの孤立したインストールを作成することでも役立ちます。
作曲家の依存関係を最新に保つにはどうすればよいですか?
作曲家の依存関係を最新の状態に保つには、
composer update
コマンドを使用できます。これにより、composer.json
ファイルで指定されたバージョンの制約に基づいて、すべてのパッケージが最新バージョンに更新されます。また、新しいバージョンで使用できるパッケージを確認することもできます。composer outdated
以上が作曲家グローバルは有害と見なされる必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...
