PHP 開発者が知っておくべき 5 つのコンポーザに関するヒント

藏色散人
リリース: 2019-12-21 16:56:15
転載
2354 人が閲覧しました

Composer は、新世代の PHP 依存関係管理ツールです。この記事では、PHP 開発の利便性を高めるために、Composer を使用するための 5 つのヒントを紹介します。

PHP 開発者が知っておくべき 5 つのコンポーザに関するヒント

1. 単一のライブラリのみを更新する

特定のライブラリのみを更新し、そのすべての依存関係を更新したくありません。非常に簡単です。

composer update foo/bar
ログイン後にコピー

さらに、この手法は「警告メッセージの問題」を解決するためにも使用できます。次のような警告メッセージを見たことがあるはずです:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.
ログイン後にコピー

Rub、何が問題でしたか?慌てないで! Composer.json を編集すると、次のように表示されるはずです。たとえば、ライブラリの説明、作成者、その他のパラメータなどの詳細を追加または更新したり、スペースを追加したりすると、ファイルの md5sum が変更されます。 Composer は、ハッシュ値が Composer.lock に記録されているものと異なることを警告します。 ######だから何をすべきか? update コマンドはロック ファイルを更新できますが、いくつかの説明を追加するだけの場合は、ライブラリを更新しないでください。この場合、何も更新しないでください:

$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files
ログイン後にコピー

この方法では、Composer はライブラリを更新しませんが、composer.lock を更新します。更新コマンドでは何もキーワードではないことに注意してください。このパッケージが引き起こすものは何もありません。 foob​​ar と入力しても、結果は同じです。

使用している Composer バージョンが十分に新しい場合は、--lock オプションを直接使用できます:

composer update --lock
ログイン後にコピー

2.composer.json

を編集せずにライブラリをインストールします。ライブラリをインストールするたびにcomposer.jsonを変更するのは面倒だと思うかもしれないので、requireコマンドを直接使用できます。

composer require "foo/bar:1.0.0"
ログイン後にコピー

このメソッドは、新しいプロジェクトをすばやく開くためにも使用できます。 init コマンドには --require オプションがあり、composer.json を自動的に作成できます: (質問に答える必要がないように -n を使用していることに注意してください)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {
        "foo/bar": "1.0.0"
    }
}
ログイン後にコピー

3. 導出は簡単です

初期化時に、create-project コマンドを試してみましたか?

composer create-project doctrine/orm path 2.2.0
ログイン後にコピー

これにより、リポジトリのクローンが自動的に作成され、指定されたバージョンがチェックアウトされます。このコマンドは、元の URI を検索する必要がないため、ライブラリのクローンを作成するときに使用すると非常に便利です。

4. キャッシュを検討し、dist パッケージを優先する

過去 1 年の Composer は、ダウンロードした dist パッケージを自動的にアーカイブします。デフォルトでは、dist パッケージは、「symfony/symfony」:「v2.1.4」などのタグ付きバージョン、またはワイルドカードまたはバージョン範囲「2.1.*」または「>=2.2,<2.3-dev」に使用されます。 (最小安定性として安定性を使用する場合)。

dist パッケージは dev-master などのブランチにも使用できます。Github を使用すると、git で参照される圧縮パッケージをダウンロードできます。ソース コードを複製する代わりに tarball の使用を強制するには、インストールと更新の --prefer-dist オプションを使用できます。

以下は例です (実行時間を表示するために --profile オプションを使用しました):

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s
 
$ composer install --profile
Loading composer repositories with package information
Installing dependencies
  - Installing twig/twig (v1.12.2)
    Downloading: 100%
 
Writing lock file
Generating autoload files
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s
 
$ rm -rf vendor
 
$ composer install --profile
Loading composer repositories with package information
Installing dependencies from lock file
  - Installing twig/twig (v1.12.2)
    Loading from cache
 
Generating autoload files
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s
ログイン後にコピー

ここでは、twig/twig:1.12.2 の圧縮パッケージが ~/ に保存されています。 .composer /cache/files/twig/twig/1.12.2.0-v1.12.2.zip。パッケージを再インストールするときに直接使用します。

5. 変更する場合は、まずソース コードを作成します

ライブラリを変更する必要がある場合は、パッケージをダウンロードするよりもソース コードを複製する方が便利です。 --prefer-source を使用すると、クローン ソース コードの選択を強制できます。

composer update symfony/yaml --prefer-source
ログイン後にコピー

次に、ファイルを変更できます:

composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
    M Dumper.php
ログイン後にコピー

変更したライブラリを更新しようとすると、Composer は変更を中止するかどうかを確認するメッセージを表示します:

$ composer update
Loading composer repositories with package information
Updating dependencies
  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
    The package has modified files:
    M Dumper.php
    Discard changes [y,n,v,s,?]?
ログイン後にコピー

準備運用環境の場合

最後に、コードを運用環境にデプロイするときは、自動読み込みを最適化することを忘れないでください。

composer dump-autoload --optimize
ログイン後にコピー

インストール時に --optimize- を使用することもできます。パッケージのオートローダー。このオプションを使用しない場合、20% ~ 25% のパフォーマンスの低下が見られる可能性があります。

コンポーザー関連の技術記事の詳細については、

composer

列をご覧ください: https://www.php.cn/tool/composer/

以上がPHP 開発者が知っておくべき 5 つのコンポーザに関するヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート