2016-11-15 97 views
3

我需要根据客户端处理不同类型的数据库。laravel 5:扩展门面

我创建了一个叫做的门面MyDBFacade我可以在这里调用我自己的函数。

例如:

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

有没有一种可能,以扩展框架门面DB:的方式,我可以添加自己的函数,然后调用DB::createUser("MyUser")

任何线索或想法将不胜感激。

在此先感谢,祝你有个愉快的一天。

回答

3

比方说,你在app/Facades/MyDBFacade.php

<?php 

namespace App\Facades; 

use Illuminate\Support\Facades\DB; 

class MyDBFacade extends DB 
{ 
    // ... 
} 

你只需要改变一行在config/app.php定义自定义外观,从

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

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

而这一切都应该现在工作。

1

您可以创建/扩展您的门面是这样的:

<?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 
     } 

} 

然后更换(或将其添加为一个新的)你app/config/app.php

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

记得在执行composer dump-autoload结束。

希望这会有所帮助!