2016-05-23 36 views
0

我開始研究一個新的,運行時間更長的php項目。我想盡可能將我的文件從框架文件中分離出來,以便能夠更新框架而不必將我的文件從框架文件中分離出來。在Java中,我會使用maven並將所有內容放在lib文件夾中。從那裏,我會將這些庫導入到我的代碼中。我瞭解到,同樣的PHP工具是作曲家(或者我懷疑是這樣;)),但我很難開始使用它。只需要Composer中的一些文件夾並安裝到自定義路徑

我配置phpstorm項目和作曲家,並增加了composer.json文件,它看起來像這樣(我刪除了個人信息):

{ 
    "name": "example", 
    "description": "description_text", 
    "minimum-stability": "stable", 
    "license": "proprietary", 
    "authors": [ 
    { 
     "name": "author's name", 
     "email": "[email protected]" 
    } 
    ], 
    "require": { 
    "twbs/bootstrap": "v4.0.0-alpha.*", 
    "laravel/laravel": "v5.2.*", 
    "components/jquery": "2.2.*", 
    "components/font-awesome": "4.6.*" 
    }, 
    "config": { 
    "vendor-dir": "laravel/laravel/public" 
    } 
} 

正如你所看到的,我想把東西進入laravel的公共文件夾,其中Bootstrap和jQuery屬於AFAIK(路徑基於觀察,laravel本身放置在vendor/laravel/laravel中)。但是,當然,那麼拉拉維爾也會放在那裏。

最重要的是,作曲家的下載量超過了我的需要。例如,我只需要bootstrap dist文件夾(css和js for bootstrap 4(以及它們,僅限最小文件))的內容,但它也安裝文檔等。

因爲我沒有經驗過,我不知道我想要什麼是可能的或者如何去做。我懷疑我的許多問題來自於我嘗試在同一個composer.json文件中安裝laravel和其他東西的事實。

你能幫我嗎? :)

問候

基督教

+1

難道你不應該爲php **的東西和JS相關的代碼使用'composer.json'嗎?你爲什麼把它與php包管理器混合?用'jspm'這個很簡單,查看它。 –

回答

0

引用this Laravel文檔要放置在vendor目錄這是包括Laravel所以刪除你的配置composer.json所有的「框架」。

vendor目錄包含您的Composer依賴關係。

如果你想放置物品是你的資源

public目錄包含前端控制器和您的資產(圖像,JavaScript,CSS等)。

app是你將放置你的類和類似的地方。

至於這些框架臃腫了一些不需要的文件,我還沒有找到一個很好的方式來清理它們,而不是手動刪除它們。

我試圖在maven和作曲家之間得出一個結論,但它是讓後路更大,然後我想。你是正確的,這是一個PHP maven最接近的薄弱環節。

編輯

更好的回答你的問題,我重讀它是你的代碼是捆綁到一個框架版本,它需要。我懷疑開發過程中的任何版本都會打破向後兼容性。至少我希望不會,如果你知道一個新版本可能會在beta/dev/nightly發佈。

至於我上面的陳述是作曲家被設計爲以所描述的方式處理這個結構。當你想使用作曲家的psr-4 autoloading部分時,這將對你有很大的幫助。

在任何情況下,請將供應商視爲您的.m2本地回購。

+0

嗨,nerdlyist,謝謝你的回覆!好吧,如果我理解你是正確的,那麼你提議以「正常方式」下載laravel,然後修改下載副本的composer.json以要求bootstrap和jQuery? 我不知道這是否是一種「更乾淨」的方式,但我想象的是使用git submodules。有了這個,我也可以在開發過程中保持最新,但是我也不會擺脫多餘的文件。 – Christian

+0

@Christian沒有從我在Laravel文檔中看到的有一個'bootstrap'目錄,它應該能夠處理引導程序的需求。任何你認爲需要的框架將被添加到作者安裝到'vendor'。 – nerdlyist

相關問題