2016-12-16 6 views
1

Composerの使用について私が理解していないことがあります。明確にするために、私はWindows 10とwampstackパッケージから作業しています。 ..wampstck .. \ phpの内部Composerを使用するとファイルが多すぎますか?

私はPackagistからcheckdomain /休日をダウンロードした一つのプロジェクトのために、既存のフォルダ\ベンダー

をこすりました。 \ vendorをapache2 \ htdocsに移動し、最終的にそれを転送し、他の ファイルをFTP経由で、すべてが正常に動作する外部Webサイトに転送しました。

私は別のパッケージのphpmailer/phpmailerと全く同じ手順を実行しました。しかしこの場合、\ vendorにはメーラだけでなく、私が数週間触れていなかった以前のcheckdomain/holidayのファイルも含まれていました。

\ vendorにサブフォルダ\ composer、\ phpmailer、\ checkdomainが含まれているようです。後者の2つのサブフォルダには、composer.jsonというファイルが含まれています。 には、そのプロジェクトに関連する資料が含まれています。

\ベンダー\作曲しかし(私が見てきた他のすべてのパッケージには、真実では、と)、phpmailerのを指しinstalled.jsonと呼ばれるファイルが含まれていcheckdomain

私は2つの質問があります。

  1. コマンドプロンプトで と書いて、私がPackagistから新しいパッケージを呼び出す前に、\ C:.... \ php \ vendorフォルダをこすったら、コンポーザにはphpmailer/phpmailerが必要です何かについて、そしてそれは\ checkdoainパッケージをダウンロードすべきであるということです。

  2. 私は明らかに、プロジェクトで必要としないウェブサイトに情報が出ています。私はFTP \ vendorをウェブサイトにアップロードしますが、それには フォルダ\ composerが含まれています。このファイルにはinstalled.jsonという名前のファイルがあります。このファイルには以前のプロジェクトに関する情報が含まれているため、

答えて

3

プロジェクトの依存関係、クラスマップ、およびその他の定義は、プロジェクトのcomposer.jsonファイルに保存されています。プロジェクトルートにいて、composer require packageと入力すると、composer.jsonファイルが新しい要件で更新されます。あなたの最初の質問に答えるために、この依存関係はおそらくあなたのプロジェクトのcomposer.jsonファイルに存在するか、またはcomposer.jsonファイルのphpmailerへの依存として存在するでしょう。あなたは新しい環境にcomposer.lockcomposer.jsonをコピーして、同じパッケージのバージョンをインストールするcomposer installを入力することができるように

現在インストールされているパッケージは、composer.lockで追跡されています。理想的には、ベンダのフォルダを新しい環境にコピーするのではなく、FTPアクセス以上のものがあれば、これを実行するのが理想的です。

あなたはこのすべてを考えすぎていると思うので、Composerにパッケージを管理させ、ファイルを手動で管理しないようにしてください。 Composerのポイントは、パッケージとその依存関係を管理することです。あなたの2番目の質問に答えるために、いくつか余分な小さなファイルを転送するのはなぜ重要ですか?ちょうどあなた自身のために不必要な頭痛を作り出しているようです。

要するに、ベンダーディレクトリ内のファイルを削除または変更しないでください。依存関係を削除する方法は、コマンドラインツールcomposer remove packageまたはcomposer.jsonを編集し、composer updateで更新することです。

関連する問題