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 update nothing Loading composer repositories with package information Updating dependencies Nothing to install or update Writing lock file Generating autoload files
これにより、Composerはライブラリを更新しませんが、
composer update --lock
2.
composer require "foo/bar:1.0.0"
この方法は、新しいプロジェクトを迅速に開くためにも使用できます.
$ 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. キャッシュを考慮すると、
$ 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
ここで、
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
パッケージを取り付けるときも同様に
3.質問/補足
3.ネットワークに露出する位置情報TBDを回避する方法
4.参考
原文アドレス:5 features to know about Component PHP訳文アドレス:PHP開発者が知るべき5つのComponentのコツ
追加
...
主に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"
(stable
をminimum-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のコツ
追加
...