我正在开发我的第一个基于Larvel的软件包。我想要包含Socialite包,所以我把它放在我的composer.json
文件
"require": {
"laravel/socialite": "^2.0"
},
现在,我如何在/config/app.php
中正常包含提供商和别名?
我想现在我已经阅读了关于此事的所有堆栈溢出,但似乎没有任何工作。
这是我的软件包服务提供商:
public function boot()
{
include __DIR__.'/routes.php';
$this->app->register('Laravel\Socialite\SocialiteServiceProvider');
$this->app->alias('Laravel\Socialite\Facades\Socialite', 'Socialite');
$this->loadViewsFrom(__DIR__.'/../views', 'package-name');
$this->loadTranslationsFrom(__DIR__.'/../lang', 'package-name');
$this->publishes([
__DIR__.'/../views' => resource_path('views/vendor/package-name'),
]);
$this->publishes([
__DIR__.'/../database/migrations/' => database_path('migrations')
], 'migrations');
}
结果:
Class' Laravel \ Socialite \ SocialiteServiceProvider'找不到
更新
"psr-4": {
"App\\": "app/",
"Rubenwouters\\CrmLauncher\\": "packages/rubenwouters/crm-launcher/src/"
}
答案 0 :(得分:0)
在您的套餐服务提供商的注册方法中,您可以这样做:
public function boot() {
$this->app->register(ClassOfScialiteServiceProvider);
$this->app->alias(FacedeClass, 'Alias');
}
修改强>
但首先......要以正确的方式添加您的包(对于您可以添加要求的供应商),您必须将一些方法添加到主composer.json
- required
名单。您可以使用以下方法之一:
将您的包添加到官方作曲家存储库(packagist)
制作自己的作曲家资料库,例如Satis
最简单的方法是在composer.json
内添加你的git repo dependanci,如:
"repositories": [
{
"type": "vcs",
"url": "git@your_repo/crm-launcher.git"
},
],
"require": {
(...)
"rubenwouters/crm-launcher": "dev-master"
}
或者只是将您的依赖项("laravel/socialite": "^2.0"
)移动到主composer.json
。 :)
答案 1 :(得分:0)
将 Laravel \ Socialite \ SocialiteServiceProvider :: class,注册为Config \ app.php作为提供者,同时注册 注册'Socialize'=> Laravel \ Socialite \ Facades \ Socialite :: class,到Config \ app.php作为别名。
可能会解决您的问题。