2016-12-16 79 views
1

有些東西我不明白使用Composer。要清楚,我正在使用Windows 10和wampstack軟件包。使用Composer時文件過多?

內..wampstck .. \ PHP我擦任何現有的文件夾\供應商

對於一個項目,我下載checkdomain /假期從Packagist。然後,我將\ vendor發送到apache2 \ htdocs,最後通過FTP將其它文件和其他 文件轉移到一切正常的外部網站。

然後我爲另一個包phpmailer/phpmailer做了完全相同的操作。但是,在這種情況下,供應商不僅包含郵件的文件,還包含早幾個星期沒有觸及的checkdomain/holiday。

看來,\供應商現在包含子文件夾\ composer,\ phpmailer和\ checkdomain。後兩個子文件夾包含一個文件composer.json,其中明確包含與該項目相關的材料,而不包含其他內容。然而

\供應商\作曲家含有一種叫installed.json是指PHPMailer的,checkdomain文件(和,說實話,我剛纔看了一下所有其他包)

我有兩個問題:

  1. 如果我在Packagist中通過在命令提示符下書寫 > Composer需要phpmailer/phpmailer,然後在我打電話給文件夾\ C:.... \ php \ vendor之後,系統如何知道任何關於,並且它應該下載\ checkdoain軟件包。

  2. 我清楚地知道有關該項目不需要的網站信息。我FTP \供應商的網站,但它包含一個 文件夾\作曲家,這個文件名爲installed.json其中包含有關以前的項目和不需要的信息。

回答

3

您項目的依賴項,類映射和其他定義存儲在項目的composer.json文件中。當您在項目根目錄下並輸入composer require package時,composer.json文件將更新爲新的需求。要回答你的第一個問題,這個依賴關係可能仍然存在於你的項目的composer.json文件中,或者它作爲phpmailer的composer.json文件依賴項存在。

當前已安裝的包被跟蹤在composer.lock,這樣你就可以複製composer.lockcomposer.json到一個新的環境,並鍵入composer install安裝相同版本的包。理想情況下,您可以這樣做,而不是將供應商文件夾複製到新環境中(前提是您的FTP訪問權限不止)。

我認爲你是在反思這件事情,讓Composer管理軟件包,不要手動管理文件。 Composer的要點是爲您管理軟件包及其依賴關係。要回答第二個問題,爲什麼轉移一些額外的小文件很重要?就好像你爲自己創造了不必要的頭痛。

總之,不要刪除或修改供應商目錄中的文件。刪除依賴項的方法是通過命令行工具:composer remove package或編輯composer.json並使用composer update更新。

相關問題