Laravel 5 Laravel 5,了解服务和容器
我希望应用有关服务+容器的最佳laravel实践 通常,当我需要在我的应用程序中的任何位置使用方法时,我会这样做: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
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());