ProviderRepository.php第146行中的FatalErrorException:无法实例化抽象类App \ Modules \ ModuleServiceProvider

时间:2016-01-20 14:06:07

标签: php laravel error-handling fatal-error

我在项目中使用了laravel 5.2。 对于模块化方法,我在app中有模块&gt; <模块和模块>用户。

模块&gt; 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;
  }

}

&GT;

和我的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提供商中写了

  

应用\模块\ ModuleServiceProvider ::类,      应用\模块\铅\ LeadServiceProvider ::类,

也写在composer.json中。

但它会出现错误,如

  

ProviderRepository.php第146行中的FatalErrorException:     无法实例化抽象类App \ Modules \ ModuleServiceProvider

1 个答案:

答案 0 :(得分:0)

您无法实例化抽象类。抽象类必须由另一个类扩展。但是,您的ModuleServiceProvider似乎不包含任何抽象方法,因此它不应该是抽象的。从服务提供商处删除abstract关键字,这样可以解决问题。