Composerが使用する5つのテクニック-学習/実践


1.シーンの適用
主にComposerの5つの小さい技巧を使って、PHPプロジェクトの開発に便利をもたらします.
2.学習/操作
テキストを読む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を編集したら、このような情報が表示されるはずです.たとえば、ライブラリの説明、作成者、パラメータなどの詳細情報を追加または更新したり、スペースを1つだけ追加したりすると、ファイルのmd 5 sumが変更されます.その後、Composerはハッシュ値とcomposer.lockに記載されている違いを警告します.どうすればいいのでしょうか?updateコマンドはlockファイルを更新できますが、いくつかの説明が追加されている場合は、ライブラリを更新するつもりはありません.この場合、update nothing:
$ 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を更新します.注意nothingは、updateコマンドのキーワードではありません.ただnothingというバッグによる結果はありません.foobarを入力すると、結果も同じです.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パッケージは、ダウンロードしたdistパッケージを自動的にアーカイブします.デフォルトでは、distパケットは、tagを追加したバージョン、例えば"symfony/symfony": "v2.1.4"、またはワイルドカードまたはバージョン区間、"2.1.*"または">=2.2,<2.3-dev"(stableminimum-stabilityとして使用する場合)に使用されます.distパケットはdev-masterのようなブランチにも使用でき、Githubはgit参照の圧縮パケットをダウンロードすることができます.ソースコードをクローンするのではなく、圧縮パッケージを強制的に使用するには、installおよびupdate--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-autoloaderを使用できます.このオプションを追加しないと、パフォーマンスの損失が20%から25%になる可能性があります.ヘルプが必要な場合や、コマンドの詳細を知りたい場合は、公式ドキュメントや中国語ドキュメントを読むか、JoliCodeが作成したこのインタラクティブなメモを見ることができます.
3.質問/補足
3.ネットワークに露出する位置情報TBDを回避する方法
4.参考
原文アドレス:5 features to know about Component PHP訳文アドレス:PHP開発者が知るべき5つのComponentのコツ
追加
...