PHPの開発者は、5つのヒントComposerを知っている必要があります

作曲は、PHP依存関係管理ツールの新世代です。この記事では、私はあなたに便利なPHPの開発をもたらし与えることを願って、利用Composerの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.

ラブ何が間違っていましたか?パニックにならないでください!あなたがcomposer.jsonを編集する場合は、そのような情報が表示されるはずです。たとえば、あなたが追加または更新などのライブラリの説明などの詳細は、作者、より多くのパラメータ、あるいは単にスペースのmd5sumは、ファイルが変更されます追加する場合。作曲は、説明します異なるハッシュ値と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.lockを更新します。キーワードは何もないupdateコマンドを注意してください。この結果は何もなく、パッケージの結果ではないではありません。あなたがfoobarにを入力した場合、結果は同じです。

あなたは作曲の十分の新しいバージョンを使用している場合は、直接--lockオプションを使用することができます。

composer update --lock

2.いかなる場合においても、編集composer.jsonのライブラリをインストール

あなたは、あなたが直接コマンドを必要と使用することができ、あなたは、各ライブラリがあまりにも多くの問題をcomposer.json変更する必要がありますインストールと思うかもしれません。

composer require "foo/bar:1.0.0"

この方法は、またすぐに新しいプロジェクトを開くために使用することができます。INITコマンド)が自動的に書き込みcomposer.jsonに--requireオプション:(注我々は-nを使用することがありますので、ご質問にお答えしません。

$ composer init --require=foo/bar:1.0.0 -n

$ cat composer.json

{

    "require": {

        "foo/bar": "1.0.0"

    }

}

3.簡単に派生

あなたはそれをコマンドプロジェクトを作成しようとしたときに初期化?

composer create-project doctrine/orm path 2.2.0

この自動的にクローン倉庫と指定されたバージョンを検出します。このコマンドは、非常に使いやすいですクローンライブラリーは、オリジナルのURIを検索する必要はありません。

4.キャッシュ考えてみましょう、distのパケットの優先順位付け

作曲は、あなたが昨年からdistのパッケージをダウンロードし、自動的にアーカイブされます。"v2.1.4"、バージョンまたはワイルドカードまたは間隔 "2.1 *" または "> = 2.2、<2.3-DEV":デフォルト設定、付加されたタグバージョンのDISTパッケージ、例えば、 "symfonyの/ symfonyの" に(あなたは最小の安定性と安定を使用している場合)。

Githubのは、あなたがアーカイブGitの参照をダウンロードすることができ、同様にdistのパッケージはまた、分岐DEV-マスターとして、使用することができます。圧縮の使用を強制するには、ソースコードのクローンを作成するのではなく、インストールを使用して--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

ここでは、小枝/小枝:1.12.2圧縮されたパケットは、〜/ .composer /キャッシュ/ファイル/小枝/小枝/ 1.12.2.0-v1.12.2.zipに格納されています。直接再インストールしたパッケージ。

5.ソースコードの優先順位を変更します

あなたはそれがソースコードのダウンロードパッケージをクローニングするよりも簡単であるとき、ライブラリを変更する必要がある場合。あなたは、ソースを選択したクローンソース--prefer強制的に使用することができます。

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%の性能低下を見つけることができます。

これらは、PHP開発者の詳細は作曲の5つのヒントを知っている必要があります

私は含めて、いくつかの情報をまとめたヘルプ皆、多くのPHPer常により多くのビジネスコードに方向音痴を書きません、私は上昇を開始する場所を知らない、高度な時間にいくつかの問題やボトルネックが発生し、に希望上記これらに限定されない:分散アーキテクチャ、拡張性の高い、高性能、高同時実行、サーバーのパフォーマンスチューニング、TP6、laravel、YII2、Redisの 、Swoole、Swoft、カフカ、MySQLの最適化、シェルスクリプト、ドッカー、マイクロサービス、nginxの、など高度な乾燥品のために必要な、より高度な知識が共有に皆のための自由であることができ、私は公式のグループに参加する必要があり、こちらをクリックしてください

おすすめ

転載: www.cnblogs.com/a609251438/p/12121938.html