2013-07-18 7 views
5

比方說,我在Laravel的套餐是測試/測試在Laravel工作臺中創建包,但如何轉移到供應商文件夾?

我在工作臺中創建了這個包,它的工作效果很好,跟在Jason Lewis' tutorial之後。現在我想將工作臺上的 包移出到供應商目錄。這就是所有的教程都不足,即使是laravel文檔。我不想使用git來移動文件,所以我只是簡單地將測試/測試包從工作臺複製到供應商目錄(然後從工作臺中刪除它)。我沒有從工作臺(或者我在.gitignore文件中發現的任何其他文件)複製test/test/vendor文件夾。然後我從我的新供應商/測試/測試目錄運行作曲家安裝。然後我從laravel根目錄做了一個composer dump-autoload

現在,當我跑我的申請,我得到的是,當包是在工作臺我沒有得到一個錯誤:

Class 'Test\Test\TestServiceProvider' not found 
(this is coming from \bootstrap\compiled.php on line 4121) 

我也是從laravel根做了PHP工匠轉儲自動加載和我得到這個相同的錯誤。

任何想法?或者,有人可以讓我引導一個教程,將包開發一直到供應商目錄中的最終休息點?

回答

7

得到它的工作。

我說:

"psr-0": { 
    "Test\\Test": "vendor/test/test/src/" 
} 

到在laravel根目錄composer.json自動加載部分,所以它看起來是這樣的:

"autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ], 
    "psr-0": { 
     "Test\\Test": "vendor/test/test/src/" 
    }  
}, 

如果我決定把包放在Packagist後來那麼我可能會從自動加載中刪除它,並只保留composer.json的「require」部分中引用的包。我們會看到發生了什麼事情,當我得到那麼遠!

+0

雖然,它是在你的供應商的文件夾,這是從您的git排除提交(默認)。我會建議做一些類似於'app/lib'的東西,所以當你移動到生產環境時,你不必手動移動它,它會一直存在於你的倉庫中。只需更改psr-0路徑即可。 – wesside

+0

我只是編輯.gitignore文件,並在'/ vendor/*'下面加上'!/ vendor/Test' – prograhammer

+0

感謝你們,我一直有同樣的問題,你的問題馬上解決了我的問題。 –

0

我想你可以從你的硬盤驅動器作爲從本地存儲庫這樣的安裝你的包:

"repositories": [ 
    { 
     "type":"vcs", 
     "url":"/path/to/repo/here" 
    } 
], 
"require":{ 
    "me/myrepo":"dev-master" 
} 
相關問題