2017-10-16 48 views
3

我想創建自己的Laravel 5.5包,我把它們放在/packages/myvendor/mypackage。有沒有辦法讓Laravel Package Auto-Discovery看到我的軟件包,但不添加MyServiceProvider::classconfig/app.php如何使用Laravel 5.5發現特殊目錄中的軟件包?

+0

誰低估了這一點不理解這個問題。這個問題是完全有效的並且正確地陳述。 – Julian

回答

3

我找到了解決方案!添加我的本地套餐composer.json與

"repositories": [ 
     { 
      "type": "path", 
      "url": "packages/vendor/package", 
      "options": { 
       "symlink": true 
      } 
     } 
    ] 

然後要求我的包composer require vendor/package:dev-master。然後laravel會自動發現我的包裹

+0

這太好了:-)''symlink「:true'選項將創建一個符號鏈接,從正在開發的包的根目錄到應用程序的'vendor'目錄,正確的'{vendor}/{ pachage}'目錄。雖然不是嚴格需要類,但某些工具希望某些文件位於特定位置(例如Laravel的包發現功能)。 – Jason

0

這是來自官方文檔。你必須像這樣在composer.json中設置東西

"extra": { 
    "laravel": { 
     "providers": [ 
      "Foo\\Bar\\ServiceProvider" 
     ], 
     "aliases": { 
      "Bar": "Foo\\Bar\\Facade" 
     } 
    } 
} 

這會讓你的包自動發現。對於更詳細的描述here是Laravel 5.5中的自動發現的tylor的文章

+0

我已經這樣做了,但laravel不會自動識別我的包裹。我必須將我的提供者添加到應用配置才能識別它。我還將'src /'添加到main'composer.json' – HuynhAT

+0

你試過這個php「artisan package:discover」嗎? –

+0

我試過'php工匠包:發現''作曲家dump-autoload'' php工匠配置:緩存'但它仍然沒有看到我的包 – HuynhAT

相關問題