2016-01-20 58 views
0

我已经为我的项目使用了laravel 5.2。 对于模块化方法,我在app>模块和模块>用户中都有模块。ProviderRepository.php中的FatalErrorException第146行:无法实例化抽象类App Modules ModuleServiceProvider

模块> 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提供商写它

like

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

也被写入composer.json了。

,但它给错误,如

FatalErrorException在ProviderRepository.php行146: 不能实例化抽象类应用程序\模块\ ModuleServiceProvider

回答

0

你不能实例化一个抽象类。抽象类必须由另一个类扩展。但是,看起来您的ModuleServiceProvider不包含任何抽象方法,因此它不应该是抽象的。从您的服务提供商处删除abstract关键字,并解决问题。

相关问题