2014-03-03 221 views
1

我已經安裝了作曲家。我在哪裏把composer.json

我的項目目錄樹看起來像這樣

/home/myproject/public_html/myproject.com 

我最初安裝它:

/home/myproject/public_html/myproject.com/bin/composer/ 

但後來搬到了:

/home/myproject/usr/local/bin/composer 

問題:

  1. 在哪裏創建composer.json?
  2. 在他們提到的官方文檔,爲了安裝我需要寫一個要求在該文件中的JSON格式鍵,這是否意味着我沒有新的包必須通過FTP上傳的包?
  3. 該文檔進一步說,我可以簡單地安裝依賴像部份:

    PHP composer.phar安裝

我不理解這個過程的工作流程(IM相當新)..究竟是什麼我需要做的就是一些包去(如Respect

回答

5

作曲家有2個基本要素,你要考慮:

  1. 的composer.php文件本身 - 這可以位於任何地方你的系統上 - 通常是很方便的把它在你搜索路徑,以便您可以通過名稱從命令行調用它(無路徑)。

  2. Composer.json - 這個文件是爲您的項目配置。這通常最好位於項目的頂層。理想情況下,這是一個超出Web服務器範圍的目錄 - 因此它永遠不會被暴露或提供服務。

Symfony2有一些很棒的文檔和使用中的作曲家的例子。

另外要注意,一些您通過作曲家參考包本身將有作曲家文件 - 以確保它們符合您要求的依賴關係 - 他們也可能有自己的依賴關係是需要考慮的。

我會在安裝composer.json以下

/home/myproject/composer.json 

這將是在對Web服務器的範圍,可用於例如管理許多資產

public_html/ 
    libs/ 
    config/ 
    docs/ 
    vendor/ 
+0

ok瞭解。現在如何實際安裝依賴關係,我在home/myproject/public_html/myproject.com/vendor /中有一個「vendor」文件夾,這是我上傳軟件包的地方嗎?或者在composer.json中添加一個require鍵就足夠了? –

+0

再次供應商通常位於頂層 - 因爲它可能包含代碼並配置您不想通過Web服務器提供服務。雖然作曲家非常靈活Symfony2讓供應商遠離公共範圍 - 但確實提供了資產管理功能,允許在需要時將文件/資產發佈到Web目錄中。 – BillyBigPotatoes

+0

[composer.json文件](https://symfony.com/doc/current/bundles/best_practices.html#composer-metadata)上的「很棒的文檔」。 – artfulrobot

1

在哪裏創建composer.json?

您應該爲您的項目根目錄創建composer.json,如/home/myproject/public_html/myproject.com/composer.json。如果您的應用程序的所有文件都存在於您的myproject.com文件夾中。

在他們提到,爲了安裝新 包我需要寫一個需要在 文件JSON格式鍵官方文檔,這是否意味着我沒有通過 FTP上傳包?

是,只要你不在共享主機,因爲他們大多數不允許CLI(SSH)。

該文檔進一步說,我可以簡單地安裝這樣

php composer.phar install 

依賴性是可以簡單類型上面的命令和composer.json將安裝最新版本的軟件包。

Composer.json(尊重套餐)

{ 
    "require": { 
     "respect/validation": "dev-master" 
    } 
} 

現在運行composer install將安裝需要包裝。

如需進一步包

{ 
    "require": { 
     "respect/validation": "dev-master", 
     "doctrine/orm": "2.*" 
    } 
} 

現在運行更新composer update它會下載doctrine/orm爲好。

+0

我已經在/ home/myproject /中安裝了composer.json,而且您的應用程序的所有文件都位於/myproject/public_html/myproject.com/中,它仍然可以工作嗎?即我仍然可以在/myproject.com/中使用依賴關係? –

+0

是的,只要你需要供應商'autoload.php'到你的'/ public_html/myproject.com /'應用程序文件。 –