我想編輯一個包,我從作曲家在我Laravel 5項目拉動釋放不失個性的變化,但我相信,如果我運行了composer update
,並且此軟件包的新版本已發佈,我將失去所有的更改。我應該如何去編輯軟件包?有沒有辦法將軟件包從供應商目錄中複製出來,以便我可以在我的項目的其他地方使用它?安全地編輯第三方作曲家(供應商)封裝和防止的包的新版本
3
A
回答
1
它實際上是不安全的編輯作曲家包,出於某種原因,你指出。
我要做的就是擴展需要改變,我想的類/。
我與文件系統類在這裏完成的。它不能確保它不會中斷,但它確實可以讓您更新而不會覆蓋您的更改。
配置/ app.php
<?php
return [
'providers' => [
// 'Illuminate\Filesystem\FilesystemServiceProvider',
'MyApp\Filesystem\FilesystemServiceProvider',
],
'aliases' => [
...
],
];
MyApp的\文件系統\ FilesystemServiceProvider.php
<?php namespace MyApp\Filesystem;
use Config;
use Storage;
use League\Flysystem\Filesystem;
use Dropbox\Client as DropboxClient;
use League\Flysystem\Dropbox\DropboxAdapter;
use Illuminate\Filesystem\FilesystemManager as LaravelFilesystemManager;
class FilesystemManager extends LaravelFilesystemManager{
public function createDropboxDriver(array $config)
{
$client = new DropboxClient($config['token'], $config['app']);
return $this->adapt(
new Filesystem(new DropboxAdapter($client))
);
}
}
4
簡單,快速,安全的方法:
- 創建目錄在Laravel的根目錄中ory並將其命名爲軟件包或任何你喜歡的。
- 將修改後的軟件包從供應商目錄移至軟件包目錄。
- 更新composer.json以從packages目錄而不是vendor目錄加載軟件包。
首先除去它需要
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"laravelcollective/html": "^5.3.0", <==== remove this line
"barryvdh/laravel-debugbar": "^2.3",
"doctrine/dbal": "^2.5"
},
然後將其添加到自動加載
"autoload": {
"psr-4": {
"App\\": "app/",
"Collective\\Html\\": "packages/laravelcollective/html/src", <==== add this line
},
}
請不要忘記運行
composer dumpauto
相關問題
- 1. 作曲家安裝:全球vs本地
- 2. 使用作曲家安裝第三方symfony包
- 3. 作曲家 - 防止安裝ZF2文件
- 4. 我是否真的需要所有供應商作曲家第一次安裝?
- 5. Capifony共享供應商作曲家安裝
- 6. 如何重命名作曲家供應商安裝路徑?
- 7. 作曲家安裝或更新包
- 8. 作曲家包更新,但不安裝
- 9. 安裝本地svn依賴作曲家
- 10. 作曲家無法安裝和更新
- 11. 已安裝版本和最新版本的作曲者列表包
- 12. SVN回購供應商與作曲家
- 13. 防止發佈作曲家包?
- 14. ASP.Net中的Google,Twitter等第三方安全提供商
- 15. 作曲家安裝
- 16. 最新的symfony安裝VS作曲家
- 17. 作曲家,Laravel和本地包
- 18. 作曲家安裝和作曲家安裝之間的區別-o
- 19. 如何讓作曲家安裝非作曲家包?
- 20. 作曲家/ PHP:如何檢查作曲家包是否安裝?
- 21. 安裝PHP的作曲家
- 22. 重新包裝第三方軟件的安裝解決方案
- 23. 沒有版本的作曲家更新
- 24. Maintainig自己的供應商與作曲家和git Symfony2捆綁
- 25. Symfony2問題與作曲家安裝包
- 26. 作曲家要求未能安裝包
- 27. 作曲家:包安裝需要svn/git?
- 28. 麻煩與作曲家安裝包
- 29. 無法安裝作曲家包
- 30. 防止第三方軟件包導入
感謝您的回答。在這種方法中,我必須將每個類中的名稱空間更改爲「MyApp」,或者在複製後從我的composer.json中移除原始包會更好嗎? – TimothyBuktu
這取決於您需要更改多少包。對於我所做的,我只需要更新2個類,因此我只是將這兩個類拉入我的名稱空間,並進行了調整。我完整地保留了原始類,並在我的應用程序中引用更新的類。如果它很廣泛,您可以隨時在github上分發回購,並在那裏進行更新。這樣當有變化時,它會給你時間來更新你的代碼。 – whoacowboy
我通常會分叉倉庫,並在倉庫部分的composer.json文件中引用我分叉的倉庫。當你說這個軟件包被更新時,你不會得到更新。 –