2016-11-15 9 views
3

클라이언트에 따라 다른 유형의 DB를 처리해야합니다.laravel 5 : Facade 연장하기

나는 내 기능을 호출 할 수있는 MyDBFacade이라는 Facade를 만들었습니다. 예를 들어

:

MyDBFacade::createDBUser("MyUser"); // will create a DB user whatever I'm using Postgres or SQL Server 

은 가능성이 있는가에 대한 확장 프레임 워크 외관 DB :: 난 내 자신의 기능을 추가 한 다음 DB::createUser("MyUser")를 호출 할 수있는 방법으로?

어떤 실마리 나 아이디어라도 감사 할 것입니다.

미리 감사드립니다. 좋은 하루 보내십시오.

답변

3

의 당신이

'DB' => App\Facades\MyDBFacade::class, 

그리고 모든

'DB' => Illuminate\Support\Facades\DB::class, 

에서, app/Facades/MyDBFacade.php

<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\DB; 

class MyDBFacade extends DB 
{ 
    // ... 
} 
당신은 단지 config/app.php에 한 줄을 변경해야

에서 사용자 정의 외관을 정의한다고 가정 해 봅시다 지금 일해야합니다.

1
당신이처럼 외관을 확장/만들 수 있습니다

: 당신의 app/config/app.php

<?php namespace YourNameSpace\Facades; 

class MyDBFacade extends Illuminate\Support\Facades\DB { 

     /** 
     * Create your custom methods here... 
     */ 
     public static function anyMethod($active) 
     { 
      /// do what you have to do 
     } 

} 

을 그리고 대체 (또는 새로 추가) :

'aliases' => array(
    'MyDBFacade' => 'YourNameSpace\Facades\MyEventFacade::class', 
), 

는에 composer dump-autoload을 실행하는 것을 잊지 마십시오 종료.

희망이 도움이됩니다.