ProviderRepository.php 第 146 行中的 FatalErrorException:无法实例化抽象 class App\Modules\ModuleServiceProvider
FatalErrorException in ProviderRepository.php line 146: Cannot instantiate abstract class App\Modules\ModuleServiceProvider
我在我的项目中使用了 laravel 5.2。
对于模块化方法,我在 app > modules 和 modules > user.
中有模块
模块> ModuleServiceProvider.php如下:
<?php namespace App\Modules;
use \Illuminate\Support\ServiceProvider as ServiceProvider;
abstract class ModuleServiceProvider extends ServiceProvider{
public function boot() {
if ($module = $this->getModule(func_get_args())) {
$this->package("app/" . $module, $module, app_path() . "/modules/" . $module);
}
}
public function register() {
if ($module = $this->getModule(func_get_args())) {
$this->app["config"]->package("app/" . $module, app_path() . "/modules/" . $module . "/config");
// Add routes
$routes = app_path() . "/modules/" . $module . "/routes.php";
if (file_exists($routes))
require $routes;
}
}
public function getModule($args) {
$module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;
return $module;
}
}
?>
我的LeadServiceProvider.php就像
<?php namespace App\Modules\Lead;
class LeadServiceProvider extends \App\Modules\ModuleServiceProvider {
public function register()
{
parent::register("user");
}
public function boot()
{
parent::boot("user");
}
/**
* Register any application services.
*
* @return void
*/
}
我也在我的 app.php 提供者中写了它
喜欢
App\Modules\ModuleServiceProvider::class,
App\Modules\Lead\LeadServiceProvider::class,
也写成composer.json了。
但它给出了类似
的错误
FatalErrorException in ProviderRepository.php line 146:
Cannot instantiate abstract class App\Modules\ModuleServiceProvider
您不能实例化抽象 class。抽象 class 必须由另一个 class 扩展。但是,您的 ModuleServiceProvider
似乎不包含任何抽象方法,因此它不需要是抽象的。从您的服务提供商那里删除 abstract
关键字,这应该可以解决问题。
我在我的项目中使用了 laravel 5.2。 对于模块化方法,我在 app > modules 和 modules > user.
中有模块模块> ModuleServiceProvider.php如下:
<?php namespace App\Modules;
use \Illuminate\Support\ServiceProvider as ServiceProvider;
abstract class ModuleServiceProvider extends ServiceProvider{
public function boot() {
if ($module = $this->getModule(func_get_args())) {
$this->package("app/" . $module, $module, app_path() . "/modules/" . $module);
}
}
public function register() {
if ($module = $this->getModule(func_get_args())) {
$this->app["config"]->package("app/" . $module, app_path() . "/modules/" . $module . "/config");
// Add routes
$routes = app_path() . "/modules/" . $module . "/routes.php";
if (file_exists($routes))
require $routes;
}
}
public function getModule($args) {
$module = (isset($args[0]) and is_string($args[0])) ? $args[0] : null;
return $module;
}
}
?>
我的LeadServiceProvider.php就像
<?php namespace App\Modules\Lead;
class LeadServiceProvider extends \App\Modules\ModuleServiceProvider {
public function register()
{
parent::register("user");
}
public function boot()
{
parent::boot("user");
}
/**
* Register any application services.
*
* @return void
*/
}
我也在我的 app.php 提供者中写了它
喜欢
App\Modules\ModuleServiceProvider::class, App\Modules\Lead\LeadServiceProvider::class,
也写成composer.json了。
但它给出了类似
的错误FatalErrorException in ProviderRepository.php line 146: Cannot instantiate abstract class App\Modules\ModuleServiceProvider
您不能实例化抽象 class。抽象 class 必须由另一个 class 扩展。但是,您的 ModuleServiceProvider
似乎不包含任何抽象方法,因此它不需要是抽象的。从您的服务提供商那里删除 abstract
关键字,这应该可以解决问题。