Laravel 5 Laravel 5,了解服务和容器

Laravel 5 Laravel 5,了解服务和容器,laravel-5,Laravel 5,我希望应用有关服务+容器的最佳laravel实践 通常,当我需要在我的应用程序中的任何位置使用方法时,我会这样做: class PersonneController extends Controller { private $personne_service; private $role_service; public function __construct() { $this->personne_service = new PersonneService(); $t

我希望应用有关服务+容器的最佳laravel实践

通常,当我需要在我的应用程序中的任何位置使用方法时,我会这样做:

class PersonneController extends Controller {

private $personne_service;
private $role_service;

public function __construct() {
    $this->personne_service = new PersonneService();
    $this->role_service = new RoleService();
}

/**
 * Renvoi la liste des personnes d'une école de la personne connectée
 * @return 
 */
public function getListePersonnes(Request $request, $id_ecole = null)
{
    if ($id_ecole == null){
        $id_ecole = Auth::user()->id_ecole;
    }

    $liste_personnes = $this->personne_service->getListePersonnesMultiRecherches($request->all());
请参阅最后一行以在其他类中使用方法。它工作得很好,我已经理解了机械师

现在我想使用服务和容器做同样的事情。以下是我的工作:

步骤1:创建服务提供商

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Services\PersonneService;

class PersonneServiceProvider extends ServiceProvider
{

/**
 * Bootstrap the application services.
 *
 * @return void
 */
public function boot()
{
    //
}

/**
 * Register the application services.
 *
 * @return void
 */
public function register()
{
    $this->app->bind('PersonneService', function ($app) {
        return new App\Services\PersonneService();
    });
}
}
步骤2:将此容器声明到我的app/config文件中:

'providers' => [

   // ....
    App\Providers\PersonneServiceProvider::class,


],
步骤3:我在我的应用程序中的任何地方都使用此方法。例如,在控制器中: (参见注释行与前面代码的对比)

它不起作用。我有一个错误:

班级人事服务不存在 在Container.php中(第729行)

我的问题是:

  • 有什么问题?(我读了官方文件+很多关于这个话题的教程)
  • 这样做真的是一种好的做法吗?还是你认为我的第一个技术也很好
谢谢你的反馈。谢谢 多米尼克

class PersonneController extends Controller {

// private $personne_service;
private $role_service;

public function __construct() {
    // $this->personne_service = new PersonneService();
    $this->role_service = new RoleService();
}

/**
 * Renvoi la liste des personnes d'une école de la personne connectée
 * @return 
 */
public function getListePersonnes(Request $request, $id_ecole = null)
{
    if ($id_ecole == null){
        $id_ecole = Auth::user()->id_ecole;
    }

    // $liste_personnes = $this->personne_service->getListePersonnesMultiRecherches($request->all());
    $personne_service = app()->make('PersonneService');
    $liste_personnes = $personne_service->getListePersonnesMultiRecherches($request->all());